主备切换

在完成了先前的数据一致性校验并确保所有从库数据准确无误后,接下来将执行主备切换操作,以调整现有的主从复制部署结构,并在完成主备切换后进行新主库和新从库的一致性校验。

主备切换部署规划变化如图1所示。

图1 主备切换架构变化示意图

以下内容为主备切换的详细操作步骤,以下所有步骤执行完成后,新从库便能够成功连接到新的鲲鹏主库,并保持数据同步状态。

  1. 鲲鹏从库2升级为主库。

    1. 登录到即将成为新主库的鲲鹏服务器(原从库2)。
    2. 停止从库服务并删除所有从库配置信息,准备将其提升为主库。
      1
      2
      stop slave;
      reset slave all;
      
    3. 确认新主库的“log_bin”的值为“ON”
      1
      show variables like 'log_bin';
      
      如果“log_bin”的值为“OFF”,则执行以下操作开启“log_bin”
      1. 打开配置文件“/etc/my.cnf”
        1
        vim /etc/my.cnf
        
      2. 按“i”进入编辑模式,在配置文件中找到[mysqld]部分(如果不存在,请自行添加)。在该部分下,确保添加或修改以下内容。
        log-error=/data/mysql/log/mysql.log
        pid-file=/data/mysql/run/mysqld.pid
        [mysqldump]
        quick
        [mysql]
        no-auto-rehash
        [client]
        default-character-set=utf8
        [mysqld]
        basedir=/usr/local/mysql
        socket=/data/mysql/run/mysql.sock
        tmpdir=/data/mysql/tmp
        datadir=/data/mysql/data
        default_authentication_plugin=caching_sha2_password
        port=3306
        user=mysql
        server-id=3 #新主库服务器的server-id为3
        log-bin=/data/mysql/data/mysql-bin
        relay_log=/data/mysql/relaylog/relay-bin
        report_host=192.168.0.3 #192.168.0.3为新主库服务器的IP地址,请根据实际情况修改
      3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
      4. 重启MySQL服务使配置生效。重启MySQL服务的命令请参见3

  2. x86从库1连接到新主库。

    1. 登录x86服务器的从库1。
    2. 停止从库服务并删除所有从库配置信息。
      1
      2
      stop slave;
      reset slave all;
      
    3. 配置从库1连接到新主库。
      1
      change master to master_host='192.168.0.3',master_port=3306,master_user='replicate',master_password='123456',master_auto_position=1, get_master_public_key=1;
      

      192.168.0.3为新主库服务器的IP地址,请根据实际情况修改。

    4. 启动并验证从库状态。
      1
      2
      start slave;
      show slave status \G;
      

      “Slave_IO_Running”“Slave_SQL_Running”均为“Yes”,表示从库1已成功连接到新主库。

  3. 旧主库连接到新主库。

    1. 登录旧主库(当前已经是从库)。
    2. 停止从库服务并删除所有从库配置信息。
      1
      2
      stop slave;
      reset slave all;
      
    3. 配置旧主库连接新主库。
      1
      change master to master_host='192.168.0.3',master_port=3306,master_user='replicate',master_password='123456',master_auto_position=1, get_master_public_key=1;
      

      192.168.0.3为新主库服务器的IP地址,请根据实际情况修改。

    4. 启动并验证从库状态。
      1
      2
      start slave;
      show slave status \G;
      

      “Slave_IO_Running”“Slave_SQL_Running”均为“Yes”,表示旧主库已成功连接到新主库。

  4. 再次进行主从一致性校验。

    1
    pt-table-checksum h=192.168.0.3,u=checksums,p=123456,P=3306 --databases=tpcc --no-check-binlog-format --replicate=pt.checksums --max-lag=3 --recursion-method=hosts
    

    192.168.0.3为新主库服务器的IP地址,请根据实际情况修改。