postgres12 时间点恢复
1.开启归档:(postgresql.conf)
archive_mode = on
archive_command = 'test ! -f /data/pgdata/archivedir/%f && cp %p /data/pgdata/archivedir/%f'
archive_timeout = 60s
2. 首先postgres 用户下基础备份:
pg_basebackup -h 2.8.0.9 -Ft -Pv -Xf -z -Z5 -p5432 -D /data/pgdata/pgback
3.关闭数据库,然后清空data目录下所有文件(当然正式库可以先备份下所有文件再删除)
4.时间点恢复步骤:
1)拷贝基础备份到data目录下,然后解压缩
cp /data/pgdata/pgback/* /data/pgdata/data/
tar -zxvf base.tar.gz
2) 在data目录下创建一个空文件:
touch recovery.signal
3)修改 postgresq.conf 文件:
把以下:
archive_mode = on
archive_command = 'test ! -f /data/pgdata/archivedir/%f && cp %p /data/pgdata/archivedir/%f'
archive_timeout = 60s 全部注释掉##
增加 两行:
restore_command = 'cp /data/pgdata/archivedir/%f %p'
recovery_target_time = '2020-03-04 16:45:44.823462+08'
附上我的配置文件: