Oracle OGG开拓你的数据采集之旅(Oracle OGG图书)
Oracle OGG:开拓你的数据采集之旅
Oracle GoldenGate (OGG) 是一款高效、可靠的实时数据采集工具,可以将异构数据源中的数据同步到目标数据库,帮助企业在较短时间内快速构建数据仓库、数据湖、业务分析等应用场景。本文将通过介绍 OGG 常用功能和基本架构,来帮助读者深入了解 OGG,开拓数据采集的新的方向。
1. OGG 常用功能
OGG 的功能包括数据采集和数据同步两部分。
数据采集:OGG 支持多种数据源的采集,例如 Oracle 数据库、SQL Server 数据库、MySQL/MariaDB 数据库、DDL 数据(create、alter、drop 等语句)、文件数据(XML、CSV 等),以及支持解译转换主流 ETL 工具生成的 Oracle Loader(ODI)和 Informatica 等标准格式的流数据。
数据同步:OGG 支持多种数据同步方式,包括实时同步、增量同步和全量同步。其中实时同步最为常用,该功能可以实现源数据库(如 Oracle 数据库)与目标数据库(如 MySQL/MariaDB 数据库)之间的实时数据同步,从而让两个不同的数据源实现高效、可靠的数据同步。
2. OGG 基本架构
OGG 基本架构如下图所示:
![OGG基本架构](https://raw.githubusercontent.com/yunluka/it_articles/mn/images/OGG.png)
OGG 的基本架构提供了数据采集、改写和传递的整体解决方案。其中,Capture 捕获了源数据库的变更,将变更转换为 OGG 自定义格式,再传递给 Trl,Trl 可以过滤、过渡等改写变更数据,然后传递给 Replicat,Replicat 将数据同步到目标数据库。
3. OGG 示例演示
下面以 Oracle 数据库和 MySQL 数据库之间的实时数据同步为例,介绍 OGG 的基本使用方法。
在 Oracle 数据库中,创建并插入测试数据:
create table test(id number, name varchar(20));
insert into test values(1, 'Andy');commit;
接着,在 MySQL 数据库中,创建同样的表结构:
create table test(id int, name varchar(20));
然后,在 Oracle 数据库中,创建 OGG 环境:
cd /ogg_home
source ./oggca.sh
按照提示进行 OGG 环境的创建,其中选择 Oracle 数据库作为源端,MySQL 数据库作为目标端。
创建完成后,在 Oracle 数据库中,设置 OGG 数据泵配置:
cd /ogg_home
./ggsciGGSCI> dblogin userid ogg_user, password ogg_user
GGSCI> ADD TRANDATA oracle.user@test
其中,OGG 数据泵是玩法 OGG 抓取 DDL 的必要配置,ADD TRANDATA 可以指定需要抓取哪些表的 DDL。
然后,在 MySQL 数据库中,执行 OGG 配置:
cd /ogg_home
./ggsciGGSCI> dblogin userid ogg_user, password ogg_user
GGSCI> ADD CHECKPOINTTABLE test.checkpointGGSCI> ADD REPLICAT mysql.rep1, EXTTRL ./dirdat/tr
GGSCI> ADD EXTRACT oracle.ext1, TRANLOG, BEGIN NOWGGSCI> ADD EXTRACT oracle.ext2, EXTTRL ./dirdat/tr, BEGIN NOW
GGSCI> ADD RMTTRL ./dirdat/tr, EXTRACT oracle.ext2GGSCI> ADD SCHEMATRANDATA test.*
其中,ADD CHECKPOINTTABLE 指定了 MySQL 目标库的检查点表,ADD REPLICAT 指定了 Replicat 的名字和 EXTTRL 的位置,ADD EXTRACT 指定了 Extract 的名字和抓取的开始时间,ADD RMTTRL 指定了远程 Trl 的文件位置,ADD SCHEMATRANDATA 指定了需要抓取哪些表的 DML。
在 Oracle 数据库中,启动 Extract 和 Pump:
cd /ogg_home
./ggsciGGSCI> dblogin userid ogg_user, password ogg_user
GGSCI> start extract oracle.ext1GGSCI> start extract oracle.ext2
GGSCI> add extract dynamistrl, exttrlsource ./dirdat/trGGSCI> start extract dynamistrl
GGSCI> add rmttrl ./dirdat/tr, extract dynamistrlGGSCI> start pump DYNAMISTRL
在 MySQL 数据库中,启动 Replicat:
cd /ogg_home
./ggsciGGSCI> dblogin userid ogg_user, password ogg_user
GGSCI> start replicat mysql.rep1
至此,Oracle 数据库和 MySQL 数据库之间的实时数据同步已经完成。
4. 总结
通过本文的介绍,我们可以看出 OGG 作为一款高效、可靠的实时数据采集工具,具有很多优点,例如支持多种数据源的采集、支持实时数据同步等。我们还通过一个简单的案例演示了 OGG 的基本使用方法。希望本文可以帮助读者更深入地了解 OGG,开拓数据采集的新的方向。