使用pg_basebackup工具来进行PostgreSQL全量备份有两种方法:直接在从库上拉取主库的备份和在主库上创建备份压缩包并传输到从库。每种方法都有各自的优势和适用场景,请根据实际情况选择合适的方式。
在完成主备切换之前,本章节中的“主库”指x86主库;完成主备切换之后,“主库”指鲲鹏新主库。
su - postgres
/usr/local/pgsql-13.2/bin/pg_basebackup -D /data/pg-13.2/data -h 主库服务器的IP地址 -p 主库数据库服务使用的侦听端口号 -U backup -X stream -P
输入密码后,开始以流的方式跨主机备份主库的数据。
chmod -R 700 /data/pg-13.2/data ll /data/pg-13.2/data
准备好从库文件后,需要先进行从库节点配置,然后再启动从库,避免从库日志序列号(LSN)大于主库或出现分叉等,从而导致启动从库后复制失败。
当前步骤要求用户对“/data/pg-13.2”目录有可写权限。
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
scp -r /data/pg-13.2/data_bak root@从库服务器的IP地址:/data/pg-13.2/
命令中的参数说明如下,请根据实际情况修改。
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
准备好从库文件后,需要先进行从库节点配置,然后再启动从库,避免从库LSN大于主库或出现分叉等,从而导致启动从库后复制失败。