关键字:
KingbaseFlysync、数据迁移,初始搬迁
需求背景
针对异构数据迁移的场景,需要根据不同数据库,提供全量的数据迁移服务,包括数据表结构,数据等。
原理介绍
KFS的数据迁移功能通过初始搬迁模块来实现, 初始搬迁提供两种3种模式,分别为目标端流水线极速模式、平滑模式,源端流水特殊模式。
目标端流水线分为极速模式和平滑模式,急速模式通过登录源端数据库,获取数据表结构,套用自身的模板生成对应sql,再登录至目标端去执行,实现数据结构的迁移。
源端流水线模式,特殊模式则是将封装好的数据写入同步kufl中,通过同步服务将数据写入目标端完成迁移。
使用方式
初始搬迁功能提供命令行与图形化两种方式使用,图形化界面通过管控台使用
3.1 命令行操作
命令行操作如下图所示,使用ddlscan命令迁移,参数含义如下
-source.host 源端数据库ip地址
-source.port 源端数据库端口
-source user 源端数据库用户名
-source.pass 源端数据库密码
-source.db 源端数据库
-source.schema 迁移的模式,多个模式用,隔开
-source.tables 迁移的表,schema.table这种格式 需要注意的是,-source.schema和-source.tables只能使用一个,不能同时使用
-source.dbtype 源端数据库类型,支持的数据库类型有 kingbase7|kingbase8|mysql|oracle|mssql|postgresql|db2|dm
-target.service name 目标端的同步服务名
-target.db 需要迁移到目标端的哪个库下
-mgType 选择0,1,2, 0表示目标端急速模式,该模式在目标执行,表示从目标端发起,1/2表示源端模式,1为平滑模式,2是特殊模式
命令行使用方式如下所示(使用极速模式演示)
Ddlscan –source.host 10.10.3.200 –source.port 3306 -source.user root –source.pass 123456 –source.dbtype mysql –source.db test –source.schema test –target.service s_kes_3113 –target.db test -mgType 0
注: 使用极速模式和平滑模式,在目标端服务执行,使用特殊模式,在源端执行,使用源端特殊模式时,需要收集目标端服务信息,且保证源端服务处于online状态
使用fsrepctl –service service_name properties > service.json 将目标端服务信息导出,放到源端服务家目录下
3.2 图形界面
初始搬迁图形界面入口在管控台服务下,登录管控台后,在左侧菜单栏选择数据搬迁,进入搬迁页面,选择新建任务
选择服务,填写相关信息
选择迁移的表
常见问题
KFS的结构搬迁仅支持表结构和主键以及唯一索引的迁移,视图、函数、存储过程等不支持搬迁。
目标端流水线工作模式会读取同步服务的过滤器信息,包括rename映射,dropcolumn列过滤,skipeventbyvalue值过滤等,同理使用源端流水线模式时会读取源端信息。
更多信息,参见https://help.kingbase.com.cn/v8/index.html