只是在这里张贴,可能会对其他人有所帮助:
我在前一段时间发生中断时收到此错误,并尝试重新启动 slon 复制服务,因为复制并没有真正将数据从 MASTER 复制到 SLAVE:
FATAL localListenThread: "select "_MY_DATABASE_copy".cleanupNodelock(); insert into "_MY_DATABASE_copy".sl_nodelock values ( 1, 0, "pg_catalog".pg_backend_pid()); " - ERROR: duplicate key value violates unique constraint "sl_nodelock-pkey"
DEBUG2 slon_abort() from pid=xxxx
DEBUG1 slon: shutdown requested
最佳答案
在我们的环境中,这是由中断(计划内或计划外)造成的,其中 Postgres 在 slon 守护进程之前停机。通常,重新启动 slon 并不能解决错误。解决它的是:
- 停止所有引用失败/重启节点的slons(如果你
可以,只需通过
slon_kill
停止所有 slons;简单多了)。 - 进入
sl_nodelock
主数据库服务器上的表,并删除所有行 nl_nodeid 对应于失败/重新启动的节点。 - 开始任何 停止 slons。
关于database - PostgreSQL - Slony > fatal error : duplicate key value violates unique constraint "sl_nodelock-pkey",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3713927/