mysql高可用

MHA高可用

  1. MHA工作原理
    从宕机崩溃的master保存二进制日志事件(binlog events)
    识别含有最新更新的slave
    应用差异的中继日志(relay log)到其他的slave
    应用从master保存的二进制日志事件(binlog events)
    提升一个slave为新的master
    使其他的slave连接新的master进行复制
  2. MHA命令
    masterha_check_ssh 检查MHA的SSH配置状况
    masterha_check_repl 检查MySQL复制状况
    masterha_manger 启动MHA
    masterha_check_status 检测当前MHA运行状态
    masterha_master_monitor 检测master是否宕机
    masterha_master_switch 故障转移(自动或手动)
    masterha_conf_host 添加或删除配置的server信息
    secondary_check_script 通过多条网络路由检测master的可用性
    master_ip_ailover_script 更新Application使用的masterip
    shutdown_script 强制关闭master节点
    report_script 发送报告
    init_conf_load_script 加载初始配置参数
    master_ip_online_change_script:更新master节点ip地址
  3. 配置文件
    global配置,为各application提供默认配置
    application配置:为每个主从复制集群
  4. 实现MHA
    为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL半同步复制
    在管理节点上安装两个包
      yum安装先装node包,再装manager包
      mha4mysql-manager
      mha4mysql-node
    在被管理节点安装
      mha4mysql-node
    在管理节点建立配置文件
    # vim /etc/mastermha/app1.cnf
    [server default]
    user=mhauser			#管理账号(root)
    password=123456
    manager_workdir=/data/mastermha/app1/    # 自动生成
    manager_log=/data/mastermha/app1/manager.log
    remote_workdir=/data/mastermha/app1/
    ssh_user=root			#ssh-key账号
    repl_user=repluser		#主从复制账号
    repl_password=123
    ping_interval=1
    
    [server1]
    hostname=192.168.8.17
    candidate_master=1
    
    [server2]
    hostname=192.168.8.27
    candidate_master=1
    
    [server3]
    hostname=192.168.8.37
    
    配置Master
    # vim /etc/my.cnf
    [mysqld]
    log-bin
    server_id=1
    skip_name_resolve=1
    # mysql
    mysql>show master logs	# 查看二进制日志的起始位置
    mysql>grant replication slave on *.* to repluser@'192.168.8.%' identified by '123456'; #创建管理账号
    mysql>grant all on *.* to mhauser@'192.168.8.%' identified by '123';#创建复制账号
    
    配置slave
    # vim /etc/my.cnf
    [mysqld]
    server_id=2 不同节点此值各不相同
    log-bin
    read_only
    relay_log_purge=0 		#不清除中继日志
    skip_name_resolve=1		#不解析主机名
    # mysql
    mysql> CHANGE MASTER TO MASTER_HOST='MASTER_IP',MASTER_USER='repluser',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245;
    
    在所有节点实现相互之间ssh key验证
  5. Mha验证和启动
    masterha_check_ssh --conf=/etc/mastermha/app1.cnf #检查mha的配置文件
    masterha_check_repl --conf=/etc/mastermha/app1.cnf
    masterha_manager --conf=/etc/mastermha/app1.cnf #启动MHA
  6. 排错日志
    /data/mastermha/app1/manager.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值