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'

附上我的配置文件:

postgres12 时间点恢复