人大金仓KFS数据同步系统之数据搬迁模块

KFS数据同步系统之数据搬迁模块

关键字:

Kingbase FlySync、数据搬迁

关于KFS的数据搬迁模块

初始搬迁模块是KFS系统中较为独立的模块,一般应用场景是在数据同步之前,提供存量数据从源端到目标端的数据迁移工作,搬迁过程根据命令发起端分为目标端搬迁(快速搬迁、平滑搬迁)和源搬迁(特殊搬迁),初始搬迁过程借助数据同步链路流程。初始搬迁主要提供对数据库中表、字段、主键和数据的搬迁,从搬迁对象角度分,包括表结构搬迁和数据搬迁两种,从搬迁角色角度分,包含源端搬迁目标端搬迁两种,其中源端无缝搬迁是在源端执行命令行,通过JDBC从源端数据库读取数据后,以KUFL的形式,通过同步程序链路传递至目标端数据库。目标端快速和无缝搬迁是指在目标端执行命令,通过JDBC方法是从源端数据库读取数据后加载至目标端。这其中,无缝搬迁是在保证数据一致的前提下配合同步服务实现搬迁与同步无缝结合。

初始搬迁模块的主要功能

初始搬迁一共具有四个能力级别:第一级能力是源端获取信息,包括对数据库表、字段、主键等表机构和表数据的抽取;第二级能力是中间信息处理能力,可以是在同构和异构数据库之间表结构和数据迁移,提供常用过滤器根据用户需求过滤不需要的数据,同时针对结构搬迁中产生的变化,提供字段类型映射、大小写转换、列重命名和字段删除等能力;第三级能力是目标端入库能力,保证在工作流水线中流转的数据能够完整的迁移到目标数据库;第四级能力是错误信息处理能力,针对搬迁失败场景,初始搬迁提供了二次搬迁功能,提供SQL脚本的导出与执行,错误数据的导出与执行等能力。

初始搬迁模块在整个KFS系统中的位置

初始搬迁模块在KFS系统中的为位置见下图,初始搬迁模块是一个较为独立的模块,根据搬迁内容的不同,可以分为两个模块,分别是对表搬迁的操作和对数据搬迁的操作。每个模块又包括抽取,转换和执行/入库等小模块。

初始搬迁模块中的关键概念

  • pipeline——KFS数据同步程序中的通用模块,解释为工作流水线,根据预先配置的不同,可以按照plugin形式配置不同的流水线负责不同数据流转的职责。
  • Stage——KFS数据同步程序中的通用模块,解释为阶段,在KFS进行数据同步时,是个由Extract,Filter,Apply所组成的一个线程模块的统称。
  • Store——KFS数据同步程序中的通用模块,解释为存储,用于存储数据流转期间的数据。
  • Applier——KFS数据同步程序中的通用模块,解释为导入,表示流转中的数据输入store或者数据库。
  • Loader——数据源抽取器,表示从数据库中抽取数据。
  • Filter——过滤器,根据用户设置,可以根据不同需求对数据进行过滤,以保证在数据搬迁过程中,排除那些用户不需要的数据。

Extractor模块内部结构

从源码角度分析,初始搬迁模块对应代码中的ddlscan包和loader包,分别对应结构搬迁和数据搬迁两个主要功能,ddlscan包下主要有DDLScanWorker类,是结构搬迁的抽象父类;DDLImport二次结构搬迁的实现类;DDLScanCtrl为结构搬迁的主入口类;此外还包括数据集实体类、结构搬迁实现类和命令行辅助类等。loader包下主要有Loader和LoaderWork作为数据抽取和搬迁的抽象父类;LoaderCtrl为数据搬迁主入口类;此外还包括各类获取信息的实现类以及辅助和扩展类等。

关键技术的实现——以基于目标端流水线平滑搬迁实现无缝搬迁为例

  • 问题:在同步服务开启的背景下,进行存量数据搬迁,此时用户要求数据库不停机,俺么在迁移过程中依然有业务数据源源不断的进行录入。此时同步服务持续工作,对业务数据实现源端与目标端的同步,在同步程序进行同步数据解析过程中,初始搬迁执行,将源端数据库存量数据全部搬迁至目标端数据库,包括同步程序未来得及解析的那部分数据,当同步程序解析至已经被搬迁至目标端的数据时,在目标端就产生数据冲突,造成 数据的不一致情况。
  • 技术思路:借助目标端同步服务,替换目标端同步服务数据抽取模块,具体工作流程如下:
  1. 离线目标端同步程序(OFFLINE);
  2. 离线源端同步程序(OFFLINE);
  3. 连接到源端数据库(长连接,后续查询数据使用),开启事务锁表,查询当前数据库LSN;
  4. 启动源端同步程序,执行ONLINE-TO-EVENT-ID逻辑,使源端同步服务到达该eventId后offline;
  5. 获取源端的当前SEQNO,记录在内存。启动源端同步程序,持续解析;
  6. 启动目标端同步程序,并立即执行ONLINE-TO-SEQNO逻辑,等待执行到SEQNO后开始搬迁;
  7. 开始数据搬迁操作;
  8. 搬迁完成后关闭数据库连接;
  9. 恢复源端数据同步服务状态(ONLINE);

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值