解决金仓KingbaseFlySync同步服务源端启动时报复制槽已经存在的问题
关键字
KingbaseFlySync,KFS,同步服务,复制槽
问题描述
部署KFS解析源端KingbaseES数据库的增量数据,KFS部署成功后通过fsrepctl services查看服务状态为error,查看{replicator安装目录}/flysync/flysync-replicator/log/fsrepsvc.log日志文件,发现日志中报错提示:复制槽已经存在
问题分析
KFS退出时,由于程序内部异常,导致未正常释放占用的复制槽的相关资源。
解决方案
1、停止replicator,并在KingbaseES中查看复制槽状态,并获取当前restart_lsn
2、以restart_lsn创建临时复制槽,命令如下:
select sys_create_logical_replication_slot(‘tmp_slot’,‘decoderbufs’,‘xxlsn’::pg_lsn);
注:使用步骤1获取的restart_lsn替换命令中的xxlsn
3、drop掉未释放kfs复制槽,命令如下 :
select * from sys_drop_replication_slot(‘v8r6_kfs_logical_slot’);
4、重启kfs程序,命令如下:replicator restart
5、drop创建的临时复制槽,命令如下:
select * from sys_drop_replication_slot(‘tmp_slot’);