《基于ORACLE数据库的数据一致性校验方法.pdf》由会员分享,可在线阅读,更多相关《基于ORACLE数据库的数据一致性校验方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104346454 A (43)申请公布日 2015.02.11 CN 104346454 A (21)申请号 201410598198.8 (22)申请日 2014.10.30 G06F 17/30(2006.01) G06F 11/00(2006.01) (71)申请人 上海新炬网络技术有限公司 地址 200063 上海市普陀区中山北路 2000 号中期大厦 3 楼 B (72)发明人 程永新 宋辉 黎君原 (74)专利代理机构 上海申新律师事务所 31272 代理人 刘懿 (54) 发明名称 基于 Oracle 数据库的数据一致性校验方法 (57) 摘要 本发明。
2、公开了一种基于 Oracle 数据库的 数据一致性校验方法, 包括如下步骤 : a) 暂停 Oracle 数据库复制进程, 使得 Oracle 数据库提 交所有事务 ; b) 获取源端数据库的时间戳信息 SCN ; c) 查询目标端数据库并获取当前时间戳信 息 SCN 后, 重启暂停的 Oracle 数据库复制进程, 恢复 Oracle 数据库同步 ; d) 在源端数据库与目 标端数据库的时间戳信息 SCN 相一致的情况下, 再对对应表做数据一致性校验。本发明提供的基 于 Oracle 数据库的数据一致性校验方法, 在获取 匹配的时间戳信息之后再进行数据一致性校验, 从而能够顺利处理变更频繁的。
3、记录, 不依赖任何 业务逻辑与主键, 且校验效率速度快, 配置简单易 用。 (51)Int.Cl. 权利要求书 1 页 说明书 7 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书7页 附图2页 (10)申请公布号 CN 104346454 A CN 104346454 A 1/1 页 2 1. 一种基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 包括如下步骤 : a) 暂停 Oracle 数据库复制进程, 使得 Oracle 数据库提交所有事务 ; b) 获取源端数据库的时间戳信息 SCN ; c)查询目标端数据库并获取当前。
4、时间戳信息SCN后, 重启暂停的Oracle数据库复制进 程, 恢复 Oracle 数据库同步 ; d) 在源端数据库与目标端数据库的时间戳信息 SCN 相一致的情况下, 再对对应表做数 据一致性校验。 2. 如权利要求 1 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 步骤 a) 检查到复制进程的队列文件序号 seqno 和复制位置 rba 值相一致, 并确认复制进程 处于停止状态后再获取源端数据库的时间戳信息 SCN。 3. 如权利要求 1 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 步骤b)中源端数据库的时间戳信息SCN获取过。
5、程如下 : 根据复制进程的队列文件信息以及 rba 值, 通过 logdump 工具获取。 4. 如权利要求 1 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 步骤 b) 中源端数据库的时间戳信息 SCN 获取过程如下 : 在源端数据库创建校验指令表记录源端数据库的时间戳信息 SCN ; 在目标端数据库创 建相应的校验指令表获取来自源端数据库的时间戳信息 SCN。 5. 如权利要求 4 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 源端数据库的校验指令表的操作过程如下 : 每次操作仅仅允许插入一条记录, 并在插入后 马上进行提交操作 。
6、; 所述源端数据库的校验指令表配置在抽取进程的末尾, 以异构同步的 方式仅供经过验证的脚本调用运行, 并通过GoldenGate的GETENV函数获取主机名、 数据库 名和时间戳信息 SCN。 6. 如权利要求 4 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 目标端数据库的校验指令表仅仅允许查询和清理操作 ; 所述目标端数据库的校验指令表配 置在复制进程的末尾, 通过 WHERE 关键字过滤触发单个或者多个复制进程停止 ; 或者通过 EVENTACTIONS 功能, 触发复制进程做检查点, 并停止复制进程。 7. 如权利要求 6 所述的基于 Oracle 数据库。
7、的数据一致性校验方法, 其特征在于, 所述 目标端数据库的校验指令表包括如下字段 : 源端主机名、 源端数据库名、 源端抽取进程名、 源端提交时间戳、 目标端复制进程名和目标端提交前时间戳 ; 所述源端主机名、 源端数据库 名、 源端抽取进程名和源端提交时间戳由源端抽取进程自动填充 ; 所述目标端复制进程名 和目标端提交前时间戳由复制进程自动填充。 8. 如权利要求 1 所述的基于 Oracle 数据库的数据一致性校验方法, 其特征在于, 所述 c) 步骤通过调用 SQL 语句获取目标端数据库的当前时间戳信息 SCN。 9. 如权利要求 1 所述的基于 Oracle 数据库的数据一致性校验方法。
8、, 其特征在于, 所 述步骤 d) 中通过 minus 运算确认、 表记录哈希值总和以及记录数确认或者 GoldenGate Veridata 进行对应表数据一致性校验。 10. 如权利要求 1 9 任一项所述的基于 Oracle 数据库的数据一致性校验方法, 其特 征在于, 如果源端数据库与目标端数据库的时间戳信息 SCN 不一致, 选择时间戳信息在前 的 SCN 号进行数据库还原。 权 利 要 求 书 CN 104346454 A 2 1/7 页 3 基于 Oracle 数据库的数据一致性校验方法 技术领域 0001 本发明涉及一种数据库的数据校验方法, 尤其涉及一种基于 Oracle 数。
9、据库的数 据一致性校验方法。 背景技术 0002 Oracle GoldenGate 软件是一种基于 log( 日志 ) 的结构化数据复制软件, 它通过 解析源数据库在线 log 或归档 log 获得数据的增、 删、 改变化, 再将这些变化应用到目标数 据库, 实现源数据库与目标数据库同步、 双活。 Oracle GoldenGate软件可以在异构的IT基 础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒级的实时 复制。 0003 Oracle GoldenGate 是一种基于软件的数据复制方式, 它从数据库的 log 解析数 据的变化, 将数据变化转化为自己的格式, 直。
10、接通过 TCP/IP 网络传输, 无需依赖于数据库 自身的传递方式, 而且可以通过高达 9:1 的压缩率对数据进行压缩, 可以大大降低带宽需 求。在目标端, Oracle GoldenGate 可以通过交易重组, 分批加载等技术手段大大加快数据 投递的速度和效率, 降低目标系统的资源占用, 可以在亚秒级实现大量数据的复制, 并且目 标端数据库是活动的。 从而可以在应急系统、 在线报表、 实时数据仓库供应、 交易跟踪、 数据 同步、 集中 / 分发、 容灾、 数据库升级和移植、 双业务中心等多个场景下应用。同时, Oracle GoldenGate可以实现一对一、 广播(一对多)、 聚合(多对一。
11、)、 双向、 点对点、 级联等多种灵 活的拓扑结构。 0004 Oracle GoldenGate 技术解决了目前业界难以解决的在不同系统之间进行海量数 据实时同步问题, 并可以根据业务需求进行部分关键数据同步, 操作灵活、 方便, 实现了对 实时信息的实时访问, 使得企业可以提高可用性、 可靠性和跨企业系统的关键数据性能。 采 用 GoldenGate 的数据复制技术, 可以实现数据实时备份, 确保核心数据的安全, 同时避免 引入过多种类的软硬件产品, 降低了运营维护的复杂度和投入, 有利于灾备系统的恢复和 切换。 该技术可以广泛用于对数据库系统实时性要求高, 需要建立容灾系统的大中型企业。。
12、 0005 随着近几年来业务系统的不断高速发展, 当前的数据库系统, 随着客户的增加, 业 务的增长以及时间的累积, 系统单位时间在线交易数以及每笔交易的复杂度均有大规模的 提升, 这样也导致了数据库系统上的数据变更更为频繁, 数据变动量的增加, 也必然导致生 产系统向容灾系统同步数据以及切换容灾系统的压力变大。 0006 然而 Oracle GoldenGate 毕竟是一种逻辑的数据同步手段, 其搭建以及运维均涉 及复杂的步骤, 因此, 准确而有效的数据一致性校验是必须的 ; 其中针对系统迁移以及割接 的项目, 在割接前的数据一致性验证是很多客户, 特别是新接触 OracleGoldenGa。
13、te 软件的 客户所要求的。 0007 由于 Oracle GoldenGate 采用的是异步的同步方式, 存在时间延迟 ( 默认情况下 约 10 秒左右 ), 时间延迟内, 两边的数据可能发生了多次的 DML 操作, 如何在存在时间差的 情况下准确校验数据一致性成为业界的难题。 说 明 书 CN 104346454 A 3 2/7 页 4 0008 目前情况下, 业界针对 Oracle GoldenGate 的数据一致性验证方案一般有下述三 种方式 : 0009 1、 基于业务逻辑的数据一致性校验方法 0010 这种方法需要业务系统的运维或者开发人员配置, 根据业务逻辑, 查询一到多个 表生。
14、成静态的结果集, 然后再比较静态结果集的数据一致性。 0011 比较静态结果集的数据一致性则有如下方法 : 1) 简单地通过聚合函数、 记录数 等确认 ; 2) 通过 minus 运算确认 ; 3) 通过表记录哈希值总和以及记录数确认 ; 4) 通过 GoldenGate Veridata 进行校验。 0012 上述处理方法分两步, 静态结果集的生成以及静态结果集的对比。静态结果集校 验一般来说不会存在瓶颈, 上文说的 minus、 哈希等方式均能准确地验证。 0013 静态结果集生成则成为主要的瓶颈, 此方式要求应用人员配合, 这是校验的主要 瓶颈项, 主要体现在以下方面 : 1) 仅能针对。
15、业务逻辑进行校验, 所对比的静态结果没问题, 不代表同步没有问题 ; 2) 通常情况仅部分核心表能根据业务逻辑梳理出静态结果集, 其余 表无法通过这种方式进行校验 ; 3) 需要应用人员进行配合, 实际操作中容易出现责任不清 晰等管理问题。 0014 2、 忽略时间延迟直接进行数据一致性校验方法 0015 这种方法简单地确认Oracle GoldenGate运行状态正常以及不存在大的时间延迟 后, 直接进行数据一致性校验。由于这种方式比较粗略, 因此一般仅通过下述方法校验 : 1) 通过 minus 对比, 然后分析差异记录 ; 2) 简单地通过聚合函数、 记录数等确认。 0016 上述处理方。
16、法同样分两步, 即 Oracle GoldenGate 运行状态的检查确认以及数据 一致性的校验。 Oracle GoldenGate运行状态的检查后, 可基本上确认同步延迟是否在可接 受范围内 ( 默认情况下 10 秒 ), 此后即可直接发起校验。 0017 如果后续校验采用 count(*) 以及聚合函数进行校验的话, 存在如下瓶颈 : 1) 仅能 给出一个大致的校验结果, 很可能由于同步时间延迟而造成结果不一致, 但结果不一致并 不等于数据的不一致 ; 2) 如果串行地对比多个表, 则很容易由于查询语句运行时间不同而 导致后续语句发起时间点的不一致, 导致结果差异更大, 而影响对结果准确。
17、性的判断。 0018 如果后续采用校验采用 minus 方式, 则瓶颈为如下 : 1) 很容易出现由于时间延 迟而导致的差异, 差异记录需要进一步判断, 以确定同步是否存在异常 ; 2) 需要进行两次 minus 操作校验, 性能消耗较大, 通常仅能用于校验数据量较小的表 ; 3) 要求创建数据库 dblink, 部分生产环境管理规范不允许。 0019 3、 基于 Oracle GoldenGate Veridata 的数据一致性校验方法 0020 Oracle GoldenGate 是 Oracle 官方的数据一致性校验工具, 这种工具自动对初 次校验记录不一致的表进行二次校验。直接利用 O。
18、racle GoldenGate Veridata 进行校验 则是 Oracle 官方的一种方法, 这种方式的瓶颈在于 : 1) 成本更高, 需要另外购买 Oracle GoldenGate Veridata 软件, 有可能需要购买新的机器, 并搭建数据库 ; 2) 对于初次对比后 发现的不一致记录 ( 通常是由于时间延迟而产生的 ), 采用再次校验单条记录一致性的方 法进行, 如果单条记录在校验期间多次变更, 则仅能识别为变化中的数据 ; 3) 校验的精度 较细, 但为此付出的为较大资源消耗以及时间 ; 4) 无主键或者唯一键的表校验效率低下, 且消耗大量的临时表空间或者文件系统目录。 说 。
19、明 书 CN 104346454 A 4 3/7 页 5 0021 由上可见, 现有 Oracle 数据库的几种处理方式均无法彻底地解决数据一致性的 问题。因此, 有必要继续对基于 Oracle 数据库的数据一致性校验方法进行改进。 发明内容 0022 本发明所要解决的技术问题是提供一种基于 Oracle 数据库的数据一致性校验方 法, 能够顺利处理变更频繁的记录, 不依赖任何业务逻辑与主键, 且校验效率速度快, 配置 简单易用。 0023 本发明为解决上述技术问题而采用的技术方案是提供一种基于 Oracle 数据库的 数据一致性校验方法, 包括如下步骤 : a) 暂停 Oracle 数据库复。
20、制进程, 使得 Oracle 数据 库提交所有事务 ; b) 获取源端数据库的时间戳信息 SCN ; c) 查询目标端数据库并获取当前 时间戳信息 SCN 后, 重启暂停的 Oracle 数据库复制进程, 恢复 Oracle 数据库同步 ; d) 在源 端数据库与目标端数据库的时间戳信息 SCN 相一致的情况下, 再对对应表做数据一致性校 验。 0024 上述的基于Oracle数据库的数据一致性校验方法, 其中, 所述步骤a)检查到复制 进程的队列文件序号 seqno 和复制位置 rba 值相一致, 并确认复制进程处于停止状态后再 获取源端数据库的时间戳信息 SCN。 0025 上述的基于 O。
21、racle 数据库的数据一致性校验方法, 其中, 所述步骤 b) 中源端数 据库的时间戳信息 SCN 获取过程如下 : 根据复制进程的队列文件信息以及 rba 值, 通过 logdump 工具获取。 0026 上述的基于Oracle数据库的数据一致性校验方法, 其中, 所述步骤b)中源端数据 库的时间戳信息 SCN 获取过程如下 : 0027 在源端数据库创建校验指令表记录源端数据库的时间戳信息 SCN ; 在目标端数据 库创建相应的校验指令表获取来自源端数据库的时间戳信息 SCN。 0028 上述的基于 Oracle 数据库的数据一致性校验方法, 其中, 所述源端数据库的校验 指令表的操作过。
22、程如下 : 每次操作仅仅允许插入一条记录, 并在插入后马上进行提交操作 ; 所述源端数据库的校验指令表配置在抽取进程的末尾, 以异构同步的方式仅供经过验证的 脚本调用运行, 并通过GoldenGate的GETENV函数获取主机名、 数据库名和时间戳信息SCN。 0029 上述的基于 Oracle 数据库的数据一致性校验方法, 其中, 所述目标端数据库的校 验指令表仅仅允许查询和清理操作 ; 所述目标端数据库的校验指令表配置在复制进程的末 尾, 通过WHERE关键字过滤触发单个或者多个复制进程停止 ; 或者通过EVENTACTIONS功能, 触发复制进程做检查点, 并停止复制进程。 0030 上。
23、述的基于 Oracle 数据库的数据一致性校验方法, 其中, 所述目标端数据库的校 验指令表包括如下字段 : 源端主机名、 源端数据库名、 源端抽取进程名、 源端提交时间戳、 目 标端复制进程名和目标端提交前时间戳 ; 所述源端主机名、 源端数据库名、 源端抽取进程名 和源端提交时间戳由源端抽取进程自动填充 ; 所述目标端复制进程名和目标端提交前时间 戳由复制进程自动填充。 0031 上述的基于 Oracle 数据库的数据一致性校验方法, 其中, 所述 c) 步骤通过调用 SQL 语句获取目标端数据库的当前时间戳信息 SCN。 0032 上述的基于 Oracle 数据库的数据一致性校验方法, 。
24、其中, 所述步骤 d) 中通过 说 明 书 CN 104346454 A 5 4/7 页 6 minus 运算确认、 表记录哈希值总和以及记录数确认或者 GoldenGate Veridata 进行对应 表数据一致性校验。 0033 上述的基于 Oracle 数据库的数据一致性校验方法, 其中, 如果源端数据库与目标 端数据库的时间戳信息 SCN 不一致, 选择时间戳信息在前的 SCN 号进行数据库还原。 0034 本发明对比现有技术有如下的有益效果 : 本发明提供的基于 Oracle 数据库的数 据一致性校验方法, 通过先获取用于标识数据库某个确切提交版本的时间戳信息 SCN, 在获 取匹配。
25、的时间戳信息之后再进行数据一致性校验, 从而能够顺利处理变更频繁的记录, 不 依赖任何业务逻辑与主键, 且校验效率速度快, 配置简单易用。 附图说明 0035 图 1 为本发明基于 Oracle 数据库的数据一致性校验流程示意图 ; 0036 图 2 为本发明 Oracle 数据库源端目标端配置检查指令表及操作策略流程示意 图 ; 0037 图 3 为本发明采用检查指令表获取时间戳信息进行数据一致性校验流程示意图。 具体实施方式 0038 下面结合附图和实施例对本发明作进一步的描述。 0039 图 1 为本发明基于 Oracle 数据库的数据一致性校验流程示意图。 0040 请参见图 1, 本。
26、发明提供的基于 Oracle 数据库的数据一致性校验方法包括如下步 骤 : 0041 步骤S1 : 暂停Oracle数据库复制进程, 使得Oracle数据库提交所有事务 ; 比如检 查到复制进程的 seqno 和 rba 值相一致即可确认复制进程处于停止状态。 0042 步骤 S2 : 获取源端数据库的时间戳信息 SCN ; 针对不同的数据库平台, 时间戳信息 将有所不同。对于本发明涉及的 oracle database, 可供校验使用的时间戳信息为 SCN。所 谓的 SCN 全称为 System Change Number, 是 oracle database 的一个内部时间戳, 用于标 识。
27、数据库某个确切提交的版本。在事务提交或者回滚时, 它被赋予一个唯一的标识事务的 SCN, 用来保证数据的一致性。作为数据库内部的逻辑时钟, 数据库事务依 SCN 而排序, SCN 在数据库中是唯一的, 并随时间而增加, 除非重建数据库, SCN 的值永远不会被重置为 0。 0043 oracle database 的闪回版本查询功能 (Flashback Version Query) 可以支持基 于 SCN 的查询, 根据某个具体的 SCN 号, 还原某个时间点数据库表的版本, 查询语句例子如 下 : 0044 SQLselect count(*)from CRABBIT.ORDERS as 。
28、of scn 47572949274。 0045 Oracle GoldenGate 在复制数据库事务时是严格依照源端数据库的顺序进行的。 因此, 基于 Oracle GoldenGate 自身的原理, 理论上是可以找出无数个对应的时间戳信息, 根据这种对应的时间戳信息, 即可判断某个特定的表在某个特定的时间戳信息数据是否一 致。 0046 步骤 S3 : 查询目标端数据库并获取当前时间戳信息 SCN 后, 重启暂停的 Oracle 数 据库复制进程, 恢复 Oracle 数据库同步。 0047 步骤 S4 : 在源端数据库与目标端数据库的时间戳信息 SCN 相一致的情况下, 再对 说 明 书。
29、 CN 104346454 A 6 5/7 页 7 对应表做数据一致性校验。在获取匹配的时间戳信息之后, 校验数据一致性的方法与校验 静态数据的方法是一致的 : 0048 1) 通过 minus 运算确认 ; 0049 2) 通过表记录哈希值总和以及记录数确认 ; 0050 3) 通过 GoldenGate Veridata 进行校验。 0051 上述三种方法或者现有的其它方法均可以实现具体的数据一致性校验, 在此不再 一一赘述。如果源端数据库与目标端数据库的时间戳信息 SCN 不一致, 选择时间戳信息在 前的 SCN 号进行数据库还原。 0052 基 于 性 能 以 及 效 率 的 考 虑,。
30、 Oracle GoldenGate 的 目 标 端 往 往 会 配 置 GROUPTRANSOPS 等参数进行优化, 此参数会在目标端合并多个小事务并一次性提交, 这是一 种非常规的配置方法, 因此选取配对时间戳信息时, 必须考虑这个点。 0053 Oracle GoldenGate 停止的时候必然会进行事务提交, 而且停止重启的代价非常 低, 因此停止Oracle GoldenGate进程并重启的巡检是一个比较好的机会获取时间戳信息。 当Oracle GoldenGate进程停止后, 此复制进程对应的表均处于静止状态, 此时获取对应的 数据库 SCN 即可。而在复制进程停止的状态下, 也可。
31、以根据复制进程的队列文件信息以及 rba号, 通过logdump工具获取源端具体的SCN信息, 但此步骤较麻烦, 本发明则做了一个优 化, 直接通过 Oracle GoldenGate 侧的特殊配置, 将 SCN 写到特殊的数据库表中, 免却使用 logdump 工具的麻烦。 0054 本发明源端目标端配置检查指令表及操作策略部署流程如图 2 所示, 包括如下步 骤 : 0055 1、 在 源 端 数 据 库 创 建 GoldenGate 校 验 指 令 表 ; 2、 在 目 标 端 数 据 库 创 建 GoldenGate校验指令表 ; 3、 在源端数据库做GoldenGate校验指令表的特。
32、殊配置 ; 4、 在目标 端数据库做 GoldenGate 校验指令表的特殊配置。 0056 在源端数据库创建 GoldenGate 校验指令表要求如下 : 0057 此表为 GoldenGate 的校验以及检查专用, 不允许其余应用占用 ; 0058 操作此表必须经过已验证的脚本运行, 不允许其余未经验证的手工操作 ( 操作规 范为, 仅做 insert 操作, 仅插入一条记录, 插入后马上 commit) 0059 字段要求如下 : 0060 字段名字段类型字段说明 CMDvarchar2(10)记录操作指令, 为进程名或者 “STOP” 、“CHECK” OPER_DATEdate记录插。
33、入的时间点, 默认值为 sysdate 0061 在源端数据库创建 GoldenGate 校验指令表要求如下 : 0062 1、 此表为 GoldenGate 的校验以及检查专用, 不允许其余应用占用 0063 2、 不允许清理、 查询以外的操作 0064 3、 字段要求如下 : 0065 说 明 书 CN 104346454 A 7 6/7 页 8 字段名字段类型字段说明 CMDvarchar2(10)与源端一致 OPER_DATEdate与源端一致 EXT_HOSTNAMEvarchar2(10)存储源端主机名, 抽取进程自动填充 EXT_DBNAMEvarchar2(10)存储源端数据库。
34、名, 抽取进程自动填充 EXT_PRONAMEvarchar2(10)存储源端抽取进程名, 抽取进程自动填充 EXT_TIMESTAMPdate存储源端提交时间戳, 抽取进程自动填充 EXT_SCNnumber存储源端提交 SCN, 抽取进程自动填充 REP_NAMEvarchar2(10)存储目标端复制进程名, 复制进程自动填充 REP_SCNnumber存储复制端提交前时间戳, 复制进程自动填充 REP_DATEdate存储复制端提交前 SCN, 复制进程自动填充 0066 需要特别说明的是, REP_SCN 以及 REP_DATE 为提交前的信息, 并不严格与 EXT_ TIMESTAM。
35、P 以及 EXT_SCN 相对应, 复制进程将例外选择对应的 SCN 信息。 0067 在源端数据库做 GoldenGate 校验指令表的特殊配置要求如下 : 0068 1、 此策略加到抽取进程配置末尾位置, 避免影响其余策略 ; 0069 2、 此策略忽略 INSERT 以外的各种操作, 如 TRUNCATE、 DELETE、 UPDATE ; 0070 3、 此策略以异构同步的方式进行, 通过GoldenGate的GETENV函数获取主机名、 数 据库名、 日期格式存储的时间戳、 数字类型存储的 SCN 等信息。 0071 在目标端数据库做 GoldenGate 校验指令表的特殊配置要求如。
36、下 : 0072 1、 此策略加到复制进程配置末尾位置, 避免影响其余策略 ; 0073 2、 此策略自动填充复制进程名、 复制进程 ; 0074 3、 通过 WHERE 关键字过滤, 触发单个或者多个复制进程停止, 或者仅作检查点 ; 0075 4、 通过 SQLEXEC 功能, 调用数据库 SQL 语句, 获取当前 SCN 以及 sysdate ; 0076 5、 通过 EVENTACTIONS 功能, 触发进程做检查点, 并停止复制进程。 0077 图 3 为本发明采用检查指令表获取时间戳信息进行数据一致性校验流程示意图。 0078 请继续参见图 3, 本发明采用检查指令表获取时间戳信息。
37、进行数据一致性校验步 骤如下 : 0079 1、 源端对 GoldenGate 校验指令表进行插入, 触发 CHECK 操作 ; 0080 2、 目标端对 GoldenGate 校验指令表进行检查, 确认各个复制进程均处于正常状 态 ; 0081 3、 源端对 GoldenGate 校验指令表进行插入, 触发停止个别或者全部复制进程 ; 0082 4、 目标端对 GoldenGate 校验指令表进行检查, 确认对应复制进程已停止, 并获取 说 明 书 CN 104346454 A 8 7/7 页 9 对应的源端 SCN 号 ; 0083 5、 目标端检查 OGG 进程状态, 确认状态均为 ST。
38、OPPED 且, 相应的 seqno 和 rba 值一 致 ; 0084 6、 查询目标数据库, 获取当前 SCN 号 ; 0085 7、 恢复 GoldenGate 同步 ; 0086 8、 利用源端的 SCN 号以及目标端的 SCN 号, 对对应表做数据一致性校验。 0087 综上所述, 本发明提供的基于 Oracle 数据库的数据一致性校验方法, 采用自定义 的 Oracle GoldenGate 指令表进行快速地停止 GoldenGate 进程并获取对应的 SCN 号, 然后 基于时间戳信息校验 Oracle GoldenGate 同步的源端以及目标端数据一致性, 具体优点如 下 : 。
39、0088 1) 能顺利处理变更频繁的记录 : 传统的 Oracle GoldenGate Veridata 工具对比 方法无法处理校验时间内多次变更数据的一致性, 此方法没有这个问题 ; 0089 2) 不依赖于任何业务逻辑 : 与对比静态结果集的方式对比, 此方法不需要应用方 面配合 ; 0090 3) 不依赖主键 : 传统的 Oracle GoldenGate Veridata 工具对比方法需要指定逻 辑主键, 对于无主键或者唯一键的表, 需要指定所有大对象以外的字段为逻辑主键, 并根据 逻辑主键逐条记录进行对比, 效率较低 ; 0091 4) 不需要因排序而占用大量临时表空间或者文件系统。
40、目录 : 传统的 Oracle GoldenGate Veridata 工具对比方法需要进行排序, 除非使用哈希值校验的 ; 0092 5) 校验效率速度快 : 与传统的 Oracle GoldenGate Veridata 相比, 校验消耗时间 缩短 5 倍以上 ; 0093 6) 配置简单易用 : 批量生成后即可多次使用, 绝大部分步骤均能精简为单条命 令。 0094 虽然本发明已以较佳实施例揭示如上, 然其并非用以限定本发明, 任何本领域技 术人员, 在不脱离本发明的精神和范围内, 当可作些许的修改和完善, 因此本发明的保护范 围当以权利要求书所界定的为准。 说 明 书 CN 104346454 A 9 1/2 页 10 图 1 图 2 说 明 书 附 图 CN 104346454 A 10 2/2 页 11 图 3 说 明 书 附 图 CN 104346454 A 11 。