0

我正在尝试设置一个 pgbarman 服务器来备份一个 postgresql 集群。当配置为将数据存储在位于 cifs 网络共享上的目录中时,流复制不起作用。根本问题似乎与 pg_receivewal 命令有关。我提取了酒保正在执行的命令:

$ LANG=C /usr/bin/pg_receivewal --dbname="dbname=replication host=sqlserver.domain.tld port=5432 replication=true user=barman_replication application_name=barman_receive_wal" --verbose --no-loop --no-password --directory=/var/local/backups/Postgresql/Barman/sqlserver-main/streaming --slot=barman_backup --synchronous
pg_receivewal: starting log streaming at 18/DF000000 (timeline 1)
pg_receivewal: could not fsync file "/var/local/backups/Postgresql/Barman/sqlserver-main/streaming": Invalid argument
pg_receivewal: could not open existing write-ahead log file "0000000100000018000000DF.partial": Invalid argument
pg_receivewal: could not fsync file "/var/local/backups/Postgresql/Barman/sqlserver-main/streaming": Invalid argument
pg_receivewal: could not finish writing WAL files: Invalid argument
pg_receivewal: disconnected

运行 barman 的用户有权对该目录进行读/写。我认为这不是权限问题。如果我编辑命令并将 --directory 参数替换为本地目录(/tmp/test),错误就会消失......

谷歌在这方面并没有给我太多帮助。知道有什么问题吗?

$ pg_receivewal --version
pg_receivewal (PostgreSQL) 10.1
4

0 回答 0