Mysql 架构升级方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mysql 架构升级方案
升级前架构:
Mysql 5.6 + Keepalived
双主互为主备,单写,环境62.11.6.23/24 (主)
62.11.6.24/24 (从----热备:主DOWN ,升级为从)
62.11.6.25/24 (从)
62.11.6.127/24(VIP)
优点:部署简单,易于维护;
缺点:读写单点,钧通过23.机器进行读写,不适合高频率读取;
升级后架构:
Mysql 5.6 + Atlas 2.2.1 + MHA 0.58
高可用架构,读写分离环境62.11.6.156 (主)
62.11.6.157 (从----热备)
62.11.6.158 (从,master+atlas)
62.11.6.154 (VIP)
优点:自动故障转移,读写分离,从负载均衡,可平滑上下线DB,自动摘除宕机的DB
缺点:故障转移后,默认需要手动修改配置文件,启动,并且主库不会自动回跳。
客户端连接地址:mysql -uroot -pAbc_123456 -P3306 -h 62.11.6.158
部署环境
一、高可用测试:
-----------》62.11.6.156
/etc/init.d/mysqld stop 关掉主库的数据库
ip addr 查看VIP 是否消失
-----------》62.11.6.157
ip addr 查看是否获取VIP
mysql -u root -pAbc_123456 -P3307 -h 62.11.6.158 登陆从节点查看主从复制是否正常show slave status\G
两个YES 代表主从复制正常!
mysql -u root -pAbc_123456 -P 3306 -h 62.11.6.158 登陆代理地址查看读写是否正常
查询两次,确认读取是否正常,读负载是否正常!
写入数据,查看是否正常!
此时,由于备用主库原来是从库,即在atlas配置文件中是作为从库的,故当接管为主库时,这时该库既可以写入也可以读。故需要手工移除从库的读功能。(到管理界面,remove backend idx)
mysql -umha -pAbc_123456 -P2345 -h 62.11.6.158
至此,在通过代理地址端口访问,实现一写一读的临时模式。
二、故障恢复:
如果需要修复原主库,那么原主库作为新主库的从库存在。可以手工加入atlas中(add slave ip:port)
/etc/init.d/mysqld start 修复mysql ,配置主从复制
stop slave ;
reset slave ;
change master to
master_host='62.11.6.156',master_user='slave157',master_password='Abc_123456',mast er_port=3307,master_auto_position=1; (用户rep)
start slave ;
show slave status\G 检查主从是否正常!
mysql -umha -pAbc_123456 -P2345 -h 62.11.6.158 管理登陆
添加DB
add slave 62.11.6.157:3307;
select * from backends;
mysql -uroot -pAbc_123456 -P 3306 -h 62.11.6.158 代理登陆
检查读写分离是否正常,检测从负载是否正常!
数据库切换后,binlog进程会自动停止,需要手动开启
检测到vip切换需要删除主库的只读
vim /etc/masterha/f (少哪台加哪台) (因为当主库丢失配置文件中也会删除,并且检测程序也会推出,修复后需要在启动检测程序)
[server1]
hostname=62.11.6.156
port=3307
cd /etc/masterha/ && sh start.sh 最后启动MHA 高可用监听程序
ps -ef | grep perl | grep -v grep 检查MHA 进程
ps -ef | grep mysqlbinlog | grep -v grep 检查BINLOG日志进程
ps -ef | grep mysql-proxy | grep -v grep 检查Atlas 进程
读写分离测试方法:
链接两个从库
mysql -uroot -pAbc_123456 -P3307 -h 62.11.6.157 create database db157;
mysql -uroot -pAbc_123456 -P3307 -h 62.11.6.158 create database db158;
通过代理端查看
mysql -uroot -pAbc_123456 -P3306 -h 62.11.6.158