1 简介
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OracleGolden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,OracleGolden Gate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构
2 GoldenGate安装
2.1 GoldenGate的获取
Oracle GoldenGate(下文简称ogg)软件可以通过ORACLE官方网站进行下载,根据ORACLE的版本及操作系统来下载对应版本的ogg,官方下载地址:
http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html
2.2 GoldenGate的安装
ogg安装非常简单,但需在源数据库和目标数据库服务器上均安装ogg软件即可,具体请参考以下步骤:
1、
2、
3、
4、
5、
exportLD_LIBRARY_PATH=/oradata/ogg:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
6、
[oracle@local ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> create user ogg identified byogg;
SQL> grant connect,resource toogg;
SQL> grant unlimited tablespace toogg;
SQL> grant execute on utl_file toogg;
7、
在ogg的安装目录下登陆sqlplus,使用sys登陆sqlplus,然后执行如下配置
[oracle@local ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> @marker_setup.sql
SQL> @ddl_setup.sql;
SQL> @role_setup.sql;
SQL> grant GGS_GGSUSER_ROLE toogg;
SQL> @ddl_enable.sql;
进入ogg控制台,测试用户是否创建成功
GGSCI (local) 1> dblogin useridogg
Password: ogg
Successfully logged into database.
3 单项复制的配置
为了能让ogg成功的将源数据库及目标数据库进行同步,下面还需要对ogg及oracle进行一系列配置(ogg支持多种复制方式,比如单项复制、双向复制等等,因实际需要,本文仅介绍单项复制相关配置)。
首先说说ogg的一些概念:
1、
2、
3、
3.1 源服务器配置
1、开启ORACLE归档模式,设置日志模式
[oracle@local ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter databasearchivelog;
SQL> alter database forcelogging;
SQL> alter database addsupplemental log data;
SQL> alter databaseopen;
2、
SQL>alter session setrecyclebin=off;
SQL>alter system setrecyclebin=off;
3、配置环境变量NLS_LANG(不配置中文同步会乱码)
首先在oracle中查询select userenv( 'language') from dual;
然后将查询的结果配置到linux环境变量中
如export NLS_LANG=” SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”
4、登陆ogg控制台,设置需要进行同步的oracle表
GGSCI (local) 1> dblogin useridogg
GGSCI (local) 1> add trandatadbuser.*
5、配置oggmanager&启动manager(配置界面操作类似vi)
GGSCI (local) 1> edit parammgr
PORT 7809
GGSCI (local) 1> infoall(查看当前mgr状态)
GGSCI (local) 1> startmanager(启动manager,启动完后可以用info all再次查看状态)
6、
GGSCI (local) 1> add extractext4,tranlog,begin now (增加一个抽取进程ext4,ext4名字可以根据需要修改)
GGSCI (local) 1> add exttrail/oracle/ogg/dirdat/wf,extract ext4 (将ext4抽取的源数据变更数据写到该文件夹)
GGSCI (local) 1> edit paramsext4
extract ext4
userid ogg,password ogg
rmthost xxxx.xxx.xxx.xxx,mgrport 7809--目标服务器ip
rmttrail/oracle/ogg/dirdat/wf
ddl include mapped objname dbuser.*;
table dbuser.*;
配置完成后可以通过info all查看到新添加的extract的状态
7、启动oggextract命令
GGSCI (local) 1> start extract ext4(等目标服务器ogg配置成功后再启动ext)
3.2 目标服务器配置
1、登陆ogg控制台
GGSCI (local) 1> dblogin useridogg
2、配置oggmanager&启动manager(配置界面操作类似vi)
GGSCI (local) 1> edit parammgr
PORT 7809
DYNAMICPORTLIST7840-7850
GGSCI (local) 1> infoall(查看当前mgr状态)
3、
GGSCI (local) 1> edit params./GLOBAL
GSSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
GGSCI (local) 2> dblogin useridogg
Password: ogg
Successfully logged into database.
GGSCI (local) 3> addcheckpointtable ogg.checkpoint
Successfully created checkpoint tableogg.CHECKPOINT.
GGSCI (local) 4> ADD replicat rep2EXTTRAIL /hom/wangfan/ggs/dirdat/wf, checkpointtableogg.checkpoint
GGSCI (local) 5> edit paramrep2
--Replicat group --
replicat rep2
--source and target definitions
ASSUMETARGETDEFS
--target database login --
userid ogg, password ogg
--file for dicarded transaction --
discardfile /oracle/ogg/discard/rep2_discard.txt,append, megabytes 10
--ddl support DDL
DDL INCLUDE MAPPED
DDLERROR DEFAULT IGNORE RETRYOP
--Specify table mapping ---
map dbuser.*, target dbuser.*;
配置完成后可以通过info all查看到新添加的extract的状态
4、启动oggmanager & replicat命令
GGSCI (local) 1> startmanager
GGSCI (local) 1> start replicatrep2
4 维护相关
4.1 OGG常用命令
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
4.2 OGG日志路径
$OGG_HOME/ggserr.log
4.3 OGG开机自启
操作系统设置:
OGG设置:
在ogg中主进程是manager进程,使用startmgr启动。可以在mgr进程中添加一些参数用来在启动mgr进程的同时启动extract和replicat进程。