1. 概述
使用实时管道任务、数据开发-实时任务同步 KingBaseES 数据前,需要参考本文在数据源中进行一些配置,为后续的数据同步做好准备。
2. 操作步骤
2.1 确认当前使用的数据库版本
数据库类型 | 支持版本 |
---|---|
KingbaseES(MySQL模式) | V9.X |
KingbaseES(SQLServer模式) | V8.X |
2.2 赋予数据连接用户权限
1)新建用户,作为 KingbaseES 数据连接的用户名。
su - kingbase:切换到 kingbase 安装用户。
ksql -U system -d test -W:以 system 用户登录 test 数据库,会提示输入密码。
CREATE USER wendy WITH REPLICATION LOGIN PASSWORD '123456'; 创建一个用户,名称为 wendy,密码为 123456,并赋予他复制权限。
注:用户根据实际情况设置用户名和密码。
2)为新建用户授予某个模式下所有表的读取权限。
授予用户 wendy 名为 FLY 模式下所有表的查询权限,用户根据实际情况修改下方 SQL 语句。
GRANT SELECT ON ALL TABLES IN SCHEMA FLY TO wendy;
2.3 修改REPLICA IDENTITY
修改复制标识为 FULL(使用整行作为标识),该属性决定了当数据发生 UPDATE/DELETE 时,日志记录的字段。
注:所有需要进行实时同步的表,都应该做此操作。
alter table schema.tablename REPLICA IDENTITY FULL;
schema:模式名称。
tablename:表名称。
2.4 修改配置文件
2.4.1 KingbaseES(MySQL模式)
若数据库为 KingbaseES(MySQL模式),参考本节内容。
1)使用 \q 语句退出 kingbase 登录。
2)进入/home/KingbaseES/V9/data路径下,修改配置文件 kingbase.conf(使用 vi 语句),将 wal_level 的值修改为 logical。示例如下。
注:或者找到下面代码中的设置项,取消注释,修改对应的值。
wal_level = logical
3)设置用户 replication 权限。
在 data 目录下的 sys_hba.conf 中,增加下述内容以保障账号访问权限。
注:替换 username 为本文 2.2 节创建的用户。
local replication username trust
host replication username 127.0.0.1/32 trust
host replication username ::1/128 trust
2.4.2 KingbaseES(SQLServer模式)
若数据库为 KingbaseES(SQLServer模式),参考本节内容。
1)使用 \q 语句退出 kingbase 登录。
2)进入/home/kingbase/data路径下,修改配置文件 kingbase.conf(使用 vi 语句),将 wal_level 的值修改为 logical。示例如下。
注:或者找到下面代码中的设置项,取消注释,修改对应的值。
wal_level = logical
3)设置用户 replication 权限。
在 data 目录下的 sys_hba.conf 中,增加下述内容以保障账号访问权限。
注:替换 username 为本文 2.2 节创建的用户。
local replication username trust
host replication username 127.0.0.1/32 trust
host replication username ::1/128 trust
2.5 重启数据库
用户根据实际情况修改语句:
./sys_ctl restart -D /home/KingbaseES/V9/data
2.6 检查权限是否可用
1)使用SELECT * FROM pg_create_logical_replication_slot('slot_test', 'decoderbufs');创建 slot 。如下图所示:
slot_test 用户可自定义,为逻辑复制槽的名称;创建成功代表:
用户具备 REPLICATION 权限或超级用户权限。
wal_level 已设置为 logical 。
2)使用SELECT * FROM pg_replication_slots语句查看有没有对应的 slot 。如下图所示:
3)使用SELECT PG_DROP_REPLICATION_SLOT('slot_test');语句删除对应的 slot 。如下图所示:
3. 后续步骤
在配置好数据库后,即可完成数据源配置。
1)需要在使用数据管道进行实时同步任务配置前,在 FineDataLink 中配置好需要同步的源端和目标端数据库数据连接,以便在同步任务配置过程中,通过选择数据源名称来控制同步任务,详情参见:配置KingBaseES(MySQL模式)数据源、配置KingBaseES(SqlServer模式)数据源
2)然后设置数据管道任务即可,详情参见:配置数据管道任务