文中涉及的安装包以及任何问题请加下方二维码免费获取提问

1.环境准备

源Oracle:11g R2 64位 ip:192.168.40.66 操作系统:Centos6.5 64位

目标Oracle:11g R2 64位 ip:192.168.40.67 操作系统:Centos6.5 64位

2.下载OGG软件并解压安装

源服务器

#mkdir -p /u01/app/oracle/ogg 

#unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip

#tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/app/oracle/ogg/ 

#chown -R oracle:oinstall /u01/app/oracle/ogg

目标服务器

#mkdir -p /u01/app/oracle/ogg 

#unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip

#tar –xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /u01/app/oracle/ogg/ 

#chown -R oracle:oinstall /u01/app/oracle/ogg

 准备OGG环境变量

 1)源服务器

#vim /home/oracle/.bash_profile

增加如下两行:

export GGATE=$ORACLE_BASE/ogg

export LD_LIBRARY_PATH=$ORACLE_HOME/lib
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第1张图片
生效环境变量

#source /home/oracle/.bash_profile

目标服务器

 #vim /home/oracle/.bash_profile

 增加如下两行:

 export GGATE=$ORACLE_BASE/ogg

export LD_LIBRARY_PATH=$ORACLE_HOME/lib
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第2张图片
生效环境变量

 #source /home/oracle/.bash_profile

配置日志模式

 只要配置源服务器,目标服务器不用配置

配置为规档模式

#su – oracle

#sqlplus / as sysdba

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;

SQL> alter system set log_archive_dest_1='location=/u01/archive' scope=both;

 配置日志模式(打开强制规档与补充日志模式)

SQL> alter database add supplemental log data;  

SQL> alter database force logging; 

3)查看配置结果:

SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
创建GoldenGate用户帐号

 1) 源服务器

#su - oracle

#sqlplus / as sysdba

SQL>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10M autoextend on next 10M;

 SQL>create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;

 SQL>grant connect,resource to ogg;

 SQL>grant create session,alter session to ogg;

 SQL>grant select any dictionary,select any table to ogg;

 SQL>grant alter any table to ogg;

 SQL>grant flashback any table to ogg;

 SQL>grant execute on dbms_flashback to ogg;

目标服务器

 #su - oracle

 #sqlplus / as sysdba

 SQL>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10M autoextend on next 10M;

 SQL>create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;

 SQL>grant connect,resource to ogg;

 SQL>grant create session,alter session to ogg;

 SQL>grant select any dictionary,select any table to ogg;

 SQL>grant alter any table to ogg;

 SQL>grant flashback any table to ogg;

 SQL>grant execute on dbms_flashback to ogg;

 SQL>grant insert any table to ogg;

 SQL>grant delete any table to ogg;

 SQL>grant update any table to ogg;

安装GoldenGate软件

 源服务器配置

 #su – oracle

#cd /u01/app/oracle/ogg

#./ggsci

GGSCI  1>create subdirs
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第3张图片
GGSCI 2> quit

目标服务器都要配置

#su - oracle

#cd /u01/app/oracle/ogg

#./ggsci

GGSCI 1> create subdirs
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第4张图片
GoldenGate DML同步源端配置

#cd /u01/app/oracle/ogg

#./ggsci

 源MGR进程

编辑主进程组

GGSCI  1>edit params mgr

 输入i进入编辑模式,在文件中增加如下参数:

port 7809

dynamicportlist 7800-8000

autorestart extract *,retries 5,waitminutes 2,resetminutes 5

按ESC键退出编辑模式,输入:wq进行保存。

说明:

 port 指定mgr进程通信端口;

 dynamicportlist 表示mgr进程可以为源与目的端动态通信指定端口;

 autorestart extract 表示自动重启extract进程组,每2分钟尝试重启所有进程,重试5次,每5分钟清零。

 配置参数后,重启mgr进程生效

启动主管理进程

GGSCI 2>start mgr

配置Extract进程组

编辑eora配置文件

GGSCI  4>edit params eora

输入i进入编辑模式,在文件中增加如下参数:

extract eora

dynamicresolution

setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) 

userid ogg,password ogg  

exttrail /u01/app/oracle/ogg/dirdat/et  

