通过在源端节点和目标节点之间引入中间节点,实现了第三种在线报表处理架构,其逻辑拓扑如下:
中间节点上的DATAPUMP进程读取源端数据库投递过来的rmttrail文件,进行解析和转换后,通过网络再次投递到目标数据节点。该架构适合处理源端数据库和目标数据库不在同一网络环境的场景。
搭建环境如下:
源端数据库:mysql
目标端数据库:mysql
goldengate软件版本:12c
配置过程如下:
1、在源端节点上,使用ADD EXTRACT命令创建EXTRACT进程组,命令如下:
ADD EXTRACT ext, TRANLOG, BEGIN NOW
2、在源端使用如下命令添加exttrail文件:
ADD EXTTRAIL /u01/mysqlogg/dirdat/lo, EXTRACT ext
3、在源端节点上,使用edit param命令创建extract进程组的参数文件,添加参数内容如下
EDIT PARAMS EXT
-- Identify the Extract group:
EXTRACT ext
tranlogoptions altlogdest '/var/lib/mysql/binlog/bin.index'
-- Specify database login information as needed for the database:
- SOURCEDB db1@192.168.18.11:3306, USERID ogg, PASSWORD ogg
-- Specify the remote trail and encryption algorithm on the target system:
EXTTRAIL
/u01/mysqlogg/dirdat/lo-- Specify tables to be captured:
TABLE db1.t*;
4、在源端节点,使用如下命令创建datapump进程组
ADD EXTRACT pump, EXTTRAILSOURCE /u01/mysqlogg/dirdat/lr, BEGIN NOW
5、在源端使用如下命令添加rmttrail文件:
ADD RMTTRAIL /u01/mysqlogg/dirdat/rr, EXTRACT pump
6、在源端节点上,使用edit param命令创建pump进程组的参数文件,添加参数内容如下
EDIT PARAMS pump
-- Identify the data pump group:
EXTRACT pump
RMTHOST 192.168.18.12, MGRPORT 7809
- -- Specify the remote trail and encryption algorithm on the target system:
RMTTRAIL
/u01/mysqlogg/dirdat/ro-- Allow mapping, filtering, conversion or pass data through as-is:
TABLE db1.t*;
7、在中间节点服务器上,创建DATAPUMP进程组,命令如下
ADD EXTRACT pump_2, EXTTRAILSOURCE /u01/mysqlogg/dirdat/rr, BEGIN now
8、在中间节点服务器上,添加rmttrail文件,命令如下
ADD RMTTRAIL /u01/mysqlogg/dirdat/dr, EXTRACT pump_2
9、编辑datapump参数如下
EDIT PARAM PUMP_2
-- Identify the data pump group:
EXTRACT pump_2
RMTHOST 192.168.10.13, MGRPORT 7809
RMTTRAIL /u01/mysqlogg/dirdat/dr
TABLE db1.t*;
10、在目标节点,创建检查表,用于存放复制进程组的检查点信息
dblogin sourcedb ogg@192.168.10.13:3306 userid ogg password ogg
add checkpointtable ogg.ggs_checkpoint
11、在目标节点,创建replicat进程组,命令如下
ADD REPLICAT rep
, EXTTRAIL /u01/mysqlogg/dirdat/dr, BEGIN now
12、在目标节点,使用edit param命令编辑replicat进程组参数如下
- EDIT PARAM rep
-- Identify the Replicat group:
REPLICAT rep
-- State whether or not source and target definitions are identical:
ASSUMETARGETDEFS
-- Specify database login information as needed for the database:
TARGETDB db1@192.168.10.13:3306, USERID ogg, PASSWORD ogg
-- Specify tables for delivery and threads if using coordinated Replicat:
MAP db1.t*, TARGET db1.*;
缺点:
1、配置较为复杂
优点:
1、适用于源端数据库和目标数据库之间网络不可达的情况,如分别位于不同的防火墙区域
2、在数据库字符集一致的情况下,可以将数据转换的操作转移的中间节点,从而卸载源端或者目标端进程组的处理压力