我在 node1 和 node3 上配置了 repmgr 复制(分别是主节点和备用节点),并且设置成功地在备用节点上创建了新的记录和对象。但几周后,我注意到复制不再起作用,但是一些 repmgr 命令在复制工作时返回结果。我尝试重新启动并再次注册备用节点,但它不起作用。
我怎样才能继续复制?
节点状态如下:
-bash-4.2$ psql -V
psql (PostgreSQL) 10.3
节点 1 - 主要
-bash-4.2$ repmgr node check
Node "node1":
Server role: OK (node is primary)
Replication lag: OK (N/A - node is primary)
WAL archiving: OK (0 pending archive ready files)
Downstream servers: OK (this node has no downstream nodes)
Replication slots: OK (node has no replication slots)
-bash-4.2$
节点 3 - 待机
-bash-4.2$ repmgr -f /etc/repmgr/10/repmgr.conf node check
Node "node3":
Server role: OK (node is standby)
Replication lag: OK (0 seconds)
WAL archiving: OK (0 pending archive ready files)
Downstream servers: CRITICAL (1 of 1 downstream nodes not attached; missing: node3 (ID: 3))
Replication slots: OK (node has no replication slots)
-bash-4.2$ repmgr node status
Node "node3":
PostgreSQL version: 10.3
Total data size: 2393 MB
Conninfo: host=node3 user=repmgr dbname=repmgr connect_timeout=2
Role: standby
WAL archiving: disabled (on standbys "archive_mode" must be set to "always" to be effective)
Archive command: /bin/true
WALs pending archiving: 0 pending files
Replication connections: 0 (of maximal 10)
Replication slots: 0 (of maximal 10)
Upstream node: node3 (ID: 3)
Replication lag: 0 seconds
Last received LSN: 4/AC000000
Last replayed LSN: 4/AC000140
在主数据库上找不到一些需要复制的wal文件。然后我又恢复了备用克隆它。
在备用服务器上提交的命令:
您可能应该提高您的 wal 限制以保留更多文件,也不错的主意是使用 archive_command 将它们放在一边,像这样
为您的用例提高足够高,256 只是这里的一个示例,路径需要调整以匹配您的安装。
其次,用于
cluster show
验证集群是否健康,比检查节点更清楚。最后:你克隆后注册备用了吗?您没有在命令列表中显示此内容。克隆后你需要启动然后注册它
如果它已经存在于 repmgr.nodes 表中,添加
--force