---
title: 主备切换
description: "在完成了先前的数据一致性校验并确保所有从库数据准确无误后，接下来将执行主备切换操作，以调整现有的主从部署结构，并在完成主备切换后进行新主库和新从库的一致性校验。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0013.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0013.html
indexId: 8993f1db052ab579b103b66cc11443b68d5e160b8e6085e24990e41953076c2579
---
# 主备切换

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

- 主备切换之前的结构包括一个主库和两个从库，其中主库和从库1是x86服务器，而从库2是鲲鹏服务器。
- 主备切换之后的最终目标是将鲲鹏服务器提升为主库，同时将原有的主库降级为x86架构的新从库1，最后将x86架构的新从库1替换为鲲鹏服务器的新从库2。

主备切换部署规划变化如图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）服务器，连接新主库。

  a. 打开postgresql.conf文件。

```
su - postgres
vi /data/pg-13.2/data/postgresql.conf
```


  b. 按“i”进入编辑模式，在配置文件中修改“primary_conninfo”参数，指定新主库服务器的IP地址、端口、用户名和密码。

```
primary_conninfo = 'host=
新的鲲鹏主库服务器的IP地址
port=
5432
user=
backup
password=123456'
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 重启x86从库（新从库1）数据库服务，使新的配置生效。

```
/usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile restart
```


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

  a. 验证新主库的状态。

    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
```


  b. 验证x86从库（新从库1）的状态。
    登录x86从库（新从库1），确保数据库进程正常运行。

```
su - postgres
ps -ax | grep postgres
```


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

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

6. 对新主库和新从库进行主从数据一致性校验。操作步骤请参见主从数据一致性检验。
  在完成主备切换之前，主从数据一致性检验中的“主库”指x86主库；完成主备切换之后，“主库”指鲲鹏新主库。
