我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL MHA应用实践(方案实战)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL MHA应用实践(方案实战)

1、环境与条件
已存在主从架构环境

主机名 IP地址 主从角色 MHA角色
leo1 192.168.3.2 Master MHA-node
leo2 192.168.3.3 slave MHA-node
leo3 192.168.3.4 slave MHA-node,MHA-manager
vip 192.168.3.6

主从确保主从状态正常

mysql>show slave status\G;
IO与SQL进程为YES

参数更改

relay_log_purge = 0                 #不自动删除relay log 以便于宕机修复数据
log_bin = /data/log/leo-bin      #从库开启binlog  以便于宕机修复数据
expire_logs_days=7
log-slave-updates=1

2、配置SSH
MHA在运行是会通过SSH服务连接到其他节点服务器进行检测或复制数据,因此需要集群内可免密码登陆。
在leo1-3内分别执行如下命令:

    ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.2
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.3
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.4

3、安装MHA Node
对所有mysql节点安装MHA Node

        1)安装perl语言
         yum install perl-DBD-MySQL  -y   ###因为MHA用perl 开发
         2)安装MHA Node
         rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
     下载地址
         https://code.google.com/archive/p/mysql-master-ha/downloads
         3)创建命令软连接方便使用:
         ls -s /app/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
         ls -s /app/mysql/bin/mysql  /usr/bin/mysql
         4)检查MHA账户
         grant all privileges on *.* to mha@'192.168.3%'  identified by 'mha';
         select user,host from mysql.user;

4、MHA-Manager
Manager 可以安装在任何一台机器上。

    1)使用epel源安装perl环境
        wget -O /etc/yum.repo.d/epel.repo  http://mirrors.aliyum.com/repo/eprl-6.repo
    2)安装管理节点以来包
        yum intall -u perl-Config-Tiny* epel-release perl-Log-Dispatch* perl-Parallel* per-Time*
    3)安装MHA-Node
            rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
    4)安装MHA-Manger
        rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

5、配置MHA管理节点

        mkdir -p /etc/mha
        mkdir -p /var/log/mha/app1
        vi /etc/mha/app1.cnf
        [server default]
        manager_log=/var/log/mha/app1/manager.log   
        manager_workdir=/var/log/mha/app1.log
        mater_binlog_dir=/app/mysql/data   ##MHA保存主库binlog路径
        user=mha                                          ##mysql 数据库授权yonghu
        password=mha
        ping_interval=2                                ##监控ping包时间间隔
        repl_user=rep                                  ##主从复制用户
        repl_password=leo123
        ssh_user=root
        repot_script=/usr/local/send_report      ##故障发生后触发脚本
        secondary_check_script=/usr/local/bin/masterha_secondary_check -s leo3 -s leo2 --user=root --master_host=leo1 --master_ip=192.168.3.2 --master_port=3306
        ########manager 联系不上leo1时会通过leo2、leo3 查看leo1的状态
        shutdown_script=""
        [server1]
        hostname=192.168.3.2
        port=3306
        [server2]
        hostname=192.168.3.4
        port=3306
        candidate_master=1             ##设定此参数后server2 会将优先升为主库
        check_repl_delay=0              ##MHA忽律主从复制延迟
        [server3]
        hostname=192.168.3.3
        port=3306

6、启动及测试

1)检测ssh免密登陆
    master_check_ssh -conf=/etc/mha/app1.cnf
2)检测主从复制状态
    master_check_repl -conf=/etc/mha/app1.cnf
3)启动MHA
    nohup master_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failver < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
    ##remove_dead_master_conf 在配置文件中删除master信息
    ##ignore_last_failver  忽律上一次故障切换

7、配置VIP漂移

   1)利用keepalived
    2)在配置文件中填入以下参数
    master_ip_failover_script=/usr/local/bin/master_ip_failover
    3)在脚本中加入以下参数
    my = $vip= '192.168.3.6';
    my $key=  0
    my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
    my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";

    chmod +x /etc/mha/master_ip_failover

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL MHA应用实践(方案实战)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang应用实践:实战经验与案例分享

Golang应用实践:实战经验与案例分享近年来,作为一门快速发展且备受关注的编程语言,Golang在各个领域的应用越来越广泛。其简洁高效的设计让开发者能够快速地构建稳健的应用程序,同时其并发特性和内置的工具也为解决现代软件开发中的各种挑战
Golang应用实践:实战经验与案例分享
2024-03-05

MySQL高可用之MHA架构企业实战

?????? 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验 一位上进心十足的【大数据领域博主】!??? 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 擅长主流数据Orac
2023-08-17

MySQL 锁的原理与应用实践

MySQL 锁的原理与应用实践摘要:MySQL 是一种常用的关系型数据库管理系统,它具有强大的并发处理能力。在多用户同时访问数据库时,为了确保数据的一致性和完整性,MySQL 使用锁机制来控制对共享资源的访问。本文将介绍 MySQL 锁的原
MySQL 锁的原理与应用实践
2023-12-21

CSS框架实践分享:现实应用案例深度探索

实战经验分享:探索CSS框架的实际应用案例在现代网页开发中,CSS框架成为了不可或缺的工具。它们帮助我们快速构建具有吸引力和响应式设计的网页,并提供了丰富的样式和组件库。然而,只有在实际应用中才能真正感受到它们的力量。本文将分享一些CSS
CSS框架实践分享:现实应用案例深度探索
2024-01-16

MySQL亿级数据平滑迁移双写方案实战

目录一、背景二、方案选型三、前期准备3.1 全量同步&增量同步&一致性校验3.2 代码改造3.3 插件实现四、双写流程4.1 上线双写改造后的业务代码,上线时只读写老库4.2 使用公司中间件平台提供的数据工具同步老库数据到新库4.3 停止同
MySQL亿级数据平滑迁移双写方案实战
2024-08-25

MongoDB在物联网领域的应用实践与挑战解析

随着物联网的快速发展,越来越多的设备开始连接到互联网,产生海量的数据。这些数据的存储和处理成为了一个巨大的挑战,因此,现代的物联网应用普遍采用了大数据技术。MongoDB作为一种NoSQL数据库管理系统,具有高性能、高扩展性和灵活的数据模型
MongoDB在物联网领域的应用实践与挑战解析
2023-11-02

编程热搜

目录