1.1 Veridata引出
OracleGoldenGate产品体系如下:
软件名称 |
用途 |
GoldenGate |
一般常用的安装包,针对不同平台不同类型数据库不同版本有不同的安装包。安装后可以配置参数,启Mgr、Extract、Replcat进程,实现数据链路的复制。 |
GoldenGate Veridata |
数据同步比对工具,将一组数据与另一组数据进行比较,并标识不同步的数据,并允许您修复发现的所有不同步数据。 |
1.2 Veridata架构
Veridata组件说明
组件名 |
组件说明 |
Veridata Server |
协调veridata对比任务的执行、compare data、COOS、sort row、produce report |
Veridata Web UI |
配置对比对象和规则、initial compare、review status and oos data、repair oos data |
Veridata Repository |
不存储oos data,可以是oracle、mysql或sqlserver |
Veridata Agent |
和DB交互(hash row for initial compare、 Fetch and update rows to repair out-of-sync data、 Return column-level detail for out-of-sync rows ) |
VeridataCommand-line Utilities |
reportutility(查询加密的oos数据和report)、vericom(手工发指令定义job去执行数据对比)、veridata_scripting(创建xml文件来配置veridata,代替使用webui) |
二、Veridata安装
2.1 安装准备
安装规划
1台服务上安装veridata的所有组件,veridata的agent可以不在源库或者目标库上,这里和Sever在一起部署。
软件准备
软件项目 |
软件包 |
配置库 |
oracle11g数据库实例、字符集UTF8 |
JDK |
jdk1.7 |
Fusion Middleware Infrastructure |
fmw_12.1.3.0.0_infrastructure.jar |
veridata server |
fmw_12.1.3.0.0_ogg.jar |
veridata jagent |
fmw_12.1.3.0.0_ogg.jar |
2.2 安装过程
主要安装步骤如下:
1)准备好oracle11g数据库实例veri
2)安装JDk1.7
3)安装FusionMiddleware Infrastructure 12c(12.1.3.0)
4)veridataserver安装
5)veridatajagent的安装
主要安装截图展示:
Veridata Server安装
Veridata JAgent安装
2.3 相关概念
按照ConnectionConfiguration GroupConfiguration comparepair主线配置概念进行说明。
配置项 |
配置说明 |
连接配置Connection Configuration |
配置agent 到需要对比的DB的连接。 |
组配置 Group Configuration |
包含一个或多个compare pair的逻辑容器。 |
compare pair |
表示一张源表与一张目标表之间的逻辑关系,包含了需要比较的一张源表与一张目标表,可以进一步指定列的映射关系以及行的子集。 |
profile配置 |
一组全局的参数设置。Veridata 提供了一个dfault profile,也可创建自己的profile,用户可以根据需要创建多个profile,并与任意的job或者compare pair(用于覆盖job的profile的参数设置)关联。 |
job配置 |
为了进行比较,必须运行一个作业。作业的配置中指定了需要处理的compare pair ,以及运行时的参数。 在创建作业之前,需要先创建至少一个compare group,如果需要定制运行时的参数设置,还需要创建至少一个profile,否则该作业会使用系统缺省的profile。)相关联。 |
三、Veridata使用
3.1 比对流程
Veridata数据比对流程
两阶段
1)初始对比(Initialcomparsion,或者称为行哈希对比阶段):
从源和目标查询行(如果格式不一致,会被自动转换成标准化的数据类型),
进行第一次对比(PK列的值比较值、非PK列计算hash后进行比较,可以降低网络上的传输成本(当然也可以对非PK列比较列值,性能会慢且网络开销大));第一次compare的不同步的记录,会存储在内存中的MOOSqueue中(maybe-out-of-sync);(因为某些行的数据可能正在被复制,因此可能只是暂时有不同)
2)确认阶段(也称为COOS(confirm-out-of-sync)阶段):这个阶段从MOSSqueue里取数据,对这些可能不同步(OOS)的数据进行再次对比。
第二阶段对比的结果可能有3种:
In-flight:确认阶段发现源和目标这些行还是不一样,而且和第一阶段的比较也不一样,说明第一阶段之后这些行又有新的变化了,veridata无法确认是否同步;
In-sync:确认已经同步;
persistentlyout-of-sync:确认不同步;
确认persistentlyout-of-sync的行保存在文件中(OOSfile, out-of-syncfile,可以是xml、bin等格式,非DB保存,该文件包含了需要选择这些数据进行重新同步的所有信息,包括了每张表的元数据信息。可以使用上一次的OOS文件作为下一次比较的输入信息)
3.2 Veridata数据一致性校验
第一步,启动veridata服务器
1)启动veridata的数据库和监听
2)启动weblogic中间件
3)启动veridata管理服务器
4)配置agent的jdbc连接,并启动代理agent服务进程
5)登陆veridata平台
地 址:http://XX.XX.XX.XX:8830/veridata
第二步,veridata的配置使用
1)确认需要比对的表
2) 配置过程
按照ConnectionConfiguration Group Configuration compare pair主线配置。
第1步:连接配置
第2步:组配置
第3步:组参数配置comparepair添加
第4步:profile配置
第5步:job配置
第6步:运行比对作业job
第7步:查看报告
3) 对比结果处理
第1步:对比作业使用的配置文件核查
第2步:生成的比对报告结果及文件位置
第三步:比对结果确认与评估
3.3 Veridata的数据一致性修复
比对完成后针对不一致的记录,可以选中,直接点击RunRepair执行repairpair对目标端不一致数据表进行修复。修复后再次比对表的数据一致性就发现已经一致了。
四、总结
在日常的数据库运维及数据迁移工作中,数据比对验证的方法有很多,除去手工比对方法之外,使用Veridata工具进行尝试也是一个不错的选择。
OracleGoldenGate Veridata作为一个独立的产品,是一种高性能的数据对比解决方案,对在两个数据库之间进行数据复制时可能存在的差异进行确认和报告。
GoldenGate Veridata在两端数据库保持在线的情况下进行数据对比。数据一致性在数据迁移和数据同步的场景下是最关键的重要环节,而Veridata就可以解决大部分我们对数据一致性的刚性需求。
大部分Oracle DBA都会遇到场景:
场景 |
需求 |
Veridata的作用 |
OGG数据同步 |
在OGG的日常维护中,经常遇到因为源和目标的数据不一致而导致进程复制进程abend(或者异常discardfile或者入异常记录表),如果有工具能验证数据一致性并修正数据该多好啊? |
Veridata可以在源库和目标库之间比对数据并修复不一致的数据。 |
数据库迁移 |
根据业务需要,需要将数据从A库迁移到B库,如何保证业务迁移前后,数据库A和数据库B的数据完全无误? |
Veridata作为权威的第三方工具,可以出报表说明哪些表的数据是否一致 |
数据库升级 |
根据升级需要,业务系统需要升级,如何保证备份数据和升级数据一致性? |
Veridata快速校验数据是否一致 |
Veridata技术特点
1)易于使用、高性能且侵入性极低的产品,可用户管理数据一致性。
2)比较包含大量数据的数据库
3)在线比较数据不断变化的数据库
4)消耗的资源低
5)配置使用灵活,功能强大
6)选择性、并行比较
7)异构性:可以支持不同数据库之间的compare
8)性能:大约十几M-几十M/秒;
9)对在线的支持:veridata可以脱离ogg运行环境
END