Postgresql 连续归档和时间点恢复(PITR)

本文详细介绍了PostgreSQL的连续归档设置,包括如何启用WAL日志归档、触发归档的条件。接着,文章重点讲解了时间点恢复(PITR)的过程,包括前期准备、恢复到特定时间点、恢复到指定还原点以及恢复到指定事务的步骤和示例,帮助读者理解并掌握PITR操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连续归档设置

所谓WAL日志归档,其实就是把在线的WAL日志备份出来。
要启用WAL归档,需设置wal_level配置参数为replica或更高,设置archive_mode为on,并且使用archive_command配置参数指定一个shell命令。
在pg中配置归档的方法就是配置参数archive_command,参数的配置值是一个Unix命令。此命令把WAL日志文档拷贝到其他的地方。例:
archive_command = ‘cp %p /backup/pgwal/%f’;
//cp 命令。实际执行时,pg会把%p 替换成实际的在线WAL日志文件的全路径名,并把%f替换成不包括路径的WAL日志名。

最后被执行的时候是下面这样:
cp pg_wal/00000001000000A900000065 /backup/pgwal/00000001000000A900000065
对每一个将要被归档的新文件都会生成一个类似的命令。 
我们也可以归档到远程计算机:
archive_command ='scp %p postgres@192.168.100.100:/backup/pgwal/%f';

什么情况下会触发归档?

建立归档后,什么情况下会触发归档?
方法一:手动切换 WAL 日志
PostgreSQL 提供 pg_switch_xlog() 函数可以手工切换 WAL 日志,如下:

--手动归档
Type "help" for help.
postgres=# select pg_switch_xlog();
 pg_switch_xlog 
----------------
 0/87000000
(1 row)
备注:执行 pg_switch_xlog() 后,WAL 会切换到新的日志,这时会将老的 WAL日志归档

方法二:WAL 日志写满后触发归档
WAL 日志被写满后会触发归档,文档在说明配置参数 archive_command 时的第一句说就说明了这点, WAL 日志文件默认为 16MB,这个值可以在编译 PostgreSQL 时通过参数 “–with-wal-segsize” 更改,编译后不能修改。

方法三:设置 archive_timeout
另外可以设置archive 超时参数 archi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值