主备切换

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

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

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

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

  1. 停止主库服务。

    通过SSH登录到主库服务器,并停止主库服务,确保数据不再向该服务器写入。
    su - postgres
    /usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile stop

  2. 将鲲鹏从库切换为新主库。

    通过SSH登录到鲲鹏从库服务器,执行切换为主库的命令,使鲲鹏从库成为新主库。
    su - postgres
    /usr/local/pgsql-13.2/bin/pg_ctl promote -D /data/pg-13.2/data

  3. 登录到x86从库(新从库1)服务器,连接新主库。

    1. 打开postgresql.conf文件。
      su - postgres
      vi /data/pg-13.2/data/postgresql.conf
    2. 按“i”进入编辑模式,在配置文件中修改“primary_conninfo”参数,指定新主库服务器的IP地址、端口、用户名和密码。
      primary_conninfo = 'host=新的鲲鹏主库服务器的IP地址 port=5432 user=backup password=123456'

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 重启x86从库(新从库1)数据库服务,使新的配置生效。
      /usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile restart

  4. 验证配置与同步状态。

    1. 验证新主库的状态。
      1. 登录新主库,查看数据库进程的状态。
        su - postgres
        ps -ax | grep postgres

      2. 登录数据库,查看主备LSN的同步情况。
        /usr/local/pgsql-13.2/bin/psql -U postgres
        select pg_current_wal_lsn();
        select * from pg_stat_replication;

      3. 退出数据库登录。
        \q

    2. 验证x86从库(新从库1)的状态。
      登录x86从库(新从库1),确保数据库进程正常运行。
      su - postgres
      ps -ax | grep postgres

  5. 主备切换完成后,再接入一台新的鲲鹏服务器作为从库服务器,并与现有的x86服务器一同作为从库。操作步骤请参见x86节点全量备份主从数据一致性检验

    在完成主备切换之前,x86节点全量备份主从数据一致性检验中的“主库”指x86主库;完成主备切换之后,“主库”指鲲鹏新主库。

    此时数据库架构变为1台鲲鹏服务器作为主库服务器,1台鲲鹏服务器和1台x86服务器作为从库服务器。

  6. 对新主库和新从库进行主从数据一致性校验。操作步骤请参见主从数据一致性检验

    在完成主备切换之前,主从数据一致性检验中的“主库”指x86主库;完成主备切换之后,“主库”指鲲鹏新主库。