支持的操作
A static extraction of data records from one database and the loading of those records to another database.
Continuous extraction and replication of transactional Data Manipulation Language (DML) operations and data definition language (DDL) changes (for supported databases) to keep source and target data consistent.
Extraction from a database and replication to a file outside the database.
ogg包含下面的组件
Extract
Data pump
Replicat
Trails or extract files
Checkpoints
Manager
Collector
extract 有下面两种配置方式:
1 初始化的load,对于初始化的加载,extract捕获源数据库的当前静态数据
2 变化同步,捕获dml和ddl,同步源和目标库
extract从下面的数据源去捕获数据
1 如果运行的是初始化加载,就在源表
2 数据库的恢复日志或事务日志,具体的方法依赖与数据库的类型,oracle提供了整合捕获模式,这种模式直接从logmining 服务器挖掘事务流。
3 第三方的捕获模块
在配置为变更同步的情况下,extract进程捕获dml,ddl并在事务提交的时候存放这些操作,当提交的时候,extract持久化事务到磁盘文件上,这些文件被称为trail,trail文件中的事务会被发送到target。
多个extract进程可以同时在不同的对象进行操作,例如,2个extract进程可以并行extract,transmit到2个replicat的进程。为了区分不同的extract进程,可以为每个进程分配一个组名。
data pumps进程
data pump是二级抽取组,如果data pump没有被使用,那么extract必须发送捕获的数据到远端的trail上,在配置了data pump的配置中,主要抽取进程写事务到trail文件,data pump进程读这些文件并发送这些操作到远程的trail文件。
data pump进程可以进行数据过滤,映射,转换,或者配置成pass-through模式,就是对数据直接发送,不做处理。
尽管data pump是可选的,但是oracle是推荐配置。原因如下:
1 避免网络,和目标故障的影响
2 做数据的转换处理
3 将多个源的数据放到一个中央的目标上。
4 同步一个源到多个目标
replicat
replicat进程运行在目标端。应用trail文件中的dml或ddl.replicat使用动态sql,编辑sql一次,使用不同的绑定变量执行多次。
可以配置在下面的2中模式下运行
初始化加载
变更同步
replicat跟extract一样,也是可以配置多个进程。
在整合模式下 replicat进程分摊到多个应用进程中,在一个单一的replicat配置中,多个内置的子进程并发的应用事务。
可以配置延时应用,通过参数DEFERAPPLYINTERVAL指定,很多参数控制replicat的行为,参考:https://docs.oracle.com/goldengate/c1221/gg-winux/GWURF/oracle-goldengate-parameters.htm#GWURF394
trail
为了支持抽取和应用的,ogg存储捕获的记录到trail的磁盘上,trail可以存在源系统,中间系统,目标端,在本地系统上称为extract trail或者local trail 在远端系统上称为remote trail
通过使用trail来存储,ogg支持数据的精确性和故障冗余,使用trail能允许抽取和复制独立的活动。
检查点
检查点存储的是当前进程读写位置,为了故障恢复,检查点保证了标记同步的数据变更真实的被捕获并被应用,并防止重复的处理,extract在数据源系统上创建检查点并保存在trail中,replicat创建检查点并存储在表中并在磁盘文件上也有,检查点文件存储在dirchk子目录中。
需要注意trail file的保存时间,避免需要的trail过期,否则还要在备份中还原。参考https://docs.oracle.com/goldengate/c1221/gg-winux/GWUAD/introduction-oracle-goldengate.htm#GWUAD120
manager
manager是ogg的控制进程,manager进程做下面的工作:
1 启动ogg
2 启动动态进程
3 维护进程端口
4 对trail管理
5 创建事件,错误,报告
collector是一个在后端运行的进程,主要做下面的事情:
1当远端的extract来一个请求到manager的时候,扫描并绑定一个可用的端口,并给manager
2 接受extrac数据库的变更并写入trail,ogg会自动启动collector,用户无需关注,
进程的类型
extract,replicat是一类
在初始化加载的时候,extract进程直接在源目标上抽取静态数据,SOURCEISTABLE参数就是指定的这种进程类型。
特殊replicat进程,可以在指定的点运行来应用数据变更。
远程任务是初始化数据的特定类型,extract与replicate通过tcp/ip直接通信,不用collector,存储trail,文件的临时磁盘
关于csn 指定csn可以重新指定repliat的位置。