table scott.*; 

按ESC键退出编辑模式,输入:wq进行保存。

说明:

 extract eora定义extract进程别名

 dynamicresolution 

setenv设置环境变量

 userid 登录数据库

 exttrail指定本地trail文件地址

 table 定义同步的表  scott.* 表示 同步scott用户下的所有表

添加抽取进程

GGSCI 2>add extract eora, tranlog,begin now

添加本地trail文件

GGSCI  2>add exttrail /u01/app/oracle/ogg/dirdat/et,extract eora

说明:

 创建本地trail文件,主extract进程负责写这部分文件,pump负责把这部分文件传到目标服务器端。

 启动eora服务

GGSCI 2>start extract eora 

配置Pump进程组 

编辑pump配置文件

GGSCI  2>edit params pump_so

输入i进入编辑模式,在文件中增加如下参数:

extract pump_so

dynamicresolution

passthru

rmthost 192.168.40.66,mgrport 7809,compress

rmttrail /u01/app/oracle/ogg/dirdat/pt

table scott.*;

按ESC键退出编辑模式,输入:wq进行保存。

上面文件中的ip(192.168.40.66),要换成目标端的ip。

添加pump进程  源端路径

GGSCI 2>add extract pump_so,exttrailsource  /u01/app/oracle/ogg/dirdat/et

添加远程trail文件  目标路径

GGSCI  2>add rmttrail /u01/app/oracle/ogg/dirdat/pt,extract pump_so

说明: 指定远程trail文件

启动pump进程

GGSCI  2>start extract pump_so

GoldenGate DML同步目标端配置

#cd /u01/app/oracle/ogg

#./ggsci

目标端MGR进程

编辑MGR配置文件

GGSCI  2>edit params mgr

输入i进入编辑模式,在文件中增加如下参数:

port 7809

dynamicportlist 7800-8000

autostart er *

autorestart extract *, waitminutes 2, resetminutes 5

lagreporthours 1

laginfominutes 3

lagcriticalminutes 5

purgeoldextracts /u01/app/oracle/ogg/dirdat/rt*, usecheckpoints, minkeepdays 3

按ESC键退出编辑模式,输入:wq进行保存。

2) 启动MGR

GGSCI  2>start mgr

 添加检查表

说明: 当我们在GLOBALS 文件里指定了默认的checkpoint 之后,新的Replicat groups 在创建时会自动使用这个参数,不需要其他指令

 编辑全局配置文件

GGSCI 2>edit params ./GLOBALS 

输入i进入编辑模式,在文件中增加如下参数:

CHECKPOINTTABLE ogg.checkpoint

按ESC键退出编辑模式,输入:wq进行保存。

这里需要退出ggsci终端 

GGSCI 2>exit

重新进入

#./ggsci 

添加checkpoint表

GGSCI 1> dblogin userid ogg,password ogg 

Successfully logged into database.

GGSCI  2> add checkpointtable ogg.checkpoint

Successfully created checkpoint table OGG.CHECKPOINT.

配置目标端Peplicat进程组

 编辑配置文件

GGSCI 1>edit params repl

输入i进入编辑模式,在文件中增加如下参数:

replicat repl

userid ogg,password ogg

assumetargetdefs

reperror default,discard

discardfile /u01/app/oracle/ogg/dirrpt/repl.dsc,append,megabytes 50

dynamicresolution

map scott., target scott.;

按ESC键退出编辑模式,输入:wq进行保存。

添加复制进程

GGSCI 1>add replicat repl,exttrail /u01/app/oracle/ogg/dirdat/pt, CHECKPOINTTABLE ogg.checkpoint

启动进程

GGSCI  1>start repl

目标端查看checkpoint状态

#su - oracle

#sqlplus ogg/ogg

SQL>select tname from tab; 

TNAME 

------------------------------------- 

CHECKPOINT TABLE

CHECKPOINT_LOX TABLE

SQL>exit;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第5张图片
 DML配置测试     

源端和目标端同时创建t1表

 源端创建t1表

#sqlplus scott/123456

SQL>create table t1 (id char(10));

目标端创建t1表

#sqlplus scott/123456

SQL>create table t1 (id char(10));

