---
title: x86节点全量备份
description: "使用pg_basebackup工具来进行PostgreSQL全量备份有两种方法：直接在从库上拉取主库的备份和在主库上创建备份压缩包并传输到从库。每种方法都有各自的优势和适用场景，请根据实际情况选择合适的方式。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0010.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0010.html
indexId: 7e917a4392d5a16c72268d0057c209e40fee9bebd39bc6f7c8d56f58e2796e2479
---
# x86节点全量备份

使用pg_basebackup工具来进行PostgreSQL全量备份有两种方法：直接在从库上拉取主库的备份和在主库上创建备份压缩包并传输到从库。每种方法都有各自的优势和适用场景，请根据实际情况选择合适的方式。

在完成主备切换之前，本章节中的“主库”指x86主库；完成主备切换之后，“主库”指鲲鹏新主库。


- 方法一：在从库上执行pg_basebackup命令，直接在从库上拉取主库的备份。详细操作步骤请参见方法一：直接在从库上拉取主库的备份。

  - 优点：操作简单，无需手动传输备份文件。
  - 缺点：当数据量较大时，对网络带宽要求较高，可能影响备份速度和系统性能。
- 方法二：在主库上执行pg_basebackup命令，创建备份压缩包并传输到从库。详细操作步骤请参见方式二：在主库上创建备份压缩包并传输到从库。

  - 优点：备份文件可重复使用，便于管理和存储。
  - 缺点：需要手动传输备份文件，并解压恢复，操作相对繁琐。

#### 方法一：直接在从库上拉取主库的备份

1. 在从库服务器上安装PostgreSQL 13.2。详细操作步骤可以参见（可选）安装PostgreSQL。
2. 切换到postgres用户。

```
su - postgres
```


3. 在从库服务器上执行备份命令，从主库拉取数据。

```
/usr/local/pgsql-13.2/bin/pg_basebackup -D /data/pg-13.2/data -h
主库服务器的IP地址
-p
主库数据库服务使用的侦听端口号
-U backup -X stream -P
```


  输入密码后，开始以流的方式跨主机备份主库的数据。

4. 修改从库数据目录的权限以确保安全。

```
chmod -R 700 /data/pg-13.2/data
ll /data/pg-13.2/data
```


5. 配置并启动从库。
  准备好从库文件后，需要先进行从库节点配置，然后再启动从库，避免从库日志序列号（LSN）大于主库或出现分叉等，从而导致启动从库后复制失败。


#### 方式二：在主库上创建备份压缩包并传输到从库

1. 在主库服务器上，使用pg_basebackup命令生成全量备份，并压缩。
  当前步骤要求用户对“/data/pg-13.2”目录有可写权限。

  在本例中，以root
  用户直接在该目录下创建data_bak目录，并使用pg_basebackup制作从库压缩包文件，保存于“/data/pg-13.2/data_bak”
  目录下。

```
mkdir -p /data/pg-13.2/data_bak
/usr/local/pgsql-13.2/bin/pg_basebackup -h 127.0.0.1 -p5432 -U backup -D /data/pg-13.2/data_bak -Xs -F t -z -v -P
ll /data/pg-13.2/data_bak
```


2. 在主库服务器上执行以下命令，将备份文件从主库服务器传输到从库服务器。

```
scp -r
/data/pg-13.2/data_bak
root@
从库服务器的IP地址
:/data/pg-13.2/
```


  命令中的参数说明如下，请根据实际情况修改。 “/data/pg-13.2/data_bak”为备份目录。 root为从库服务器的用户名。

3. 在从库服务器上安装PostgreSQL 13.2。详细操作步骤请参见（可选）安装PostgreSQL。
4. 在从库服务器上恢复备份数据。
  将base.tar.gz解压到指定的从库数据目录“/data/pg-13.2/data”
  ，将pg_wal.tar.gz解压到临时目录“/data/pg-13.2/archive”
  ，然后修改文件的拥有者和权限。

```
tar -zxf /data/pg-13.2/data_bak/base.tar.gz -C /data/pg-13.2/data
chown -R postgres:postgres /data/pg-13.2/data
chmod -R 700 /data/pg-13.2/data
ll /data/pg-13.2/data
tar -zxf /data/pg-13.2/data_bak/pg_wal.tar.gz -C /data/pg-13.2/archive
chown -R postgres:postgres /data/pg-13.2/archive
chmod -R 700 /data/pg-13.2/archive
ll /data/pg-13.2/archive
```


5. 配置并启动从库。
  准备好从库文件后，需要先进行从库节点配置，然后再启动从库，避免从库LSN大于主库或出现分叉等，从而导致启动从库后复制失败。
