MHA配合Atlas实现读写分离

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: MHA配合Atlas实现读写分离

屏幕截图 2023-08-28 195743.png

1. MHA规划和实施

项目:MHA高可用架构扩展

   MHA基础架构缺点:

       没有VIP,前端应用无法自动切换到新主库;

       没有故障提醒,管理员不能及时反应;

       如果连不上前主库的ssh,可能丢失部分数据。

   方案:

       VIP        应用透明        

       sendreport     报警提醒

       binlogserver     日志补偿

   职责:

       MHA切换后,及时修复高可用架构

       尽可能缩短Failover时间

2. MHA Failover过程优化

监控:ping_interval=2    

   选主:强制选主

         candidate_master=1;

         check_repl_delay=0;

   日志补偿:

         binlog_server

         从库没有追上主库进度,所以需要补偿

         解决方案:减少延时        

   切换:VIP 主从重构

3. MHA配置参数

cat > /etc/mha/app1.cnf <
[server default]
manager_log=/var/log/mha/app1/manager        
manager_workdir=/var/log/mha/app1            
master_binlog_dir=/usr/local/mysql       
user=mha                                   
password=mha                               
ping_interval=2
repl_password=123
repl_user=repl
ssh_user=root                               
[server1]                                   
hostname=192.168.8.10
port=3306                                  
[server2]            
hostname=192.168.8.20
port=3306
[server3]
hostname=192.168.8.30
port=3306
EOF
[binlog1]
no_master=1
hostname=192.168.8.30
master_binlog_dir=/data/mysql/binlog

4. MHA的故障排查

4.1 搭建过程中排查

(1) 检查脚本

masterha_check_ssh --conf=/etc/mha/app1.cnf 
    masterha_check_repl --conf=/etc/mha/app1.cnf

1主2从复制环境

(2) 配置文件

   节点地址,端口

   vip 和send脚本指定位置和权限

4.2 切换过程的问题

查看/var/log/mha/app1/manager

脚本问题比较多一些

vip

send

binlog

4.3 恢复MHA 故障

(1) 检查各个节点是否启动

(2) 找到主库是谁?

(3) 恢复1主2从

CHANGE MASTER TO MASTER_HOST='192.168.8.20', MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';

(4) 检查配置文件,恢复节点信息

[server1]                                   
hostname=192.168.8.10
port=3306                                  
[server2]            
hostname=192.168.8.20
port=3306
[server3]
hostname=192.168.8.30
port=3306

(5) 检查vip和binlogserver

   检查vip是否在主库,如果不在,手工调整到主库

   重新启动binlogserver 拉取

cd /data/mysql/binlog
mysqlbinlog  -R --host=192.168.8.20 --user=mha --password=mha --raw  --stop-never mysql-bin.000001 &

(6) 启动Mananer

nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover  < /dev/null> /var/log/mha/app1/manager.log 2>&1 &
masterha_check_status --conf=/etc/mha/app1.cnf

================================================================================

MHA配合Atlas实现读写分离

1. Atlas 介绍

Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。

它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。

360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。

下载地址

https://github.com/Qihoo360/Atlas/releases

注意:

1、Atlas只能安装运行在64位的系统上

2、Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。

3、后端mysql版本应大于5.1,建议使用Mysql 5.6以上

2.安装配置

复制atlas

rpm -ivh Atlas-2.2.el6.x86_64.rpm
cd /usr/local/mysql-proxy/conf
mv test.cnf test.cnf.bak
vi test.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 192.168.8.10:3306
proxy-read-only-backend-addresses = 192.168.8.20:3306,192.168.8.30:3306
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8

启动atlas

/usr/local/mysql-proxy/bin/mysql-proxyd test start

ps -ef |grep proxy

3. Atlas功能测试

测试读操作:

mysql -umha -pmha  -h 192.168.8.30 -P 33060 
db03 [(none)]>select @@server_id;

测试写操作:

mysql> begin;select @@server_id;commit;

4. 生产用户要求

开发人员申请一个应用用户 app(select  update  insert)  密码123456,要通过10网段登录

4.1  在主库中,创建用户

grant select ,update,insert on *.* to app@'192.168.8.%' identified by '123456';

