2.1
安装之前,你需要安装好 Oracle 数据库,并且需要安装 Mircrosoft Visual C++ 2005 SP1 Redistributable
2005 SP1 Redistributable,这是 Windows 环境下 Visual C++库的运行组件。GoldenGate
运行的时候会用到它的一些库,所以不安装的话,可能导致“系统无法执行指定的程序”
的错误
2.2.1.1 设置环境变量
2.2.1.2 安装 GoldenGate 文件
C:\gg>GGSCI
GGSCI (Server-596868d6-ee2c-4d3f-8f08-93a592142a93) 1> create subdirs
Creating subdirectories under current directory D:\ogg
Parameter files D:\ogg\dirprm: already exists
Report files D:\ogg\dirrpt: created
Checkpoint files D:\ogg\dirchk: created
Process status files D:\ogg\dirpcs: created
SQL script files D:\ogg\dirsql: created
Database definitions files D:\ogg\dirdef: created
Extract data files D:\ogg\dirdat: created
Temporary files D:\ogg\dirtmp: created
Stdout files D:\ogg\dirout: created
然后使用 exit 退出 GGSCI 命令行。这样 GoldenGate 软件安装就完成了
2.2.1.3 把 manager 进程添加到 Windows 服务
cd d:/ogg 令进入 GGSCI 交互界面
EDIT PARAMS ./GLOBALS
弹出的编辑器输入:MGRSERVNAME GGMGR
保存退出。
D:\ogg>install addservice
Service ‘GGMGR’ created.
Install program terminated normally.
2.2.1.4 Golengate 实用程序
2.2.2 配置 Oracle 数据库
2.2.2.1 调整归档模式
[oracle@sd ~]$ sqlplus sys/密码 as sysdba
sql> select name,log_mode from v$database;
2 若为“noarchivelog”执行此步骤后执行步骤3,若为“archivelog”直接执行步骤3
sql> shutdown immediate;
sql> exit
[tlsidb1]$ sqlplus /密码 as sysdba
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
–打开归档
3更改日志操作
sql> alter system set log_archive_dest_1= ‘location=D:\app\Administrator\archivelog’ scope=spfile;
alter system set log_archive_dest_1=‘location=D:\app\Administrator\archivelog’ scope=both;
–设置数据库日志存放位置,并指定作用范围为spfile
sql> alter database add supplemental log data;
–打开补充日志
sql> alter system archive log current;
–切换日志,以使附加日志生效
sql> alter database force logging;
–打开force logging
–确认数据库ARCHIVELOG、SUPPLEMENTAL_LOG、FORCE_LOGGING是否打开:
select db.LOG_MODE, db.SUPPLEMENTAL_LOG_DATA_MIN, db.FORCE_LOGGING from v$database db;
–如已经打开成功,则应该有如下输出:
SQL> select db.LOG_MODE, db.SUPPLEMENTAL_LOG_DATA_MIN, db.FORCE_LOGGING from v$database db;
LOG_MODE SUPPLEME FOR
ARCHIVELOG YES YES
2.2.2.2 打开数据库级别的补充日志(supplemental log)
所以 Oracle 建议所有需要复制的表都存在主键或者唯一键。
可以按照下列方式打开数据库级别的 supplemental log。
SELECT supplemental_log_data_min FROM v$database;
alter database add supplemental log data;
2.2.2.3 创建 GoldenGate 管理用户
在源端和目标端创建 GoldenGate 管理用户,并授予下列权限
create user ggs identified by ggs default tablespace users temporary tablespace temp;
grant connect, resource, unlimited tablespace to ggs;
grant execute on utl_file to ggs;
在源端还需要授予 ggs 用户以下权限:
grant connect,resource to ggs;
grant select any dictionary,select any table to ggs;
grant alter any table to ggs;
grant flashback any table to ggs;
grant execute on DBMS_FLAHBACK TO ggs;
第 1 行出现错误:
ORA-04042: 过程, 函数, 程序包或程序包体不存在
目标端需要授予 ggs 用户以下权限:
grant insert any table to ggs;
grant delete any table to ggs;
grant update any table to ggs;
2.2.2.4 添加表级的 transdata
这里的表级的 trandata 就是指表级的 supplemental log。
进入OGG交互界面,
GGSCI (Server-596868d6-ee2c-4d3f-8f08-93a592142a93) 1> dblogin userid ggs,password ggs
Successfully logged into database.
注意所添加的表都有主键。。。。
源端:
GGSCI(source 4)add trandata UA7.*
Logging of supplemental redo data enabled for table UA7.T1
GGSCI(source 4)add trandata ub7.*
目标端:
GGSCI(source 4)add trandata ua8.*
GGSCI(source 4)add trandata ub8.*
2.2.2.5 添加 checkpoint 表
在目标端配置复制进程 Replicat 之前,我们需要在目标端的数据库中创建一个
checkpoint 表。这个 checkpoint 表是基于 GoldenGate checkpoint 文件的,它记录了所
有 GoldenGate 可恢复的 checkpoint 以及 sequence。
EDIT PARAMS ./GLOBALS
添加:checkpointtable ggs.checkpoint
GGSCI (Server-8798768f-ff0d-4440-bc54-258c40b6863e) 7> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (Server-8798768f-ff0d-4440-bc54-258c40b6863e) 8> add checkpointtable ggs.checkpoint
Successfully created checkpoint table ggs.checkpoint.
2.2.3 GLOBALS 参数文件
在这之前我们已经配过了两组 GLOBALS 参数了,一个是添加 Windows 服务的,另外一
个是用来添加 checkpoint 表,所以应该不再陌生了。
GLOBALS 文件中存的参数对全局起作用(注意这里 GLOBAL 总是大写),参数可以有
mgrservname、checkpointtable、ggschema、ddltable、markertable、
outputfileumask。其中后几个参数是与 DDL 相关的参数,后面在 DDL 复制的场景会有更详
细的介绍,也可以参考官方手册 Oracle GoldenGate Reference Guide
2.3 配置 GoldenGate 进程组
2.3.1 配置源端 MGR 管理进程组
2.3.1.1 设置编辑器
GGSCI(source) 1>set editor emacs
2.3.1.2 配置参数文件
GGSCI (WIN-S42L1CPKKSS) 5> edit params mgr
port 7810
–DYNAMICPORTLIST 7811-7920
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 7
PURGEOLDEXTRACTS D:\ogg\dirdat*,usecheckpoints,minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
2.3.2 配置 Extract 抽取进程组
2.3.2.1 创建和编辑 Extract 进程配置文件
GGSCI (WIN-S42L1CPKKSS) 7> edit params exta
extract exta
userid ggs,password ggs
setenv (NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
setenv (NLS_CHARACTERSET = ZHS16GBK)
dynamicresolution
setenv(ORACLE_SID=orcl)
GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES,RATE
DBOPTIONS ALLOWUNUSEDCOLUMN
DISCARDFILE D:\ogg\dirrpt\la.dsc, append, megabytes 1000, purge
TRANLOGOPTIONS altarchivelogdest D:\app\Administrator\archivelog
exttrail D:\ogg\dirdat\la
TRANLOGOPTIONS CONVERTUCS2CLOBS
FETCHOPTIONS NOUSESNAPSHOT
DYNAMICRESOLUTION
HANDLECOLLISIONS
TABLE UA7.AC02;
TABLE UA7.T1;
在 GGSCI 中添加 Extract 进程:
在源端用 add extract 命令创建一个 Extract 进程:
GGSCI 6> add extract exta, tranlog, begin now, params D:\ogg\dirprm\exta.prm, report D:\ogg\dirrpt\exta.rpt
GGSCI 7> add exttrail D:\ogg\dirdat\la, extract exta
GGSCI 8> start exta
2.3.2.2 使用 GGSCI 命令管理 Extract
2.3.3 配置 Pump 投递进程组
2.3.3.1 创建和编辑 Pump 进程配置文件
GGSCI (WIN-S42L1CPKKSS) 7> edit params dpea
extract dpea
setenv (NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
setenv (NLS_CHARACTERSET = ZHS16GBK)
passthru
rmthost 172.28.16.208,mgrport 7810,compress
rmttrail D:\ogg\dirdat\la
table ua7.;
table ub7.;
2.3.3.2在 GGSCI 中添加 Pump 进程
add extract dpea,exttrailsource rmttrail D:\ogg\dirdat\la
add rmttrail D:\ogg\dirdat\la extract dpea
GGSCI 4> add extract dpea, exttrailsource D:\ogg\dirdat\la , begin now, params D:\ogg\dirprm\dpea.prm, report D:\ogg\dirrpt\dpea.rpt
ggsci1>add rmttrail D:\ogg\dirdat\la, extract dpea
–此处特别注意%goldengate_sdshare%目录为目标端目录
GGSCI (localhost.localdomain) 4> start extract dpea
2.3.3.3使用 GGSCI 命令管理 Pump
start dpea
2.3.4 创建和配置目标端 MGR 管理进程组
GGSCI (win-target) 6> view params mgr
port 7810
–DYNAMICPORTLIST 7811-7920
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 7
PURGEOLDEXTRACTS D:\ogg\dirdat*,usecheckpoints,minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
2.3.5 配置 Replicat 复制进程组
2.3.5.1 创建和编辑 Replicat 进程配置文件
REPLICAT REPA
setenv (NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
USERID ggs,PASSWORD ggs
REPORT AT 01:59
REPORTCOUNT EVERY 30 MINUTES, RATE
REPERROR DEFAULT, ABEND
numfiles 50000
HANDLECOLLISIONS
assumetargetdefs
DISCARDFILE ./dirrpt/repa.dsc, APPEND, MEGABYTES 100
GETTRUNCATES
ALLOWNOOPUPDATES
MAP ua7., TARGET ua8.;
2.3.5.2 在 GGSCI 中添加 Replicat 并管理
GGSCI (localhost.localdomain) 4> add replicat REPA, exttrail D:\ogg\dirdat\la, nodbcheckpoint, params D:\ogg\dirprm\repa.prm,report D:\ogg\dirrpt\repa.rpt,add checkpointtable ggs.checkpoint
第一次搞错了 ,第二次delete , add