暂无图片
暂无图片
6
暂无图片
暂无图片
1
暂无图片

使用Veridata 23c进行异构数据库的数据校验

原创 曹海峰 2025-03-14
147

前言

从事DBA工作这么多年,光OGG就用了十多年,其中最头疼的就是数据校验。用人工比较会消耗大量的精力。后来在一个项目中使用了Veridata,才将数据校验做成了一个可视化的任务,定期跑任务,可以直观的看到结果,还能做到数据修复。

当时使用的是Veridata 12.2.1,OGG都已经升级到了23ai,但Veridata之前一直停留在12.2.1.4上,近日才发现Veridata 23c竟然发布了。Veridata 23c架构跟之前已经不太一样,之前是属于fusion middleware架构,应用运行在WebLogic上面,后台数据库用的Oracle,属于一种大型系统。现在Veridata已经变成一个轻型的系统,应用不在依赖WebLogic,数据库也换成了MySQL。

下面将安装和使用过程简单跟大家分享一下。

环境规划

主机名IP安装说明
ogg-vdt1172.16.1.38oracle 19.26+veridata agent+ogg for oracle
ogg-vdt2172.16.1.39veridata agent+mysql8.4+ogg for mysql
ogg-vdt3172.16.1.40veridata server

本次实验用了3台虚拟机,ogg-vdt1安装了19.26作为远端,ogg-vdt2安装mysql作为目标端。OGG安装在ogg-vdt1和ogg-vdt2上。比较oracle和mysql数据库上的T1表的数据。

安装Veridata服务端

以下操作如果没有说明,默认使用root用户执行

安装JDK17

rpm -ivh jdk-17.0.13_linux-x64_bin.rpm
复制

安装MySQL

Veridata 23c自带一套MySQL数据库,我这里选择自己安装MySQL。尤其要注意自己安装的MySQL必须要使用企业版。

解压缩安装文件

unzip V1047855-01.zip
unzip mysql-commercial-8.4.4-1.1.el8.x86_64.repo.tar
复制

使用yum源安装MySQL

cat /etc/yum.repos.d/mysql8.repo
[mysql80-commercial]
name=mysql80-commercial
baseurl=file:///root/MYSQL/mysql-8.4
enable=1
gpgkey=file:///root/MYSQL/RPM-GPG-KEY-mysql
gpgcheck=1
复制

禁用yum里MySQL模块

yum module -y disable mysql
复制

安装MySQL

dnf install mysql-commercial-server.x86_64
复制


配置MySQL


vi /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-time-zone = '+08:00'
lower_case_table_names = 1

[client]
socket=/data/mysql/mysql.sock

[mysql]
socket=/data/mysql/mysql.sock
复制

启动MySQL

systemctl start mysqld
复制

生产的密码文件位于/var/log/mysqld.log,用该密码登录mysql服务器,

mysql -uroot -p
复制

重置root密码和远程登陆

ALTER USER 'root'@'localhost' IDENTIFIED BY 'AAAAbbbb123#';
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '********';
create user 'root'@'%' identified by '********';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
复制

安装Veridata

用oracle用户安装

unzip fbo_oggvdt_linux_services_shiphome.zip
cd fbo_oggvdt_linux_services_shiphome/Disk1
./runInstaller
复制

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

安装Veridata代理

安装JDK17

rpm -ivh jdk-17.0.13_linux-x64_bin.rpm
复制

设置JAVA变量

vi /etc/profile

export JAVA_HOME=/usr/java/latest
复制


安装Veridata代理

在ogg-vdt1和ogg-vdt2上安装代理,用oracle用户执行

unzip fbo_oggvdt_linux_services_shiphome.zip
cd fbo_oggvdt_linux_services_shiphome/Disk1
./runInstaller
复制

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 文本

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

配置Veridata服务端

用oracle用户配置运行vdtca配置服务端

 cd /ogg/vdt/bin
 ./vdtca.sh
复制

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

安装完成后,用浏览器打开https://ogg-vdt3.moon.com:8831/veridata

图形用户界面, 应用程序, Teams

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

配置Veridata代理

用oracle用户配置代理


 cd /ogg/vdt/agent/
 ./agent_config.sh agent1
复制

代理生成在/ogg/vdt/agent下面

生成配置文件

cd /ogg/vdt/agent
cp agent.properties.sample agent.properties
复制

配置文件主要是修改以下三个值

server.port:代理端口
database.url:数据库的连接串
server.jdbcDriver:访问数据库用的驱动

根据本次实验环境,oracle数据库的配置如下

server.port=8030
database.url=jdbc:oracle:thin:@ogg-vdt1:1521/pdb1
server.jdbcDriver=ojdbc11-23.2.0.0.jar
复制

mysql的配置如下:

server.port=8030
server.jdbcDriver=mysql-connector-j-8.3.0.jar
database.url=jdbc:mysql://ogg-vdt2:3306/test2
复制

关于其他数据库的连接写法,参考https://docs.oracle.com/en/middleware/goldengate/veridata/23/gvdug/agent-parameters-connections.html

用oracle用户启动代理

./agent.sh start agent.properties
复制


使用Veridata比对数据

配置连接

图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

配置比较对

比较对就是具体比较表的信息

图形用户界面, 应用程序, 表格

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

配置作业

图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图形用户界面

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

运行作业

图形用户界面, 应用程序, Teams

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

作业完成,数据是一致的。

现在删除一些mysql的数据

mysql> delete from test2.t1 where id>90000 and id<100000;

Query OK, 9999 rows affected (0.05 sec)

mysql> commit;

Query OK, 0 rows affected (0.00 sec)
复制


再次运行任务

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

任务完成,显示不同步

图形用户界面, 应用程序

AI 生成的内容可能不正确。

可以看到不同步的数据是9999行。

下面准备修复一下。

图形用户界面, 文本

AI 生成的内容可能不正确。

图形用户界面, 应用程序

AI 生成的内容可能不正确。

图形用户界面, 应用程序, Word

AI 生成的内容可能不正确。

修复成功,再次运行比对任务

这次作业显示成功。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

听溪
暂无图片
17天前
评论
暂无图片 0
使用Veridata 23c进行异构数据库的数据校验
17天前
暂无图片 点赞
评论