通过GOLDENGATE实现在线报表系统,在不同的系统拓扑下,可以有不同的实现模式。我们首先来研究一下最简单的配置架构,其拓扑结构如图所示:
在该种拓扑结构中,需要在源端数据库创建一个extract进程组,用于捕获数据。extract进程组将捕获的数据通过网络直接投递到目标端,在目标端生成rmttrail文件。replicat组进程读取rmttrail文件后,将数据应用到数据库。
搭建环境如下:
源端数据库:mysql
目标端数据库:mysql
goldengate软件版本:12c
配置过程如下:
1、在源端节点上,使用ADD EXTRACT命令创建EXTRACT进程组,命令如下:
ADD EXTRACT ext, TRANLOG, BEGIN NOW
2、在源端使用如下命令添加rmttrail文件:
ADD RMTTRAIL /u01/mysqlogg/dirdat/lr, 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
-- Valid for Oracle. Specify the name or IP address of the target system and
-- optional encryption across TCP/IP:
RMTHOST 192.168.18.12, MGRPORT 7809
-- Specify the remote trail and encryption algorithm on the target system:
RMTTRAIL
/u01/mysqlogg/dirdat/lr-- Specify tables to be captured:
TABLE db1.t*;
4、在目标节点,创建检查表,用于存放复制进程组的检查点信息
dblogin sourcedb ogg@192.168.18.12:3306 userid ogg password ogg
add checkpointtable ogg.ggs_checkpoint
5、在目标节点,创建replicat进程组,命令如下
ADD REPLICAT rep
, EXTTRAIL /u01/mysqlogg/dirdat/lr, BEGIN now
6、在目标节点,使用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.18.12:3306, USERID ogg, PASSWORD ogg
-- Specify tables for delivery and threads if using coordinated Replicat:
MAP db1.t*, TARGET db1.*;
优点:
1、配置简单
缺点:
1、当网络发生故障时,extract进程组报错,在网络故障解除前,抽取工作无法持续进行,这段时间内,如果发生日志重用等操作,可能会导致数据丢失。测试过程如下:
delimiter ;
drop procedure if exists testc;
delimiter $$
create procedure testc()
begin
declare i int;
set i = 1;
while i < 1000000 do
insert into db1.t1 values (i,i,i);
set i = i +1;
end while;
end $$
delimiter ;
call testc();
关闭网络连接后,extract进程组发生阻塞,
重新启动extract进程组,无法恢复
2、extract进程组在抓取数据的同时,执行网络功能、数据过滤和转换功能,负载较高。
建议:
在生产环境中,不建议使用该种架构。