前言
从事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-vdt1 | 172.16.1.38 | oracle 19.26+veridata agent+ogg for oracle |
ogg-vdt2 | 172.16.1.39 | veridata agent+mysql8.4+ogg for mysql |
ogg-vdt3 | 172.16.1.40 | veridata 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
复制
安装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
复制
配置Veridata服务端
用oracle用户配置运行vdtca配置服务端
cd /ogg/vdt/bin
./vdtca.sh
复制
安装完成后,用浏览器打开https://ogg-vdt3.moon.com:8831/veridata
配置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比对数据
配置连接
配置比较对
比较对就是具体比较表的信息
配置作业
运行作业
作业完成,数据是一致的。
现在删除一些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)
复制
再次运行任务
任务完成,显示不同步
可以看到不同步的数据是9999行。
下面准备修复一下。
修复成功,再次运行比对任务
这次作业显示成功。
评论
