首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql中的PITR还原

postgresql中的PITR还原
EN

Database Administration用户
提问于 2016-07-06 07:05:16
回答 2查看 951关注 0票数 1

我需要在postgresql中执行增量备份并还原这些备份。因此,为了实现这一点,我设置了wal-归档如下。

代码语言:javascript
复制
wal_level = archive
archive_mode = on   
archive_command = 'copy "%p" "C:\\Users\\Suniel\\Desktop\\archive\\%f"'
archive_timeout = 3600 //for every hour
max_wal_senders = 1

然后,我得到了基地的支援。

代码语言:javascript
复制
pg_basebackup -U postgres -D C:\Users\Suniel\Desktop\Postgresql_backup\pg_basebackup -F t -x 

它提供给定位置中现有数据目录的复制。

然后,我使用以下参数创建了recovery.conf文件。

代码语言:javascript
复制
recovery_target_time = '2016-07-05 04:00:00'
recovery_target_timeline = 'latest'
restore_command = 'copy "C:\\Users\\Suniel\\Desktop\\archive\\%f" "%p"'

我停止了postgresql服务,并将恢复文件放在已安装postgres位置的数据目录下。

然后,我启动了postgres服务,它将recovery.conf更改为recovery.done,但当我查看表记录时,没有看到任何更改。

但是我的日志文件似乎有一些错误(我认为)。

代码语言:javascript
复制
2016-07-06 12:15:49 NPT LOG:  database system was shut down at 2016-07-06 12:15:08 NPT
2016-07-06 12:15:49 NPT LOG:  starting point-in-time recovery to 2016-07-05 04:00:00+05:45
2016-07-06 12:15:49 NPT LOG:  consistent recovery state reached at 0/19000098
2016-07-06 12:15:49 NPT LOG:  invalid record length at 0/19000098
2016-07-06 12:15:49 NPT LOG:  redo is not required
2016-07-06 12:15:49 NPT LOG:  selected new timeline ID: 19
2016-07-06 12:15:50 NPT LOG:  archive recovery complete
2016-07-06 12:15:50 NPT LOG:  MultiXact member wraparound protections are now enabled
2016-07-06 12:15:50 NPT LOG:  database system is ready to accept connections
2016-07-06 12:15:50 NPT LOG:  autovacuum launcher started

在这些步骤中,我一定是错了。我错过了什么?我在这些程序上错了吗?

提前谢谢。

EN

回答 2

Database Administration用户

发布于 2016-07-06 17:09:46

皮特恢复向前,而不是向后。必须使用要恢复到的时间点之前的基本备份。

票数 1
EN

Database Administration用户

发布于 2016-07-06 22:03:06

PITR进程如下:

  • 设置WAL存档(通过archive_command在postgres.conf中)
  • 使用某种工具创建数据库的文件级备份(我假设pg_basebackup会这样做吗?)
  • 使用WAL存档保存文件级备份

然后当你需要恢复时:

  • 将文件级备份还原到某个位置。
  • 将WAL存档文件复制到某个位置
  • 设置WAL (通过restore_command in recovery.conf)

启动还原后的集群时,它将注意到存在recovery.conf文件,并尝试执行还原、读取WAL存档文件并应用更改。在某个时候,它将达到一致的状态,这是恢复过程中最重要的。

根据您所拥有的,看起来您实际上并不是在对任何其他系统进行还原,而是简单地启动已停止的集群。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/143076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档