主备切换
在完成了先前的数据一致性校验并确保所有从库数据准确无误后,接下来将执行主备切换操作,以调整现有的主从部署结构,并在完成主备切换后进行新主库和新从库的一致性校验。
- 主备切换之前的结构包括一个主库和两个从库,其中主库和从库1是x86服务器,而从库2是鲲鹏服务器。
- 主备切换之后的最终目标是将鲲鹏服务器提升为主库,同时将原有的主库降级为x86架构的新从库1,最后将x86架构的新从库1替换为鲲鹏服务器的新从库2。
主备切换部署规划变化如图1所示。
以下内容为主备切换的详细操作步骤,以下所有步骤执行完成后,新从库便能够成功连接到新的鲲鹏主库,并保持数据同步状态。
- 停止主库服务。通过SSH登录到主库服务器,并停止主库服务,确保数据不再向该服务器写入。
su - postgres /usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile stop
- 将鲲鹏从库切换为新主库。通过SSH登录到鲲鹏从库服务器,执行切换为主库的命令,使鲲鹏从库成为新主库。
su - postgres /usr/local/pgsql-13.2/bin/pg_ctl promote -D /data/pg-13.2/data
- 登录到x86从库(新从库1)服务器,连接新主库。
- 打开postgresql.conf文件。
su - postgres vi /data/pg-13.2/data/postgresql.conf
- 按“i”进入编辑模式,在配置文件中修改“primary_conninfo”参数,指定新主库服务器的IP地址、端口、用户名和密码。
primary_conninfo = 'host=新的鲲鹏主库服务器的IP地址 port=5432 user=backup password=123456'
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 重启x86从库(新从库1)数据库服务,使新的配置生效。
/usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile restart
- 打开postgresql.conf文件。
- 验证配置与同步状态。
- 验证新主库的状态。
- 登录新主库,查看数据库进程的状态。
su - postgres ps -ax | grep postgres
- 登录数据库,查看主备LSN的同步情况。
/usr/local/pgsql-13.2/bin/psql -U postgres select pg_current_wal_lsn(); select * from pg_stat_replication;
- 退出数据库登录。
\q
- 登录新主库,查看数据库进程的状态。
- 验证x86从库(新从库1)的状态。
- 验证新主库的状态。
- 主备切换完成后,再接入一台新的鲲鹏服务器作为从库服务器,并与现有的x86服务器一同作为从库。操作步骤请参见x86节点全量备份~主从数据一致性检验。
此时数据库架构变为1台鲲鹏服务器作为主库服务器,1台鲲鹏服务器和1台x86服务器作为从库服务器。
- 对新主库和新从库进行主从数据一致性校验。操作步骤请参见主从数据一致性检验。
在完成主备切换之前,主从数据一致性检验中的“主库”指x86主库;完成主备切换之后,“主库”指鲲鹏新主库。
父主题: 迁移最佳实践