Oracle GoldenGate 介绍及安装配置教程
Oracle GoldenGate介绍
GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。
GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等
数据复制的拓扑结构有如下几种
Goldegate的应用场景
- A static extraction of data records from one database and the loading of those records
- to another database.
- Continuous extraction and replication of transactional DML operations and DDL
- changes (for supported databases) to keep source and target data consistent.
- Extraction from a database and replication to a file outside the database.
架构概览
Oracle Goldengate由以下组件组成
- Extract
- Data pump
- Replicat
- Trails or extract files
- Checkpoints
- Manager
- Collector
Extract 进程用来捕获数据源,有三种类型
- 配置为INITIAL LOAD模式时,数据源为表。
- 数据库的恢复日志(有的数据库也称为事务日志)。
- 第三方的捕获模型,通过调用Extact API将数据库变更的数据发送给Extract进程。
Data pump 是Extract的辅助可选组件,如果不配置Data pump,Extract将捕获的数据直接发给目标机器上的Collector进程。
使用Data pump能提供如下优点
- 防止网络或者目标端的Collector发生故障,保护数据丢失。
- data pump可以用来过虑,转换数据,或配置成Pass-through模式,即不做任何的动作,只是投递数据。
- 启动多个Data pump实现一对多的数据分发(或者是一张表的数据,根据数据类型发往不同的目的系统)
Replicat 运行在目的服务器上,从Trail文件中读取数据,重构DML、DDL语句,并应用到目的数据库上。你可以配置多个Replicat,并发的工作以提高系统的吞吐量。
Trail 为了支持持续的捕获、复制数据库的变更,Oracle将捕获来的数据库变更临时的记录到一系列的磁盘文件上。这些磁盘文件被称为Trail file。
一个Trail文件只能被一个Extract进行写。每个Extract进程必须链接到一个Trail文件上。
Checkpoints 当Goldengate的进程宕掉后,可以恢复Goldengate实例。
Manager 是Goldengate的管理进程。
Extract和Replicat启动之前,必须先在每个节点上启动Manager进程。
Manager有如下功能
- Start Oracle GoldenGate processes
- Start dynamic processes
- Maintain port numbers for processes
- Perform trail management
- Create event, error, and threshold reports
Collector ,接收远端系统传输的数据,并将其写到Trail文件中 。
group 概览
为了区分系统中多个Extract或者Replicat进程,需要定义处理组
一个组包括如下内容
- 一个进程,Extract 或者Replicat
- 它的参数文件
- 它的checkpoint文件
- 任何与这个进程相关联的其他文件。
Oracle GoldenGate安装配置教程
首先要下载Oracle GoldenGate的安装包。下载地址如下
http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html
将Oracle GoldenGate安装包上传至服务器
解压压缩包
[oracle@localhost app]$ mkdir /u01/app/ogg
[oracle@localhost app]$ unzip -d /u01/app/ogg ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
Archive: ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
inflating: /u01/app/ogg/fbo_ggs_Linux_x64_ora11g_64bit.tar
inflating: /u01/app/ogg/OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
inflating: /u01/app/ogg/Oracle GoldenGate 11.2.1.0.1 README.txt
inflating: /u01/app/ogg/Oracle GoldenGate 11.2.1.0.1 README.doc
[oracle@localhost app]$ cd ogg/
[oracle@localhost ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
修改环境变量,添加PATH、LD_LIBARY_PATH
[oracle@localhost ~]$ vi .bash_profile
export PATH=/u01/app/ogg/:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=/u01/app/ogg:$ORACLE_HOME/lib:/lib:/usr/lib
wKiom1X3ldaAb38mAAB3TDYZgWE819.jpg
进入ogg的安装目录,运行ggsci命令
[oracle@localhost ogg]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (localhost.localdomain) 1>
创建OGG的工作目录
GGSCI (localhost.localdomain) 1> create subdirs
Creating subdirectories under current directory /u01/app/ogg
Parameter files /u01/app/ogg/dirprm: already exists
Report files /u01/app/ogg/dirrpt: created
Checkpoint files /u01/app/ogg/dirchk: created
Process status files /u01/app/ogg/dirpcs: created
SQL script files /u01/app/ogg/dirsql: created
Database definitions files /u01/app/ogg/dirdef: created
Extract data files /u01/app/ogg/dirdat: created
Temporary files /u01/app/ogg/dirtmp: created
Stdout files /u01/app/ogg/dirout: created
配置Manager进程的参数
GGSCI (localhost.localdomain) 6> EDIT PARAMS MGR
添加如下内容,定义Manger进程的通信端口
-- This is the minimal configuration of Manager
PORT 7809
-- 后面是注释
启动Manager进程
GGSCI (localhost.localdomain) 14> start mgr
Manager started.
查看Manager进程
GGSCI (localhost.localdomain) 17> info mgr
Manager is running (IP port localhost.localdomain.7809).
停止Manager进程
GGSCI (localhost.localdomain) 18> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)? y
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.
如果忽略确认信息
GGSCI (localhost.localdomain) 20> stop mgr !
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.