Oracle GoldenGate 是一种基于日志的结构化数据复制备份软件,它通过解析源数据库联机日志或归档日志以获取数据的增量变化,然后再将这些变化应用到目标数据库,从而实现源数据库与目标数据库的同步。Oracle GoldenGate 可以在异构的 IT 基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而广泛应用在应急系统、 联机报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级及移植以 及双业务中心等多个关键应用场合。
实验环境准备
GoldenGate 环境变量设置
[oracle@udbs01 ~]$ more .bash_profile
export PATH
export ORACLE_SID=orcla
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export TERM=xterm
export ORA_NLS33=/Oracle/db/product/11.2.0/db_1/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/sbin:$ORACLE_HOME/OPatch:/bin:/usr/ccs/bin:$PATH
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/gg/11.2:$LD_LIBRARY_PATH
export GG_HOME=/u01/gg/11.2
export PATH=/u01/gg/11.2:$PATH
umask 022
create subdirs
GoldenGate 的安装
$ ./ggsci
create sudbirs
源端数据库的配置
创建 GoldenGate 复制用户
使用 sql*plus 以 sysdba 连接到 orcla 实例,依次执行以下命令:
SQL> create user gg_user identified by gg_user default tablespace users temporary tablespace temp;
SQL> grant connect, resource, dba, unlimited tablespace to gg_user;
SQL> grant execute on utl_file to gg_user;
SQL> exec dbms_GoldenGate_auth.grant_admin_privilege('gg_user');
SQL> commit;
打开数据库归档、辅助日志功能
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database add supplemental log data;
SQL> alter system set recyclebin=off scope=spfile;
SQL> alter database force logging;
SQL> shutdown immediate;
SQL> startup;
查看并确认设置结果:
SQL> show parameter recyclebin;
SQL> select log_mode, supplemental_log_data_min, force_logg
配置对复制的 DDL 支持
进入$GG_HOME 目录,以 sysdba 身份连接 oracle 实例, 依次执行以下各脚本。在各脚本执
行过程提示需要输入用户名时,请全部输入 gg_user.
SQL> @marker_setup.sql
SQL> @ddl_setup.sql
SQL> @role_setup.sql
SQL> grant GGS_GGSUSER_ROLE TO gg_user;
SQL> @ddl_enable.sql
数据库服务 TNS 的配置
环境变量切换到 orcla, 在 tnsnames.ora 文件中增加+ASM 和 orclb 服务名称,过程如下图
所示:

注意:tns 配置完成后,应确保对新增加的服务名 tnsping 成功: