MHA+ATLAS实现读写分离

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 <<EOF
[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.129
port=3306                                  
[server2]            
hostname=192.168.8.134
port=3306
[server3]
hostname=192.168.8.135
port=3306
EOF
[binlog1]
no_master=1
hostname=192.168.8.135
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脚本指定位置和权限
(3) 软连接  

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.129', MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';
(4) 检查配置文件,恢复节点信息
[server1]                                   
hostname=192.168.8.129
port=3306                                  
[server2]            
hostname=192.168.8.134
port=3306
[server3]
hostname=192.168.8.135
port=3306

(5) 检查vip和binlogserver 
    检查vip是否在主库,如果不在,手工调整到主库
    重新启动binlogserver 拉取
cd /data/mysql/binlog
mysqlbinlog  -R --host=192.168.8.129 --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

(7) 启动失败,检查ssh和主从
masterha_check_ssh  --conf=/etc/mha/app1.cnf 
masterha_check_repl  --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.安装配置           第三台
rpm -ivh Atla  (Tab补全)

cd /usr/local/mysql-proxy/conf
ls
mv test.cnf test.cnf.bak

vi test.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 192.168.152.254:3306    
proxy-read-only-backend-addresses = 192.168.152.129:3306,192.168.152.130: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.1.56 -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.1.%' 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.152.130 -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.135:3306;

用户管理
select * from pwds;
ADD PWD $pwd;
ADD ENPWD $pwd;
remove PWD $pwd;

企业实例: 创建atlas用户laoli
   主库:grant all on *.* to laoli@'192.168.1.%' identified by '123';
   atlas: add pwd laoli:123;
      save config;

保存配置
save config;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值