• 社区像册:按此进入  
  • QQ群1:3336901(满)
  • QQ群2:100910388
  • QQ群3:150657323
  • 文档群:309292849
  • 文档翻译平台:按此
  • 邮件列表:按此订阅
微信圈:PostgresChina
http://weibo.com/postgresqlchina

搜索:
用户:

密码:

    注册  晋级


PostgreSQL携手阿里云

Postgresql归档及恢复

原作者:阿弟  创作时间:2017-09-01 20:02:29+08  
doudou586 发布于2017-09-01 20:02:29           评论: 2   浏览: 1036   顶: 74  踩: 39 


评论:2   浏览: 1036                   顶: 74  踩: 39 

请在登录后发表评论,否则用户名称只能显示为GUEST。

1# __ dazhu 回答于 2017-11-21 18:38:00+08
采用的是在线备份方式,步骤如下: 备份: 1、select PG_START_BACKUP('xxx'); //开始备份 2、select PG_SWITCH_XLOG(); //切换日志 3、文件拷贝方式备份data目录 4、select PG_STOP_BACKUP(); //结束备份 5、备份WAL归档日志 模拟灾难:停服务,删除data目录 还原: 1、停止数据库服务 2、将备份的data目录拷贝到原路径 3、清空pg_xlog下面的日志 4、创建recovery.conf,指定restore_command和recovery_target_time 5、启动服务 然后,PG开始自己回放日志 最终结果如上面所说,涉及到删除数据库的操作的时候,数据恢复的不正确

2# __ dazhu 回答于 2017-11-21 18:31:35+08
最近在学习PG数据库,在测试备份恢复的时候,遇到了一些问题,还请大神们指导一下,问题详情如下: 基础环境: postgresql 9.2 Windows 32位 场景: 数据库gx,gx下面有一张表tb1,其中有一些数据,如下 a 13:26:20 b 13:29:20 c 13:31:10 d 13:32:42 13:28:46做的基础备份,此时含数据库gx 13:34 删除数据库gx 指定时间恢复到13:31:11,结果如下,数据没有问题 a 13:26:20 b 13:29:20 c 13:31:10 执行完全恢复,也没问题,被删除的数据库是不存在的 问题来了,当我指定时间点恢复到13:32:45的时候,这时的预期结果应该是13:32:44这条数据还在,gx数据库也应该还没有删除,但是配置完recovery.conf后,启动数据库,在pgAdmin中,点击gx数据库,提示数据库对应的物理文件目录不存在 pg_log里面的日志如下: LOG: database system was interrupted; last known up at 2017-11-21 13:28:46 HKT LOG: starting point-in-time recovery to 2017-11-21 13:32:45+08 LOG: restored log file "000000010000000000000002" from archive LOG: redo starts at 0/2000080 LOG: restored log file "000000010000000000000003" from archive LOG: consistent recovery state reached at 0/3000048 LOG: restored log file "000000010000000000000004" from archive FATAL: the database system is starting up LOG: recovery stopping before commit of transaction 685, time 2017-11-21 13:34:20.136+08 LOG: redo done at 0/4000898 LOG: last completed transaction was at log time 2017-11-21 13:32:44.202+08 LOG: selected new timeline ID: 2 FATAL: the database system is starting up LOG: archive recovery complete LOG: database system is ready to accept connections LOG: autovacuum launcher started FATAL: database "gx" does not exist DETAIL: The database subdirectory "base/16384" is missing. FATAL: database "gx" does not exist DETAIL: The database subdirectory "base/16384" is missing. 测试了好多次,都是相同的问题,恢复之前,数据库gx对应的物理文件目录是存在的,启动PG服务后,回放日志的时候,这个目录就被删除了,但是看pg_log里面的日志,根本就没有执行删除数据库gx的那个操作的日志,所以数据库应该是存在的,物理文件也是存在的。 跪求大神点拨一下~~~



发表评论:

© 2010 PostgreSQL中文社区

Debug: Elapsed Time: 0.1736s / Memory Used: 2.1MB