本例子也是参考其他前辈的文档整理而成。例子中包含了DDL的同步。
平台与环境
源端:
操作系统: Window 7 64bit. 需要设置环境变量 ORACLE_HOME, ORACLE_SID
数据库: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
GoldenGate:
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Windows x64 (optimized), Oracle 11g on Apr 23 2012 04:55:02
目标端:
操作系统: Window 7 32bit. 需要设置环境变量 ORACLE_HOME, ORACLE_SID
数据库: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 32bit Production
GoldenGate:
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Windows, Oracle 11g on Apr 23 2012 04:55:02
必须确保源端数据库运行于归档日志模式:
打开归档日志模式:
SQL> archive log list
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open
打开force logging:
SQL> select force_logging from v$database;
FOR
---
NO
SQL> alter database force logging;
Database altered.
SQL> select force_logging from v$database;
FOR
---
YES
打开supplemental log
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO
SQL> alter database add supplemental log data;
Database altered.
切换日志使更改生效:
SQL> alter system switch logfile;
System altered.
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
YES
11gR2版本Oracle数据库已经不需要关闭回收站
1. 下载最新版本的GoldenGate压缩包。源端跟目标端都需要安装。解压到C:\ggs
启动命令行,切换到c:\ggs目录下,运行ggsci, 输入create subdirs.这样就完成了安装。
Windows 7, Windows 2008平台需要将GoldenGate的Manager进程安装为服务,否则,可能出现没有权限读取redo log或归档日志的情况(windows 7的oracle目录文件权限问题).
在命令行环境下,切换到c:\ggs, 执行install addservice. 在管理工具的windows服务列表中会新增一个名为GGSMGR的服务
2. 创建源端的GoldenGate数据库用户
SQL> create user ggs identified by ggs default tablespace users temporary tablespace temp;
SQL> grant connect ,resource,unlimited tablespace to ggs;
SQL> grant execute on utl_file to ggs;
SQL> grant select any dictionary,select any table to ggs;
SQL> grant alter any table to ggs;
SQL> grant flashback any table to ggs;
SQL> grant execute on dbms_flashback to ggs;
如果需要支持DDL同步,在ggs用户创建完成后,执行以下步骤(所有脚本都位于c:\ggs目录下,以DBA账户执行):
SQL> grant execute on utl_file to ggate;
-
marker_setup.sql
-
ddl_setup.sql
-
role_setup.sql
-
Grant the role to all GoldenGate Extract users
脚本:grant GGS_GGSUSER_ROLE to ggs
-
ddl_enable.sql
脚本最好都在SQL*Plus下执行,有的脚本执行过程中会要求输入DDL schema的名称,本例即ggs
3. 创建目标端GoldenGate数据库用户
SQL> create user ggs identified by ggs default tablespace users temporary tablespace temp;
SQL> grant dba to ggs
4. 配置源端的GoldenGate Manager
命令行,切换到目录c:\ggs,启动ggsci, 建立mgr的参数文件。mgr启动时会读取此文件
edit params ./GLOBALS
以下是我的参数文件内容:
MGRSERVNAME GGMGR
checkpointtable ggs.checkpoint --checkpoint的表名
GGSCHEMA ggs --DDL复制用
参数文件mgr:
edit params mgr
port 7500
dynamicportlist 7501-7505
autorestart extract *,waitminutes 2,retries 5
保存完成后,可以启动mgr:
start mgr
5.配置目标端的GoldenGate Manager
与源端类似,不过GLOBALS的内容为:
MGRSERVNAME GGMGR
checkpointtable ggs.checkpoint --checkpoint的表名
配置参数文件mgr(mgr进程组所用参数文件):
edit params mgr
port 7500
dynamicportlist 7501-7505
autostart er *
autorestart extract *,waitminutes 2,retries 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts c:\ggs\dirdat\et*,usecheckpoints,minkeepdays 3
6. 配置源端的extract进程组
edit params eora
extract eora
dynamicresolution
userid ggs,password ggs
DDL INCLUDE ALL --支持DDL操作
exttrail c:\ggs\dirdat\et
table scott.*;
其中eora可以改为其他更有意义的名称
添加extract进程:
add extract eora,tranlog,begin now
创建本地trail文件,extract进程组负责写这部分文件,pump进程负责读它:
add exttrail c:\ggs\dirdat\et,extract eora
start extract eora
7. 配置源端data pump进程组
edit param pump_so
extract pump_so
dynamicresolution
userid ggs, password ggs
rmthost 192.168.0.17, mgrport 7500
rmttrail c:\ggs\dirdat\et
table scott.*;
192.168.0.17是目标端的IP,7500是端口号
add extract pump_so,exttrailsource c:\ggs\dirdat\et
add rmttrail c:\ggs\dirdat\et,extract pump_so
start extract pump_so
8. 配置目标端replicat进程组
edit param rep1
replicat rep1
userid ggs,password ggs
assumetargetdefs
reperror default,discard
discardfile ./dirrpt/repl.dsc,append,megabytes 50
dynamicresolution
MAP scott.*, target scott.*;
在目标端增加checkpoint table:
dblogin userid ggs,password ggs
add checkpointtable ggs.checkpoint
添加replicat进程组:
add replicat repl exttrail c:\ggs\dirdat\et,checkpointtable ggs.checkpoint
start rep1
在源端scott模式下进行测试
如果出现错误,可以在c:\ggs\ggserr.log下查看错误代码
参考:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-765955/
,如需转载,请注明出处,否则将追究法律责任。