验证高可用

  1. 模拟PRIMARY节点停用了一台,读写路由情况。

    1. 登录数据库从库1。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls.sock
      
    2. 关闭数据库。
      1
      shutdown;
      
    3. 登录主库并查看组成员信息。
      1
      2
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqlm.sock
      select * from performance_schema.replication_group_members;
      

    4. 执行读请求脚本。
      1
      sh /home/read_6447.sh
      

      数据库127.0.0.1:3307服务停用了,读的请求都轮询在另外两台PRIMARY节点上,符合预期

    5. 执行写请求脚本。
      1. 编辑文件。
        1
        vim /home/write_6447.sh
        
      2. 替换为如下内容。
        1
        2
        3
        4
        5
        #!/bin/bash
        for i in {2001..3000}
        do
        /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -Dsysbench -e "insert into test1(id,report_serverid) values($i,@@server_id)"
        done
        
      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
      4. 执行写请求脚本。
        1
        sh /home/write_6447.sh
        
      5. 确认测试数据。
        1
        /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -Dsysbench -e "select * from test1"
        

        数据库127.0.0.1:3307服务停用了,写的请求都轮询在另外两台PRIMARY节点上,符合预期

  2. 模拟PRIMARY节点停用了2台,读写路由情况。

    1. 登录数据库从库2。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls2.sock
      
    2. 关闭数据库。
      1
      shutdown;
      
    3. 登录主库并查看组成员信息。
      1
      2
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqlm.sock
      select * from performance_schema.replication_group_members;
      

    4. 执行读请求脚本。
      1
      sh /home/read_6447.sh
      

      数据库127.0.0.1:3307、127.0.0.1:3308服务停用了,读的请求只在1台PRIMARY节点上,符合预期

    5. 执行写请求脚本。
      1. 编辑文件。
        1
        vim /home/write_6447.sh
        
      2. 替换为如下内容。
        1
        2
        3
        4
        5
        #!/bin/bash
        for i in {3001..4000}
        do
        /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -Dsysbench -e "insert into test1(id,report_serverid) values($i,@@server_id)"
        done
        
      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
      4. 执行写请求脚本。
        1
        sh /home/write_6447.sh
        
      5. 确认测试数据。
        1
        /usr/local/mysql/bin/mysql -uroot -p123456 -P6447 -h127.0.0.1 -Dsysbench -e "select * from test1"
        

        数据库127.0.0.1:3307、127.0.0.1:3308服务停用了,写的请求只在1台PRIMARY节点上,符合预期。