CN107609188B - 基于GoldenGate的数据同步校验方法 - Google Patents
基于GoldenGate的数据同步校验方法 Download PDFInfo
- Publication number
- CN107609188B CN107609188B CN201710930786.0A CN201710930786A CN107609188B CN 107609188 B CN107609188 B CN 107609188B CN 201710930786 A CN201710930786 A CN 201710930786A CN 107609188 B CN107609188 B CN 107609188B
- Authority
- CN
- China
- Prior art keywords
- golden gate
- record
- increment
- full
- hash value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明公开了一种基于GoldenGate的数据同步校验方法,包括如下步骤:S1:在Oracle GoldenGate的源端,记录完整的前映像信息;S2:在目标端创建GoldenGate变更表,分别记录:表名、记录数增量、哈希值增量和源端提交数据的SCN值;S3:正式迁移前作一次全量的数据校验,并记录全量的数据校验对应的源端SCN,记录信息到GoldenGate全量哈希表中;S4:正式迁移期间,源端发起全量的数据校验,目标端记录基于GoldenGate全量哈希表、GoldenGate变更表以及当前的SCN值推算出当前的哈希值。本发明在确保数据校验准确的前提下,大大缩短迁移的目标环境操作的耗时。
Description
技术领域
本发明涉及一种数据同步校验方法,尤其涉及一种基于GoldenGate的数据同步校验方法。
背景技术
Oracle GoldenGate软件能支持Oracle Database之间数据的实时同步,然而在大型系统割接期间,往往为了保证数据的一致性,需要花费大量的时间实施数据一致性校验。
目前业界的通用的做法有以下几种:1、不校验;2、基于业务逻辑抽查数据;
3、仅核对记录数;4、基于Oracle GoldenGate Veridata实现全量数据校验;5、基于全表实现哈希值校验。
现有技术的缺点如下:
一、现有的技术方案1~3不严谨,无法完全保证数据的一致性;
二、现有的技术方案4~5耗时过长。无论是Oracle官方给出的Oracle GoldenGateVeridata工具,还是基于脚本实施的哈希值校验方法,校验时长均很长,对于目前数据了动辄TB级别的系统而言,往往需要一两个小时甚至更长的时间。更让人难以接受的是,数据校验的脚本需要在迁移前后的环境分别执行,此操作消耗资源过高,迁移的目标环境基本不能做其余的操作。
发明内容
本发明所要解决的技术问题是提供一种基于GoldenGate的数据同步校验方法,在确保数据校验准确的前提下,大大缩短迁移的目标环境操作的耗时。
本发明为解决上述技术问题而采用的技术方案是提供一种基于GoldenGate的数据同步校验方法,分别在源端和目标端部署GoldenGate软件,其中,包括如下步骤:S1:在Oracle GoldenGate的源端,记录完整的前映像信息;S2:在Oracle GoldenGate的目标端创建GoldenGate变更表,采用四个字段分别记录:表名、记录数增量、哈希值增量和源端提交数据的SCN值;S3:正式迁移前作一次全量的数据校验,并记录全量的数据校验对应的源端SCN,记录信息到GoldenGate全量哈希表中;S4:正式迁移期间,源端发起全量的数据校验,目标端记录基于GoldenGate全量哈希表、GoldenGate变更表以及当前的SCN值推算出当前的哈希值。
上述的基于GoldenGate的数据同步校验方法,其中,所述步骤S1包括:配置GoldenGate中记录数据删除前的值的参数NOCOMPRESSDELETES以及NOCOMPRESSUPDATES,并采用数据库日志信息完整记录同步范围内的表的所有操作记录。
上述的基于GoldenGate的数据同步校验方法,其中,所述步骤S2中目标端复制进程增量MAP策略,基于每条DML操作进行如下处理:a.针对insert记录,记录数增量为1,哈希增量为此记录拼凑结果的哈希值;b.针对update记录的前映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以-1;c.针对update记录的后映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以1;d.针对delete记录的后映像,记录数增量为-1,哈希值增量为此记录拼凑结果的哈希值乘以1。
上述的基于GoldenGate的数据同步校验方法,其中,所述源端和目标端部署GoldenGate软件包括如下步骤:向ogguser用户授权允许连接访问数据库,开启数据库最小附加日志,并创建管理进程mgr,该进程用于管理后续创建的抽取、投递和复制进程;配置抽取进程、投递进程以及复制进程。
本发明对比现有技术有如下的有益效果:本发明提供的基于GoldenGate的数据同步校验方法,通过在源端记录完整的前映像信息,同步时在目标端仅需记录基于GoldenGate全量哈希表、GoldenGate变更表以及当前的SCN值推算出当前的哈希值,即可确保数据校验准确,从而大大缩短迁移的目标环境操作的耗时。
附图说明
图1为本发明基于GoldenGate的数据同步校验流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明基于GoldenGate的数据同步校验流程示意图。
请参见图1,本发明提供的基于GoldenGate的数据同步校验方法,分别在源端和目标端部署GoldenGate软件,具体部署步骤如下:向ogguser用户授权允许连接访问数据库,开启数据库最小附加日志,并创建管理进程mgr,该进程用于管理后续创建的抽取、投递和复制进程;配置抽取进程、投递进程以及复制进程。所述数据同步校验方法包括如下步骤:
S1、针对Oracle GoldenGate的源端,作下面的特殊配置,以记录完整的前映像信息:
A)本发明可以用ogg来实现交易事物跟踪,比如记录数据删除前的值,配置GoldenGate参数NOCOMPRESSDELETES以及NOCOMPRESSUPDATES参数
COMPRESSDELETES参数是默认值,只记录删除有主键的值
NOCOMPRESSDELETES参数可以记录所有列删除值
B)对同步范围内的表执行下述操作记录完整的数据库日志信息
ALTER TABLE XXXX ADD SUPPLEMENTAL LOG DATA(ALL)COLUMNS。
S2、针对Oracle GoldenGate的目标端,作下面的特殊配置
A)创建特殊表“GoldenGate变更表”,以四个字段,分别记录:表名、记录数增量、哈希值增量、源端commit的SCN(System Change Number简称SCN)值
B)目标端复制进程增量MAP策略,实现源端对象和目标端对象的匹配关系,基于每条数据操纵语言DML操作,作下述特殊处理:
a.针对insert记录,记录数增量为1,哈希增量为此记录拼凑结果的哈希值;
b.针对update记录的前映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以-1;
c.针对update记录的后映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以1;
d.针对delete记录的后映像,记录数增量为-1,哈希值增量为此记录拼凑结果的哈希值乘以1。
S3、正式迁移前,作一次全量的数据校验,并记录全量的数据校验对应的源端SCN,记录信息到特殊表“GoldenGate全量哈希表”。
S4、正式迁移期间,作下述操作
A)源端发起全量的数据校验
B)目标端记录基于“GoldenGate全量哈希表”、“GoldenGate变更表”、以及当前的SCN值推算出当前的哈希值
C)完成步骤B,目标端环境即释放,等到步骤A完毕后补报告即可。针对迁移项目而言,数据同步只是其中一个环节,后续还涉及应用的测试、数据库检查等环节。由于数据校验十分耗资源,因此常规做法是先把环境交给GoldenGate运维人员做数据校验,等这部分操作跑完后释放目标端环境,才做后续测试等,避免资源争用。完毕后补报告则用于验证迁移前后的数据一致性,针对使用GoldenGate这种逻辑同步工具的迁移场景,校验报告可以进行事后比对,自证其清,撇清丢失数据的嫌疑。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (3)
1.一种基于GoldenGate的数据同步校验方法,分别在源端和目标端部署GoldenGate软件,其特征在于,包括如下步骤:
S1:在Oracle GoldenGate的源端,记录完整的前映像信息;
S2:在Oracle GoldenGate的目标端创建GoldenGate变更表,采用四个字段分别记录:表名、记录数增量、哈希值增量和源端提交数据的SCN值;
S3:正式迁移前作一次全量的数据校验,并记录全量的数据校验对应的源端SCN,记录信息到GoldenGate全量哈希表中;
S4:正式迁移期间,源端发起全量的数据校验,目标端记录基于GoldenGate全量哈希表、GoldenGate变更表以及当前的SCN值推算出当前的哈希值;
所述步骤S2中目标端复制进程增量MAP策略,基于每条DML操作进行如下处理:
a.针对insert记录,记录数增量为1,哈希增量为此记录拼凑结果的哈希值;
b.针对update记录的前映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以-1;
c. 针对update记录的后映像,记录数增量为0,哈希值增量为此记录拼凑结果的哈希值乘以1;
d.针对delete记录的后映像,记录数增量为-1,哈希值增量为此记录拼凑结果的哈希值乘以1。
2.如权利要求1所述的基于GoldenGate的数据同步校验方法,其特征在于,所述步骤S1包括:配置GoldenGate中记录数据删除前的值的参数NOCOMPRESSDELETES以及NOCOMPRESSUPDATES,并采用数据库日志信息完整记录同步范围内的表的所有操作记录。
3.如权利要求1所述的基于GoldenGate的数据同步校验方法,其特征在于,所述源端和目标端部署GoldenGate软件包括如下步骤:
向ogguser用户授权允许连接访问数据库,开启数据库最小附加日志,并创建管理进程mgr,该进程用于管理后续创建的抽取、投递和复制进程;
配置抽取进程、投递进程以及复制进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710930786.0A CN107609188B (zh) | 2017-10-09 | 2017-10-09 | 基于GoldenGate的数据同步校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710930786.0A CN107609188B (zh) | 2017-10-09 | 2017-10-09 | 基于GoldenGate的数据同步校验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107609188A CN107609188A (zh) | 2018-01-19 |
CN107609188B true CN107609188B (zh) | 2020-08-11 |
Family
ID=61068428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710930786.0A Active CN107609188B (zh) | 2017-10-09 | 2017-10-09 | 基于GoldenGate的数据同步校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107609188B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536761B (zh) * | 2018-03-21 | 2022-03-04 | 平安科技(深圳)有限公司 | 报表数据查询方法及服务器 |
CN108898485A (zh) * | 2018-06-07 | 2018-11-27 | 阿里巴巴集团控股有限公司 | 一种数据校验的方法及装置 |
CN109376026A (zh) * | 2018-09-14 | 2019-02-22 | 上海新炬网络信息技术股份有限公司 | 一种基于脚本的数据同步校验实现方法 |
CN109408480B (zh) * | 2018-09-29 | 2020-10-30 | 武汉达梦数据库有限公司 | 基于oracle多节点rac日志基于scn对齐读取的方法及系统 |
CN109582736A (zh) * | 2018-11-22 | 2019-04-05 | 平安科技(深圳)有限公司 | 贷款业务名单表的同步方法、装置和计算机设备 |
CN110162461B (zh) * | 2019-04-16 | 2023-08-15 | 平安科技(深圳)有限公司 | 数据同步验证方法、装置和计算机设备 |
CN110784352B (zh) * | 2019-10-30 | 2022-04-01 | 国网山东省电力公司信息通信公司 | 一种基于Oracle Goldengate的数据同步监控告警方法及装置 |
CN112328546B (zh) * | 2020-11-06 | 2022-09-06 | 安徽明生恒卓科技有限公司 | 一种基于数据中台的增量数据核查方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346454B (zh) * | 2014-10-30 | 2017-12-05 | 上海新炬网络技术有限公司 | 基于Oracle数据库的数据一致性校验方法 |
US20170091807A1 (en) * | 2015-09-30 | 2017-03-30 | Linkedin Corporation | Tracking interaction with sponsored and unsponsored content |
-
2017
- 2017-10-09 CN CN201710930786.0A patent/CN107609188B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107609188A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107609188B (zh) | 基于GoldenGate的数据同步校验方法 | |
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
CN104346454B (zh) | 基于Oracle数据库的数据一致性校验方法 | |
CN110347746B (zh) | 一种异构数据库同步数据一致性校验方法及装置 | |
CN106815326B (zh) | 一种检测无主键数据表一致性的系统及方法 | |
CN105868343B (zh) | 数据库迁移方法及系统 | |
CN102737020B (zh) | 一种初始化多租户数据库的方法和装置 | |
US9971595B1 (en) | Techniques for automated database deployment | |
CN109344056B (zh) | 一种测试方法以及测试装置 | |
JP2018200683A (ja) | 自動化された試験システムの方法及び設計 | |
US10509639B2 (en) | Automatic software-update framework | |
CN103106138B (zh) | 测试用例与测试脚本同步的方法及装置 | |
CN109933632B (zh) | 一种数据库的数据迁移方法、装置及设备 | |
CN105760517A (zh) | 将数据从Oracle数据库迁移至DB2数据库的方法和装置 | |
CN110413693A (zh) | 一种数据库实时同步系统数据一致性的检验方法及装置 | |
CN104778123A (zh) | 一种检测系统性能的方法及装置 | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
CN105653579A (zh) | 一种对分布式事务进行测试的方法和装置 | |
CN105446824B (zh) | 表增量获取方法及异地数据备份方法 | |
CN107316176A (zh) | 保单处理的控制方法和装置 | |
CN114564500A (zh) | 在区块链系统中实现结构化数据存储和查询的方法和系统 | |
CN111190769A (zh) | 一种用于自动演练的灾备技术 | |
CN105653718A (zh) | 存储磁盘快照环境下保证快照后数据库数据一致性的方法 | |
CN103309809A (zh) | 一种计算机软件的智能化调试方法 | |
CN105447012B (zh) | 一种用于数据库的写入互斥方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |