cOracle OGG 12c 助力数据库跨环境同步(oracle ogg12)
Oracle OGG 12c 助力数据库跨环境同步
在现代信息化时代,数据库已经成为企业业务处理的重中之重,尤其是在互联网和物联网飞速发展的今天,大数据时代的到来更增加了数据库同步的重要性。在企业应用中,一种常见的需求是将生产环境的数据库同步到测试环境或开发环境以方便测试或者研发。这对于企业业务的顺利进行至关重要。 为了解决这种需求, Oracle 在其数据库同步产品中最重要的一款产品 Oracle Golden Gate (以下简称 OGG)提供了实时数据同步解决方案。OGG 基于日志挖掘技术,可实现任意异构数据库之间的同步,包括 Oracle 和非 Oracle 数据库,同时支持实时数据同步和离线数据同步。
下面我们将以 Oracle 数据库和 MySQL 数据库之间同步为例来说明使用 OGG 进行异构数据库间的实时同步:
步骤一:环境搭建
在搭建跨数据库的同步环境之前需要先明确两边的 IP 地址、用户名和密码,保证数据的正确读写。
对于 MySQL 数据库,需要下载 MySQL 的 JDBC 驱动,采用以下命令来安装驱动:
mkdir -p /path-to/ggate/dir/dirver/mysql;
cd /path-to/ggate/dir/dirver/mysql;wget https://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz;
tar zxvf mysql-connector-java-5.1.48.tar.gz;
步骤二:建立 OGG 环境
安装 OGG 步骤比较复杂,建议参考官方手册进行操作。
安装完成后需要进行配置操作:
cd $OGG_HOME
./ggsci
进入 GGSCI 界面后,输入以下命令:
GGSCI> dblogin userid oggadmin, password *****
GGSCI> add extract ext1, tranlog, begin now
GGSCI> add extract ext2, tranlog, begin now
GGSCI> add extract ext3, tranlog, begin now
GGSCI> add extract ext4, tranlog, begin now
按照以上方式配置如下场景(如图):
![image.png](https://cdn.nlark.com/yuque/0/2021/png/638291/1618584679470-b07d3178-2b56-46b3-a2d2-79a8e91317bb.png)
OGG 已经就绪,根据需要配置即可。此处我们以 MySQL 数据库为源端,Oracle 数据库为目标端进行同步。具体配置如下:
MySQL 端:
cd $OGG_HOME
ggsci
GGSCI> dblogin userid oggadmin, password *****GGSCI> add extract mysql_ext, EXTTRL ./dirdat/er, begin now
GGSCI> add extract sql2og, exttrl ./dirdat/er, begin nowGGSCI> add extract sql2og, tranlog, begin now
GGSCI> add extract mysql_ext, integrated tranlog, begin nowGGSCI> add rmttrl ./dirdat/mysql_t, extract mysql_ext
GGSCI> add exttrl ./dirdat/ora_t, extract sql2ogGGSCI> edit param SQL2OG
extract sql2og trlsource ./dirdat/er
PIDFILE ./dirsql2og/SQL2OG.pid TRANLOGOPTIONS ALTLOGDEST ./dirdat/mysql_t
TARGETDB LIBFILE libggjava.so USERID ogguser, password ggpassword DATABASE MY_Test_DB TABLE dbo.*;
GGSCI> edit param MY_Test_DB extract mysql_ext
userid ogguser, password ggpassword trandata MY_Test_DB
ddloptions addtrlingnewline TABLE sslive.*;
Oracle 端:
cd $OGG_HOME
ggsci
GGSCI> dblogin userid oggadmin, password *****GGSCI> add extract ora_ext, tranlog, begin now
GGSCI> add extract sql2og, tranlog, begin nowGGSCI> add rmttrl ./dirdat/ora_t, extract ora_ext
GGSCI> add rmttrl ./dirdat/sql2og_t, extract sql2ogGGSCI> add exttrl ./dirdat/er, extract ora_ext
GGSCI> add exttrl ./dirdat/er, extract sql2ogGGSCI> edit param sql2og
extract sql2og trlsource ./dirdat/ora_t
pidfile ./dirsql2og/SQL2OG.pid TRANLOGOPTIONS DBLOGREADER BOOTOPTIONS INTEGRATEDPARAMS("UNDO_RETENTION MINING APPLIED") DISABLEPRESERVATION
TABLE oggtest.*; GGSCI> edit param oggtest
extract ora_ext userid ogguser, password ggpassword
table sslive.*;
经过上述配置后,就完成了 MySQL 数据库到 Oracle 数据库的同步操作。此外,OGG 还支持多线程、压缩、加密等更多特性。
结语:
Oracle OGG 12c 极大地简化和提升了数据库环境的同步和迁移工作效率,具备极高的信息同步精度和时效性。在云计算时代中,数据库同步需要跨越不同环境,面对更高的复杂性和要求,使用 Oracle OGG 12c,将成为数据同步必备的工具之一。