MySQL高可用

一、mysql路由

        1.利用路由器的连接路由特性,用户可以编写应用程序来连接到路由器,并令路由器使用响应的路由策略来处理连接来使其连接到正确的mysql数据库服务器

        2.mysql route的部署方式

                需要在所有数据库主机之外再打开一台主机mysql-router

                配置mysql-router

                vim /etc/mysqlrouter/mysqlrouter.conf

                [routing:ro]

                bind_address=0.0.0.0

                bind_port=7001

                destinations=172.25.254.10:3306,172.25.254.20:3306,172.25.254.30:3306

                routing_strategy=round-robin

                [routing:rw]

                bind_address=0.0.0.0

                bind_port=7002

                destinations=172.25.254.30:3306,172.25.254.20:3306,172.25.254.10:3306

                routing_stragegy=first-available

                启动mysqlrouter

                        systemctl  start  mysqlrouter.service

                建立测试用户:

                        create  user  xiao@'%'  identified  by  'xiao';

                        grant  all  on  xiao.*  to  xiao@'%';

                查看调度效果

                        watch  -1 lsof  -i  :3306

二、mysql高可用之MHA

        1.MHA是:高可用环境下故障切换和主从复制的软件

                           解决mysql单点问题

                           它可以在0-30s内自动完成故障切换操作

                            可以在故障切换的过程中最大程度保证数据的一致性

        2.MHA的组成:

                        其由MHAManage(管理节点),MHA Node(数据节点)

                        MHAManage可以单独部署到一台独立的机器上管理多个master-slave集群,也可以部署到slave节点上

                        MHAManager会定时探测集群中的master节点

                        当master出现故障时,会自动将最新数据的slave提升为新的master,然后将其他所有的slave重新指向新的master

        3.MHA的特点

                自动故障过程中,MHA从宕机的主服务器上保存二进制日志,最大程度保证数据不丢失

                使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器,因此可以保证所有节点的数据一致性

                MHA支持一主多从架构,最少三台服务器(一主两从)

        4.故障切换备选主库算法:

                最接近master的slave成为备选的master

                数据一致的情况下,按照配置文件顺序选择备选主库

                设定权重(candidate_master=1),按照权重强制指定备选主

                        默认情况下如果有一个slave落后master  100M的relay logs,即使由权重也会失效

                        如果check_repl_delay=0,即使落后很多日志,也强制选择其为备选主

        5.MHA部署实施:

                在master节点中:

                        vim  /etc/my.cnf

                         [mysqld]
                        datadir=/data/mysql
                        socket=/data/mysql/mysql.sock
                        server-id=1
                        log-bin=mysql-bin
                        gtid_mode=ON
                        log_slave_updates=ON
                        enforce-gtid-consistency=ON
                        symbolic-links=0

                        

                在其他两个从节点上的配置信息

                        vim  /etc/my.cnf

                         [mysqld]
                        datadir=/data/mysql
                        socket=/data/mysql/mysql.sock
                        server-id=1
                        log-bin=mysql-bin
                        gtid_mode=ON
                        log_slave_updates=ON
                        enforce-gtid-consistency=ON
                        symbolic-links=0

                

                配置MHA的管理环境:

                 编辑配置文件:vim  /etc/masterha/app1.cnf

                  [server  default]

                  user=root

                  password=test

                  ssh_user=repl

                  repl_password=test

                  master_binlog_dir= /data/mysql

                  remote_workdir=/tmp

                  secondary_check_script= masterha_secondary_check -s 172.25.254.10 -s
172.25.254.11

                  ping_interval=3

                 #发生故障后调用的脚本,用来迁移vip
                  master_ip_failover_script= /script/masterha/master_ip_failover

                  manager_workdir=/etc/masterha

                  manager_log=/var/etc/masterha/manager.log

                  [server1]

                  hostname=172.25.254.10

                  cnadidate_master=1        可能作为master主机

                  check_repl_delay=0        忽略复制延迟,在候选主切换过程中其一定为新的master

                  [server2]

                  hostname=172.25.254.20

                  candidate_master=1

                  check_repl_delay=0

                  [server3]

                  hostname=172.25.254.30

                  no-master=1                不会作为master的主机

  

                

   

               监控程序通过指定的配置文件监控master状态,当master出问题后自动切换并退出避免重复做故障切换

                masterha_manager  --conf=/etc/masterha/app1.cnf

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值