Postgresql

postgres:archive_command 無法寫入 nfs 共享

  • October 11, 2017

我已經在主伺服器上啟用了archive_modewith 。wal_level = hot_standby我打算將 wal 日誌發送到 nfs 共享:

archive_command = 'test ! -f /mnt/psql_wal/%f && cp -i %p /mnt/psql_wal/%f'

但它一直告訴我:

sh: /var/lib/pgsql/archive_wal.sh: Permission denied
LOG:  archive command failed with exit code 126
DETAIL:  The failed archive command was: test ! -f /mnt/psql_wal/000000010000000000000001 && cp -i pg_xlog/000000010000000000000001 /mnt/psql_wal/000000010000000000000001
cp: failed to access ‘/mnt/psql_wal/000000010000000000000001’: Permission denied

基本的 nfs 權限問題,您可能會想,但不是。以下命令有效:

sudo -H -u postgres cp -i /var/lib/pgsql/data/pg_xlog/000000010000000000000001 /mnt/psql_wal/000000010000000000000001

歸檔命令是否在不同的使用者下執行?

您可能是它的受害者selinux或類似的東西,其中同一個系統作業系統帳戶可以具有不同的權限,具體取決於它是作為守護程序執行還是從命令行執行(而且,根據氣壓,相位通常看起來月亮,還有你早餐吃的東西)。

您可以將其關閉,或將其置於允許訪問並僅記錄抱怨的許可模式。

引用自:https://dba.stackexchange.com/questions/188199