pg_basebackup 备份和还原

 文档下载链接(包含图文):

https://download.youkuaiyun.com/download/djinglan/90592237?spm=1011.2124.3001.6210

  1. 备份操作步骤

1. 确认 PostgreSQL 配置

   - 确保 `postgresql.conf` 中 `wal_level` 设置为 `replica` 或更高

   - 确保 `pg_hba.conf` 允许复制连接

2. 创建备份目录:

   mkdir -p /path/to/backup

   chown postgres:postgres /path/to/backup

3. 执行基础备份:

   sudo -u postgres pg_basebackup -D /path/to/backup -Ft -z -Xs -P -U postgres

      参数说明:

   - `-D`:指定备份目录

   - `-Ft`:生成tar格式备份

   - `-z`:启用gzip压缩

   - `-Xs`:在备份期间流式传输WAL文件

   - `-P`:显示进度

   - `-U`:指定连接用户

4. 验证备份:

   ls -lh /path/to/backup

   应该能看到类似 `base.tar.gz` 、25482.tar.gz和 `pg_wal.tar.gz` 的文件.

base.tar.gz --基础数据文件,恢复的时候解压到postgresql的数据目录,这里是

/var/lib/postgresql/16/main/

pg_wal.tar.gz--wal日志归档数据,恢复的时候解压到/var/lib/postgresql/16/main/pg_wal目录

  1. 还原操作步骤

1. 停止 PostgreSQL 服务(实际情况可以不停止,但需重启服务)

   sudo systemctl stop postgresql

2. 备份原数据目录并创建恢复目录

   mv /var/lib/postgresql/16/main /var/lib/postgresql/16/main_old

   mkdir /var/lib/postgresql/16/main

   chown postgres:postgres /var/lib/postgresql/16/main

chmod 0750 /var/lib/postgresql/16/main

3. 解压备份文件:

   sudo -u postgres tar -xzf /path/to/backup/base.tar.gz -C /var/lib/postgresql/16/main

   Sudo -u postgres tar -xzf /path/to/backup/pg_wal.tar.gz -C /var/lib/postgresql/16/main/pg_wal

查看自定义表空间映射关系,可以看到,自定义空间位置是/opt/custome-tablespace/

将24582.tar.gz解压到该目录下

注意:如果24582.tar解压放置的目录不正确,会导致postgresql报错

psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432"failed: No such file or directory Is the server running locally and accepting connections on that socket?

4. 配置恢复参数(可选)

   修改 `postgresql.auto.conf` (PostgreSQL 12+):

      restore_command = 'cp /path/to/wal_archive/%f %p'

   recovery_target_timeline = 'latest'

5. 启动 PostgreSQL 服务

   sudo systemctl start postgresql

6. 监控恢复进度:

   sudo -u postgres tail -f /var/log/postgresql/postgresql-12-main.log

 注意事项

1. 确保备份和还原使用相同或兼容的PostgreSQL版本

2. 备份期间数据库会保持可用状态

3. 对于大型数据库,备份和还原可能需要较长时间

4. 考虑使用 `-c fast` 参数进行快速检查点(可能影响性能)

5. 对于生产环境,建议定期测试备份的恢复过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值