文章目录
环境
系统平台:不适用
版本:4.5
症状
将发布的数据进行加密,重启服务器后,逻辑复制槽消失,检查发布端数据库报ERROR,42704,"replication slot ""sub370611"is not exist","sub370611"
根本原因
服务器重启,加密软件启动后,才能启动数据库,因加密软件未完全启动,数据库已经启动,导致逻辑复制槽消失。
解决方案
在发布端手工创建复制槽,创建复制槽后,重启发布端,检查数据同步正常。
创建复制槽的语句如下:
psql -U sysdba -d 订阅表所在的库
从pg_create_logical_replication_slot中选择* ('sub370611', 'pgoutput');
--重启数据库
pg_ctl重启
将数据库延迟启动由60s改成80s,重启服务器,该现象消失。
修改延迟启动
vi /usr/lib/systemd/system/hgdb-see-4.5.8.service
ExecStartPre=/bin/sleep 80
暂停时间=120
保存
systemCTL daemon-reload
其中ExecStartPre是延迟启动80s,TimeoutSec原先设置60s,因服务需要等待80s后启动,与60s冲突,修改为120s