【发布时间】:2019-12-31 02:57:24
【问题描述】:
我在两台主/从服务器之间进行了流式传输设置,并且工作正常。存档部分工作了一半。它只是不断创建存档,不会删除旧存档。任何人都可以提出解决方案吗?
我已经尝试了全新的基本备份并重新启动流媒体等。但我在日志中不断收到以下错误:
2019-08-27 07:13:14 +08 DETAIL: The failed archive command was: test ! -f /var/lib/pgsql/data/pg_xlog/000000010000028000000068 && cp pg_xlog/000000010000028000000068 /var/lib/pgsql/data/pg_xlog/000000010000028000000068
2019-08-27 07:13:15 +08 LOG: archive command failed with exit code 1
2019-08-27 07:13:15 +08 DETAIL: The failed archive command was: test ! -f /var/lib/pgsql/data/pg_xlog/000000010000028000000068 && cp pg_xlog/000000010000028000000068 /var/lib/pgsql/data/pg_xlog/000000010000028000000068
2019-08-27 07:13:15 +08 WARNING: transaction log file "000000010000028000000068" could not be archived: too many failures
我已经检查过了,文件在那里:
-rw------- 1 postgres postgres 16777216 Aug 27 06:44 000000010000028000000068
存档状态:
-rw------- 1 postgres postgres 0 Aug 27 06:44 000000010000028000000068.ready
Postgres 版本是 9.2.23。不幸的是,升级不是一种选择。
这是 Master 中配置的存档部分:
# - Archiving -
archive_mode = on # allows archiving to be done
# (change requires restart)
#archive_command = '/bin/true' # Used for trouble shooting archiving to temporarily start postgres.
archive_command = 'test ! -f /var/lib/pgsql/data/pg_xlog/%f && cp %p /var/lib/pgsql/data/pg_xlog/%f' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
这是从机上recovery.conf 的一部分:
restore_command = 'cp -p /var/lib/pgsql/data/pg_xlog/%f %p'
trigger_file = '/var/lib/pgsql/i_am_master.pg.trigger'
recovery_target_timeline = 'latest'
archive_cleanup_command = 'pg_archivecleanup /var/lib/pgsql/data/pg_xlog %r'
我还有什么需要检查的吗?
【问题讨论】:
标签: postgresql database-replication transaction-log