关键字:
中电科金仓、KingbaseFlySync、KFS、repkeyclean、无主键表、无主键表辅助工具、skipeventbytype、custompkey
1. 功能介绍
KFS repkeyclean是一个无主键表辅助工具,可自动为无主键的表生成custompkey.json和skipeventbytype.json;
生成的custompkey.json用于KFS实时同步时对无主键表的update、delete操作指定生成的kufl带的key值列;
skipeventbytype.json用于对指定表的DML操作(insert、update、delete)进行过滤。
生成逻辑:
• custompkey.json:无主键表,如果有唯一索引或者可定位的数据的列,则将生成customerkey(注:因数据库限制,有些类型不支持作为主键),生成的json文件内容如下:
{
"schemaname": {
"table_name1": "col1,col2",
"table_name2":"col1,col2"
}
}
customerkey参数的使用可参考文档:《中电科金仓KFS支持指定key值过滤(custompkey)功能介绍与配置使用》;
• skipeventbytype.json:无主键表,如果无索引和无可定位数据的列(例如表中列全为大对象列), 同步时需要过滤掉该表的 UPDATE 和 DELETE 操作,json文件的内容如下:
{
"schemaname": {
"table_name1": "UPDATE,DELETE",
}
}
2. 使用场景
在部署好KFS同步程序后,开始数据同步前,可先使用此工具对源端数据库进行检测,自动对无主键表生成customerkey.json和skipeventbytype.json文件,然后使用这2个文件进行KFS同步配置,避免同步过程中因数据库限制导致同步失败。
3. 配置使用方式介绍
3.1 配置方式
无
3.2 使用方法
命令:repkeyclean -dbtype XXX -host XXX -port XXX -user XXX -pass -db XXX -pattern XXX -dbMode XXX
参数说明:
参数名称 | 参数含义 |
-dbtype | 数据库类型, 例: kingbase7、kingbase8、mysql、mssql、oracle |
-host | 数据库 IP |
-port | 数据库端口 |
-user | 数据库用户名 |
-pass | 数据库密码 |
-db | 数据库数据库名称(oracle 对应服务名称) |
-pattern | 指定数据库模式或者表名, 不能写多个模式例:PUBLIC.TEST | PUBLIC.*, 默认 *.* , 指的是所有模式所有表 |
注:如果数据库的用户名,密码,库名,模式名,表名,列名中含有特殊字符导致执行 repkeyclean命令报错,将出现的特殊字符使用转义即可
4. 示例
4.1 前置条件
KFS同步程序已部署完成
4.2 操作步骤
以KingbaseES为例:
- 如果已将KFS的安装目录添加到环境变量,则直接执行命令即可:
--指定模式 repkeyclean -dbtype kingbase8 -host 192.168.1.10 -port 54321 -user SYSTEM -pass 123 -db TEST -pattern PUBLIC.* --不指定模式 repkeyclean -dbtype kingbase8 -host 192.168.1.10 -port 54321 -user system -pass 123 -db TEST |
./repkeyclean -dbtype kingbase8 -host 192.168.1.10 -port 54321 -user SYSTEM -pass 123456 -db TEST -pattern PUBLIC.* |
执行后,会在当前目录生成custompkey.json和skipeventbytype.json;
参考资料
《Kingbase FlySync 安装部署手册》
《中电科金仓KFS支持指定key值过滤(custompkey)功能介绍与配置使用》