源端执行DML操作后提交

SQL>insert into t1 values(100);

SQL>insert into t1 values(300);

SQL>commit;

4)目标端查看

SQL> select * from t1;

能查到下面两条数据,即可
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
说明:到此goldengate DML单向配置已经配置完毕,通过简单的测试示例来进行测试。

GoldenGate DDL同步源端配置 

服务器源端操作

指定数据库模式

SQL>exit

#cd /u01/app/oracle/ogg/ 

#./ggsci

GGSCI  1> edit param ./GLOBALS

输入i进入编辑模式,在文件中增加如下参数:

ggschema ogg

按ESC键退出编辑模式,输入:wq进行保存。 

GGSCI  2> view param ./GLOBALS 查看 

ggschema ogg

GGSCI  3> stop mgr 

oralce 11gR2数据库需要关闭回收站。

GGSCI  3>quit

#sqlplus / as sysdba;

在关之前可以先看一下,如果是on,如下图所示,则回收站是开启的。

SQL>show parameter recyclebin
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第6张图片
SQL>alter system set recyclebin=off deferred;

改完需要把数据库重启一下才会生效

SQL>shutdown immediate

SQL>startup

SQL>show parameter recyclebin
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第7张图片
3) 安装DDL对象

SQL> grant dba to ogg;

说明: 以下各执行如提示:Enter Oracle GoldenGate schema name,均指定用户:ogg

SQL>@marker_setup
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第8张图片
SQL>@ddl_setup

SQL>@role_setup 

SQL>grant GGS_GGSUSER_ROLE to ogg;

SQL>@ddl_enable

SQL>@marker_status.sql

注1: 执行dbmspool包将在数据库中创建DBMS_SHARED_POOL包,之后ddl_pin包需要用到

SQL>@?/rdbms/admin/dbmspool.sql

Package created.

Grant succeeded.

View created.

Package body created.

注2: 执行ddl_pin.sql通过dbms_shared_pool.keep存储过程将DDLReplication相关对象keep在共享池中,以保证这些对象不要RELOAD,提升性能。

SQL>@ddl_pin.sql ogg

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

源端操作-修改eora(抽取)进程的params文件

停止eora(抽取)进程

GGSCI  2> stop extract eora

编辑配置文件

GGSCI  3> edit params eora

输入i进入编辑模式,在文件中增加如下黑色背景参数:

extract eora

dynamicresolution

setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

userid ogg,password ogg

exttrail /u01/app/oracle/ogg/dirdat/et

ddl include all

ddloptions addtrandata, report

table scott.*; 

按ESC键退出编辑模式,输入:wq进行保存。

启动mgr,eora进程

GGSCI  4> start mgr 

GGSCI  5> start extract eora

查看eora进程启动情况

GGSCI  6> info extract eora
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第9张图片
目标端操作-修改replicat进程的params文件

停止mgr进程

GGSCI 1>stop mgr

 停止repl进程

GGSCI  1> stop replicat repl 

 编辑repl配置文件

GGSCI  1> edit params repl 

输入i进入编辑模式,在文件中增加如下黑色背景参数:

replicat repl

userid ogg, password ogg

assumetargetdefs

reperror default, discard

discardfile /u01/app/oracle/ogg/dirrpt/repl.dsc, append, megabytes 50

dynamicresolution

ddloptions report

ddlerror default ignore retryop maxretries 3 retrydelay 5

ddlerror default discard

ddlerror default ignore retryop

map scott., target scott.;

按ESC键退出编辑模式,输入:wq进行保存。

启动repl进程 

GGSCI  4>start mgr

启动mgr进程后,系统会自动启动repl进程

GGSCI  5> info all
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
DDL测试

本节验证源端t1表增加字段后,目标端自动改变。

添加字段前:

源端查看:

#sqlplus scott/123456

SQL> desc t1;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
目标端查看

#sqlplusscott/123456

SQL> desc t1;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
源端添加字段test

SQL>alter table t1 add(test number(10));

SQL>desc t1;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第10张图片
目标端验证

SQL> desc t1;
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程_第11张图片
到此配置完成。
如果对此有兴趣或者有问题需要问,请添加:15149813470,免费解答。