PostgreSQL 9.2存档上次在恢复后重播
根据PostgreSQL 9.2官方文档,我在postgres.conf文件上设置了连续存档:PostgreSQL 9.2存档上次在恢复后重播,postgresql,archive,postgresql-9.2,recovery,wal,Postgresql,Archive,Postgresql 9.2,Recovery,Wal,根据PostgreSQL 9.2官方文档,我在postgres.conf文件上设置了连续存档: wal_level = archive archive_mode = on archive_command = 'test ! -f /.../archive/%f && cp %p /.../archive/%f' 成功备份和恢复后,启动数据库时,archive命令会失败,因为PostgreSQL正在尝试归档最后一个重播的WAL文件,显然,它已经归档了。我的recovery.con
wal_level = archive
archive_mode = on
archive_command = 'test ! -f /.../archive/%f && cp %p /.../archive/%f'
成功备份和恢复后,启动数据库时,archive命令会失败,因为PostgreSQL正在尝试归档最后一个重播的WAL文件,显然,它已经归档了。我的recovery.conf文件如下所示:
restore_command = 'cp /.../archive/%f "%p"'
recovery_target_time = '2013-07-02 15:20:12'
这是我尝试启动数据库时遇到的错误:
LOG: database system was interrupted; last known up at 2013-07-02 14:53:37 CEST
LOG: creating missing WAL directory "pg_xlog/archive_status"
LOG: starting point-in-time recovery to 2013-07-02 15:20:12+02
LOG: restored log file "000000010000000000000002" from archive
LOG: redo starts at 0/2000020
LOG: consistent recovery state reached at 0/20023D0
LOG: restored log file "000000010000000000000003" from archive
LOG: recovery stopping before commit of transaction 4063, time 2013-07-02 15:20:12.211559+02
LOG: redo done at 0/306D8B8
LOG: last completed transaction was at log time 2013-07-02 15:20:11.189978+02
cp: cannot stat `/.../archive/00000002.history': No such file or directory
LOG: selected new timeline ID: 2
cp: cannot stat `/.../archive/00000001.history': No such file or directory
LOG: archive recovery complete
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
LOG: archive command failed with exit code 1
DETAIL: The failed archive command was: test ! -f /.../archive/000000010000000000000003 && cp pg_xlog/000000010000000000000003 /.../archive/000000010000000000000003
LOG: archive command failed with exit code 1
DETAIL: The failed archive command was: test ! -f /.../archive/000000010000000000000003 && cp pg_xlog/000000010000000000000003 /.../archive/000000010000000000000003
LOG: archive command failed with exit code 1
DETAIL: The failed archive command was: test ! -f /.../archive/000000010000000000000003 && cp pg_xlog/000000010000000000000003 /.../archive/000000010000000000000003
WARNING: transaction log file "000000010000000000000003" could not be archived: too many failures
这是预期的行为吗?恢复后是否应存档上次重播的WAL文件?如果是这样,如果文件已按文档中所述进行存档,则存档命令不应失败。显然,您应该只存档一次并恢复存档的副本 我会在恢复期间关闭归档,然后在恢复后打开归档