
pg_rman 是 PostgreSQL 的在线备份和恢复工具。
pg_rman 项目的目标是提供一种与 pg_dump 一样简单的在线备份和 PITR 方法。此外,它还为每个数据库集群维护一个备份目录。用户只需一个命令即可维护包括存档日志在内的旧备份。

pg_rman 存储库中有多个分支,以便使用不同的 PostgreSQL 服务器版本,而无需引入服务器版本检查代码块。请选择一个分支以匹配您将针对其构建 pg_rman 的 PostgreSQL 版本。
要进行在线备份,请使用以下
backup
命令:
$ pg_rman backup --backup-mode=full --with-serverlog INFO: copying database files INFO: copying archived WAL files INFO: copying server log files INFO: backup complete INFO: Please execute 'pg_rman validate' to verify the files are correctly copied.
要列出迄今为止进行的所有备份,请使用以下
show
命令:
$ pg_rman show ===================================================================== StartTime EndTime Mode Size TLI Status ===================================================================== 2023-11-28 12:14:03 2023-11-28 12:14:05 FULL 342MB 1 OK 2023-11-28 12:13:56 2023-11-28 12:13:57 ARCH 16MB 1 OK 2023-11-28 12:13:52 2023-11-28 12:13:53 ARCH 16MB 1 OK 2023-11-28 12:13:24 2023-11-28 12:13:26 FULL 375MB 1 OK 2023-11-28 12:13:15 2023-11-28 12:13:17 INCR 33MB 1 OK 2023-11-28 12:12:48 2023-11-28 12:12:50 INCR 33MB 1 OK 2023-11-28 12:12:36 2023-11-28 12:12:38 INCR 33MB 1 OK 2023-11-28 12:11:51 2023-11-28 12:12:00 FULL 3366MB 1 OK
要从备份中恢复,请使用
restore
命令。直到 PostgreSQL11,请注意 pg_rman 本身会生成
recovery.conf
执行 PostgreSQL PITR 所需的文件。
$ pg_ctl stop -m immediate $ pg_rman restore $ cat data/recovery.signal # recovery.signal generated by pg_rman 1.3.16 $ cat data/pg_rman_recovery.conf # added by pg_rman 1.3.16 restore_command = 'cp /home/postgres/arclog/%f %p' recovery_target_timeline = '1' $ pg_ctl start
到PostgreSQL12之后,注意pg_rman本身添加了PostgreSQL PITR相关选项到文件中,并
在$PGDATA中
postgresql.conf
生成该文件。
recovery.signal
要查看每个命令使用的更多选项,请运行
pg_rman --help
。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69998444/viewspace-3020484/ ,如需转载,请注明出处,否则将追究法律责任。