pg归档模式:
一旦某个日志删除了,还没有归档,下次启动还会继续从这个日志开始归档。
然后还找不到这个日志对应,pg_log下面有提示:
cp: cannot stat `pg_xlog/00000001000000000000008e': no such file or directory
2019-11-26 16:26:46 cst log: archive command failed with exit code 1
2019-11-26 16:26:46 cst detail: the failed archive command was: test ! -f /opt/postgresql/9.5/data/archivedir/00000001000000000000008e && cp pg_xlog/00000001000000000000008e /opt/postgresql/9.5/data/archivedir/00000001000000000000008e
2019-11-26 16:26:46 cst warning: archiving transaction log file "00000001000000000000008e" failed too many times, will try again later
怎么办?
试过办法1:
1、先修改为非归档
修改postgresql.conf中archive_mode =off,然后重启pg。
发现pg会把然后没有归档日志自己给删除掉了。包括没有归档的。【好奇怪,不理解数据库为什么这么干,pg 9.5版本】
2、然后再修改为archive_mode=on,再重启pg
气死了,还继续从00000001000000000000008e开始归档。报错继续。。。
怎么办呢?
本来想试图修改数据库让他从别的日志开始归档,但找了半天没找到。如是感觉应该可以从:
archive_command 命令下手,想办法修改这个归档命令,骗过数据库说归档成功了。应该也可以吧。
==========
最终解决办法:
1、修改postgresql.conf
archive_mode=on
archive_command = 'ls -l /opt/postgresql/9.5/data/pg_xlog/ ' #可能别的命令也可以,只要执行的时候不报错应该就可以。达到骗过pg的目的就可以了。
2、重启数据库。
发现还真都成功了。
3、修改postgresql.conf为正常了。
archive_mode=on,
archive_command = 'test ! -f /opt/postgresql/9.5/data/archivedir/%f && cp %p /opt/postgresql/9.5/data/archivedir/%f'
然后重启数据库。这样就一切恢复正常了。
阅读(3961) | 评论(0) | 转发(0) |