文中涉及的安装包以及任何问题请加下方二维码免费获取提问
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
源端和目标端同时创建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进程
本节验证源端t1表增加字段后,目标端自动改变。
添加字段前:
源端查看:
#sqlplus scott/123456
#sqlplusscott/123456
SQL>alter table t1 add(test number(10));