4.2. 在atlas中添加生产用户

/usr/local/mysql-proxy/bin/encrypt  123456      ---->制作加密密码
vim /usr/local/mysql-proxy/conf/test.cnf
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=,app:/iZxz+0GRoA=
/usr/local/mysql-proxy/bin/mysql-proxyd test restart
[root@db03 conf]# mysql -uapp -p123456  -h 192.168.8.30 -P 33060

5. Atlas基本管理

连接管理接口

mysql -uuser -ppwd -h127.0.0.1 -P2345

查看数据库帮助

select * from help;

查看数据库节点状态

SELECT * FROM backends;

关闭、开启节点

set offline 2;

set online 2;

删除、添加从节点

REMOVE BACKEND 3;

ADD SLAVE 192.168.8.30:3306;

添加白名单

add client 192.168.8.30;

删除白名单

remove client 192.168.8.30;

保存配置

save config;


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
6月前
|
缓存 PyTorch API
TensorRT-LLM 推理服务实战指南
`trtllm-serve` 是 TensorRT-LLM 官方推理服务工具,支持一键部署兼容 OpenAI API 的生产级服务,提供模型查询、文本与对话补全等接口,并兼容多模态及分布式部署,助力高效推理。
845 155
|
人工智能 边缘计算 运维
AI 时代下,操作系统的进化与重构
随着人工智能(AI)的迅猛发展,操作系统面临着前所未有的挑战和机遇。在这个新时代,操作系统需要进行深刻的进化与重构,以适应AI技术的广泛应用和不断变化的需求。
844 5
|
8月前
|
域名解析 弹性计算 网络协议
阿里云ipv6设置,免费将ipv4网站升级为ipv6
阿里云ipv6设置,免费将ipv4网站升级为ipv6,网站ipv6设置
2640 0
|
12月前
|
缓存 人工智能 监控
通义灵码进阶指南:解锁智能编程的隐藏技能
通义灵码是阿里云推出的智能编程助手,已突破简单代码补全功能,成为全栈开发导航仪、架构思维催化剂、代码质量监督员和知识检索加速器。本文从基础到进阶,详细介绍了其高效操作技巧,包括精准生成、对话式编程、代码重构及技术文档交互等功能。同时提供团队级最佳实践、专家级配置指南及避坑建议,并展望未来实验性功能。通过将其视为“编程伙伴”,开发者可实现更高效的人机协作,优化工作流并提升生产力。
869 6
|
存储 缓存 Linux
sysfs文件系统(1)
sysfs是一种虚拟文件系统,旨在提供一种访问内核数据结构的方法,从而允许用户空间程序查看和控制系统的设备和资源。sysfs文件系统通常被挂载在/sys目录下。sysfs提供了一种以树状结构组织的系统信息的方式,其中每个设备都有一个唯一的目录来表示它自己,其中包含有关设备的各种属性和状态信息的文件。这些文件通常是只读的,但有些也可以用于修改设备的某些设置。sysfs还提供了一个机制来通知用户空间程序有关设备状态更改的信息,从而使其能够对这些更改做出反应。sysfs文件系统被广泛用于Linux内核中,它为开发者提供了一种简单的方式来管理和控制系统中的各种设备和资源。
540 0
|
前端开发 JavaScript 安全
Electron有哪些优缺点
【10月更文挑战第13天】Electron有哪些优缺点
1328 0
|
Linux 数据安全/隐私保护
debian使用桌面管理器管理多个桌面系统
在Debian 12中,初始安装了带KDE桌面的系统,KDE自带SDDM显示管理器。为切换桌面,安装了XFCE:`sudo apt install xfce4`。选择SDDM登录后点击“桌面会话”选XFCE。遇到问题:无法通过SDDM登录root。解决方案包括编辑`pam.d/sddm`和`root/.bashrc`,然后重启SDDM或系统。要彻底卸载XFCE,使用:`sudo apt remove *xfce4*`, `sudo apt autoremove`, `sudo apt clean`,重启后无XFCE选项。
|
NoSQL API Redis
高性能分布式API网关Kong2
高性能分布式API网关Kong2
902 2
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式