在bash_profile中添加OGG_HOME
export OGG_HOME=$ORACLE_BASE/ogg
export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib
alias ggsci='rlwrap /u01/app/oracle/ogg/ggsci'
rlwrap软件包的安装
wget ftp://rpmfind.net/linux/epel/7/x86_64/Packages/r/rlwrap-0.42-1.el7.x86_64.rpm
yum localinstall rlwrap-0.42-1.el7.x86_64.rpm
解压缩ogg安装包
# su - oracle
解压缩ogg安装包
unzip 123010_fbo_ggs_Linux_x64_shiphome.zip
cd fbo_ggs_Linux_x64_shiphome/Disk1/
./runInstaller
开启数据库的归档日志:
alter system set log_archive_dest_1='location=/u01/oracle/archivelog';
alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;
shutdown immediate
startup mount
alter database archivelog;
alter databaes open;
开启数据库级别日志补充
alter database force logging;
alter database add supplemental log data;
alter system archive log current;
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set container=oa;
Session altered.
SQL> create tablespace test_data datafile '/u01/oracle/oradata/ORCL/datafile/oa/
test01.dbf' size 100M autoextend on;
Tablespace created.
SQL> alter user test default tablespace test_data;
User altered.
SQL> conn test/test@oa
Connected.
SQL> show con_name;
CON_NAME
------------------------------
OA
SQL> drop table t1;
Table dropped.
SQL> create table t1(id int primary key,name varchar2(20));
Table created.
SQL> conn / as sysdba
Connected.
SQL> alter session set container=oa;
Session altered.
SQL> alter user test quota unlimited on test_data;
User altered.
SQL> conn test/test@oa
Connected.
SQL> show con_name:
CON_NAME
------------------------------
OA
SQL> select * from tab;
TNAME
--------------------------------------------------------------------------------
TABTYPE CLUSTERID
-------------- ----------
T1
TABLE
SQL> insert into t1 values(1,'jack');
1 row created.
SQL> insert into t1 values(2,'mike');
1 row created.
SQL> commit;
Commit complete.
12c target库需要在pdb 中创建OGG管理用户及其表空间
conn / as sysdba
alter session set container=oa;
CREATE TABLESPACE goldengate DATAFILE '/u01/oracle/oradata/ORCL/datafile/oa/goldengate01.dbf' SIZE 100m AUTOEXTEND ON;
CREATE USER oggadmin IDENTIFIED BY oggadmin DEFAULT TABLESPACE goldengate;
GRANT dba TO oggadmin;
设置全局参数
GGSCI> EDIT PARAMS ./GLOBALS
GGSCHEMA oggadmin
Source系统设置
配置管理进程
GGSCI> EDIT PARAM MGR
PORT 7809
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *,RETRIES 3, WAITMINUTES 5, RESETMINUTES 10
开启表级别日志补充需要加上PDB,追加对象为用户pdbjk.new_jk下所有表
DBLOGIN USERID c##ggadmin,PASSWORD ggadmin
ADD SCHEMATRANDATA pdbjk.new_jk
ADD TRANDATA pdbjk.new_jk.*
创建初级集成提取组ex1,源端是双节点RAC
ADD EXTRACT ex1,integrated TRANLOG,BEGIN NOW
为初级提取组ex1指定本地trail文件(extract文件量比较大的话,需要足够的磁盘)
ADD EXTTRAIL /u01/app/oracle/ogg/dirdat/ex, EXTRACT ex1 MEGABYTES 5
注册extract ex1
REGISTER EXTRACT ex1 DATABASE CONTAINER (oa)
GGSCI> EDIT PARAMS ex1
EXTRACT ex1
SETENV(ORACLE_SID='sidjk1')
USERID c##ggadmin,PASSWORD ggadmin
EXTTRAIL /u01/app/oracle/ogg/dirdat/ex
--ddl include all
--ddloptions report
TABLE pdbjk.new_jk.*;
创建投递组dp1,设置本地trail文件
ADD EXTRACT dp1 EXTTRAILSOURCE /u01/app/oracle/ogg/dirdat/ex
为投递进组dp1设置target端trail文件地址
ADD RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, EXTRACT dp1
配置投递组dp1参数文件
GGSCI> EDIT PARAMS dp1
EXTRACT dp1
SETENV(ORACLE_SID='sidjk1')
USERID c##ggadmin,PASSWORD ggadmin
RMTHOST 10.180.100.9, MGRPORT 7809
RMTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt
TABLE pdbjk.new_jk.*;
Target系统
配置管理进程
GGSCI> EDIT PARAM MGR
PORT 7809
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, WAITMINUTES 2, RETRIES 5
创建检查点表
DBLOGIN USERID oggadmin@jktmp,PASSWORD oggadmin
ADD CHECKPOINTTABLE oggadmin.checkpointtable
在全局环境中添加检查点表
EDIT PARAMS ./GLOBALS
GGSCHEMA oggadmin
CHECKPOINTTABLE oggadmin.checkpointtable
创建复制组rt1,设置读取trail文件路径以及检查点表加上PDB
ADD REPLICAT rt1, EXTTRAIL /u01/app/oracle/ogg/dirdat/jk/rt, checkpointtable pdb1.oggadmin.checkpointtable
为复制组rt1配置参数文件初始化的时候加上HANDLECOLLISIONS,初始化之后去掉
GGSCL> EDIT PARAM rt1
REPLICAT rt1
SETENV (ORACLE_SID='xhtmp')
USERID oggadmin@jktmp, PASSWORD oggadmin
HANDLECOLLISIONS
ASSUMETARGETDEFS
ddloptions report
DISCARDFILE /u01/app/oracle/ogg/discards.dsc, append, megabytes 1024
TABLEEXCLUDE pdbjk.new_jk.SYS_EXPORT_SCHEMA*
MAP pdbjk.new_jk.*, TARGET jktmp.*;
测试环节
启动source管理进程
GGSCI (node1.localdomain) 1> START MGR
启动target管理进程
GGSCI (oggtarget) 1> START MGR
启动source提取进程
GGSCI (node1.localdomain) 2> START EX1
启动source投递进程
GGSCI (node1.localdomain) 3> START DP1
--初始化数据导出的时候指定flashback_scn
SELECT current_scn FROM v$database
#expdp new_jk/XH1Q2W3E4R@pdbjk directory=dump_dir dumpfile=new_jk20160526.dump logfile=new_jk20160526.log encryption_password=12qw3edc flashback_scn=7851588331 compression=all
expdp c##ggadmin/ggadmin@oa directory=DATA_PUMP_DIR dumpfile=oa_test.dump logfile=oa_test.log flashback_scn= 1792057 SCHEMAS=test
#impdp jktmp/jktmp@jktmp DIRECTORY=dump_dir include=table dumpfile=new_jk20160526.dump logfile=new_jk20160526.log remap_schema=new_jk:jktmp remap_tablespace=new_jk:jktmp,idx_newjk:jktmp,sit_jk:jktmp,JK_MIGR:jktmp encryption_password=12qw3edc TABLE_EXISTS_ACTION=truncate
impdp oggadmin/oggadmin@oa directory=DATA_PUMP_DIR dumpfile=oa_test.dump logfile=oa_test.log
启动target复制进程
GGSCI (oggtarget) 2> start replicat rt1,aftercsn 1792057
确认source进程状态
GGSCI (node1.localdomain) 4> INFO ALL
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DP1 00:00:00 00:00:08
EXTRACT RUNNING EX1 00:00:00 00:00:03
确认target进程状态
GGSCI (oggtarget) 3> INFO ALL
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING RT1 00:00:00 00:00:02
源端节点node1插入数据
SNOW@devdb1 >insert into t1 values(1,'SNOW');
SNOW@devdb1 >commit;
源端节点node2插入数据
SNOW@devdb2 >insert into t1 values(2,'LILY');
SNOW@devdb2 >commit;
复制端验证
SNOW@oggtarget >select * from t1;
ID NAME
---------- ------------------------------
1 SNOW
2 LILY