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
生效环境变量
#source /home/oracle/.bash_profile
目标服务器
?#vim /home/oracle/.bash_profile
?增加如下两行:
?export GGATE=$ORACLE_BASE/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
生效环境变量
?#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;
创建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
GGSCI 2> quit
目标服务器都要配置
#su - oracle
#cd /u01/app/oracle/ogg
#./ggsci
GGSCI 1> create subdirs
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;
?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;
能查到下面两条数据,即可
说明:到此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
SQL>alter system set recyclebin=off deferred;
改完需要把数据库重启一下才会生效
SQL>shutdown immediate
SQL>startup
SQL>show parameter recyclebin
3) 安装DDL对象
SQL> grant dba to ogg;
说明: 以下各执行如提示:Enter Oracle GoldenGate schema name,均指定用户:ogg
SQL>@marker_setup
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
目标端操作-修改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
DDL测试
本节验证源端t1表增加字段后,目标端自动改变。
添加字段前:
源端查看:
#sqlplus scott/123456
SQL> desc t1;
目标端查看
#sqlplusscott/123456
SQL> desc t1;
源端添加字段test
SQL>alter table t1 add(test number(10));
SQL>desc t1;
目标端验证
SQL> desc t1;
到此配置完成。
如果对此有兴趣或者有问题需要问,请添加:15149813470,免费解答。
Linux/Centos6.5 Orace 11g R2 ogg 单向同步配置过程
原文:https://blog.51cto.com/11233498/2405215