人大金仓KFS领航“零停机数据修复”

人大金仓KFS领航“零停机数据修复”_第1张图片

在数据同步过程中,为了保证数据的一致性,通常需要定期对数据进行校验,并对差异数据进行数据修复。而源和目标数据库的数据都随时在变化,源端有应用数据不断写入,目标端数据同步也在不断写入,并可能会存在同步延迟。

作为数据库领域国家队,人大金仓自主研发的金仓异构数据同步软件Kingbase FlySync,以下简称“KFS”,如何有效解决在数据不断变化的情况下进行数据修复的难题呢?

零停机数据修复

面临的关键问题

典型场景

在业务高峰期间,当增量数据同步存在延迟时,执行数据一致性校验。因为应用程序已经在源端库插入了数据,而延迟导致数据尚未到达目标端库,所以会产生源端库数据多于目标端库的结果。

数据校验工具会将这部分数据标记为源端库和目标端库之间的差异数据,进行差异数据修复操作时,数据修复工具会把目标端缺失的数据补齐。此时增量同步的数据姗姗来迟并开始写入目标端库,而目标端库经过数据修复已经存在了这些数据,从而引发主键冲突等问题。

所以在零停机差异数据修复场景,需要解决数据修复和数据同步产生数据冲突的关键问题,避免数据在目标端被重复写入。

人大金仓KFS领航“零停机数据修复”_第2张图片人大金仓KFS数据校验工具不仅支持数据修复功能,还专门对此场景进行了深度优化,可以在数据同步存在延迟场景下,解决同时进行数据修复和数据同步下的数据冲突。

KFS零停机数据修复能力

助力数据平滑同步

1

使用方法

使用KFS数据校验工具,进行数据快速校验,对差异数据进行数据修复。修复数据后,与传统方式不同,停机数据修复功能会智能识别并跳过已修复的数据。KFS增量同步和数据校验修复数据时不会产生任何数据冲突,帮助数据平滑修复和同步。

人大金仓KFS领航“零停机数据修复”_第3张图片

所有的操作步骤都可以通过图形用户界面(GUI)进行,直观简单,用户可以轻松上手。

2

使用效果

操作完成后,即可看到数据修复效果。不仅实现了无冲突下的数据修复,还极大地提高了修复所有数据的整体速度。

在线数据修复无冲突

进行目标端入库时,会跳过已修复过的数据后,无数据冲突产生,无缺失数据现象,两边数据保持一致。

人大金仓KFS领航“零停机数据修复”_第4张图片

解决数据冲突耗时减少

业务场景:数据同步存在延迟,延迟数据总计12万个事务,每个事务2条INSERT操作,延迟数据全部先由数据校验进行数据修复,再进行数据同步产生数据冲突。

如果未开启零停机数据修复功能,进行数据同步会产生24万条冲突数据,这些冲突数据由KFS错误处理功能进行跳过,每条冲突数据都需要执行、回滚和跳过。

而开启零停机数据修复功能后,24万条冲突数据不会执行,自动判断是否需要跳过,减少了冲突数据执行时间和回滚时间,业务不会感知到任何冲突和报错。

功能使用前后,解决24万条冲突数据耗时对比如下:

人大金仓KFS领航“零停机数据修复”_第5张图片

背后的技术原理

1

事务快照

KFS通过对比数据库中的快照与KFS中间文件中记录的差异,可以确定在此期间的数据变化情况。事务快照可以保证在校验过程中,所有表都位于一个查询位置。而这些数据变化就是冲突数据,需要在同步的数据将这部分数据跳过。

人大金仓KFS领航“零停机数据修复”_第6张图片

2

日志号跳过

源端解析增量数据时,会将增量数据的日志号记录到增量数据中,日志号是数据库日志中每个事务的唯一编号,通常叫做LSN或者SCN号。目标端同步数据时设置一个日志号,这个日志号在数据校验时获取并记录,在执行入库时,判断增量数据的日志号和设置日志号的大小,当增量数据日志号更小时,跳过不进行入库。直到增量数据日志号比设置的日志号更大时,不再进行判断,正常入库。

人大金仓KFS领航“零停机数据修复”_第7张图片

END

KFS零停机数据修复能力解决了实时数据同步过程中的冲突问题,突破了数据修复的瓶颈,极大地提升了数据同步过程中的数据质量,并加速了修复效率。

未来,KFS将持续优化数据修复策略,积极探索前沿更有效的技术手段,以从容应对日益复杂或大规模的数据修复任务,为客户提供更高效、更可靠的数据修复解决方案。

d6271623f3fd1973e65f17f7fe5db4d1.png供稿:产品研发中心

编辑:王堇

审核:日尧

你可能感兴趣的:(人大金仓KFS领航“零停机数据修复”)