×××公司
Oracle Goldengate安装手册
· 提交日期: 2013年1月
· 版本号: v1.0
本文件是由甲骨文软件系统有限公司(以下简称:Oracle公司)向×××免费提供,其内容专供江西用于评估Oracle公司为其提供产品及服务的能力,仅供参考。
本文件所包含的信息所有权属于Oracle公司。由于本文件包含Oracle公司保密资料,因此要求贵公司在收到本文件后三年内应为Oracle公司保密;除非根据法律要求,不得出于除本项目评估之外的任何目的,以任何形式向任何第三方提供本文件内容;并同意采取所有合理的步骤,保证其接触本文件的人员不对外披露或散布本文件内容。
本文件的内容将可能且应该根据×××的具体实施情况及阶段的变化而变化。 本文件对硬件规格、型号、性能的分析与估计并没有考虑操作系统、网络资源或任何其它在同一服务器上运转的应用软件对硬件的消耗。具体的硬件配备必须根据硬件厂商的推荐来决定。对本项目硬件最终选择的决定权应由客户掌握。本文件中对硬件规格的估计也不对客户形成任何具有约束性质的陈述或担保。
请注意:如果您不同意上述声明,请不要阅读本文件,并立即将其返还给Oracle公司;否则,Oracle公司将视为您接受并同意遵守上述声明。
目录
2.4 关闭数据库的recyclebin (仅实施DDL时进行配置)
2.11 目标配置replicat进程并追加增量数据(在目标库完成重构后)
1 环境信息
以下为复制相关的环境信息说明(根据用户实际环境填写):
|
源端 |
目标端 |
操作系统版本 |
AIX5.3 |
AIX6.1 |
数据库版本 |
Oracle 10.2.0.5 |
11.2.0.3 |
是否RAC |
RAC |
RAC |
IP地址 |
|
|
Oracle SID |
|
|
是否ASM |
yes |
yes |
GG版本 |
11.1.1.1.2 |
11.1.1.1.2 |
GG安装所在用户 |
Oracle |
Oracle |
GG安装所在主机 |
RAC任意一个节点 |
RAC任意一个节点 |
GG安装路径 |
/gg/ogg |
/gg/ogg |
Goldengate数据库用户和表空间 |
GOLDENGATE |
GOLDENGATE |
复制的用户范围 |
XPADB用户下101张需要复制 复制到目标的XPADRPT用户同名对象中。 |
|
特别说明 |
部分表不需delete操作同步: 'FINANCIAL_SALEBANK', 'RICH_TRADELOG', 'RICH_CUSTPAYAMOUNTHIS','RICH_CUSTPRODUCTBALHIS', 'RICH_CUSTPROFIT', 'RICH_CUSTPROFITLOGHIS' ,'RICH_CASHPOOL','RICH_AUTOTRADEHIS','BASE_CHANGELOG' |
2 Goldengate安装说明
2.1 总体说明
Goldengate软件目录的属主为oracle:dba,权限为775;
Goldengate目录一般是建立在共享存储上,这样实际上goldengate的软件和相应的文件如参数文件,队列文件等都是在共享存储上的。这样做的好处是,例如在RAC环境下,如果一台服务区宕机,则可以将$GG_HOME mount到另外一个正常的rac节点上,启动goldengate各个进程就可以了,不需要做任何其他的动作;
本次测试过程是部署在gpfs文件系统上。
2.2 GG软件的安装(源和目标系统均需要安装)
1) 使用Oracle用户(如非此用户,请自行取代,下同)通过ftp上传GGS软件到安装目录下并解压缩:
tar zxvf *.gz
或者分两步解压:
gunzip *.gz 或 gzip –d *.gz
tar xvf *.gz
2) 在/goldengate目录下运行GGS命令行控制界面:
./ggsci
3) 在GGS命令行界面下创建子目录:
GGSCI> create subdirs
2.3 开启数据库附加日志
1)检查附加日志情况
使用以下sql语句检查数据库附加日志的打开状况:
Select
SUPPLEMENTAL_LOG_DATA_MIN
,SUPPLEMENTAL_LOG_DATA_PK
,SUPPLEMENTAL_LOG_DATA_UI
,SUPPLEMENTAL_LOG_DATA_FK
,SUPPLEMENTAL_LOG_DATA_ALL
, FORCE_LOGGING from v$database;
2)打开数据库附加日志
打开附加日志并切换日志(保证Online redo log和Archive log一致)
alter database add supplemental log data ;
2.4 关闭数据库的recyclebin (仅实施DDL时进行配置)
查询当前recyclebin的参数值:
SQL> show parameter recyclebin
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string OFF
SQL>
如不是off,需要关闭recyclebin:
SQL>alter system set recyclebin=off scope=both;
如果需要回退,打开recyclebin的话,可以使用以下语句:
SQL>alter system set recyclebin=on scope=both;
2.5 添加环境变量
在oracle用户下增加环境变量:
源端:
export GG_HOME=/gg/ogg
export PATH=$PATH:$GG_HOME
export LIBPATH=$GG_HOME:$ORACLE_HOME/lib
目标端:
export GG_HOME=/gg/ogg
export PATH=$PATH:$GG_HOME
export LIBPATH=$GG_HOME:$ORACLE_HOME/lib
2.6 编辑GLOBALS参数文件
这里直接建立在goldengate用户下:
Ggsci>EDIT PARAMS ./GLOBALS --在该文件中添加以下内容
GGSCHEMA goldengate --指定的进行DDL复制的数据库用户
2.7 建立OGG的DDL对象
sqlplus "/ as sysdba"
SQL> @marker_setup.sql
Enter GoldenGate schema name:goldengate
SQL> @ddl_setup.sql
Enter GoldenGate schema name:goldengate
SQL> @role_setup.sql
Grant this role to each user assigned to the Extract, Replicat, GGSCI, and Manager processes, by using the following SQL command:
GRANT GGS_GGSUSER_ROLE TO <loggedUser>goldengate
where <loggedUser> is the user assigned to the GoldenGate processes.
注意这里的提示:需要手工将这个GGS_GGSUSER_ROLE指定给extract所使用的数据库用户(即参数文件里面通过userid指定的用户),可以到sqlplus下执行类似的sql:
GRANT GGS_GGSUSER_ROLE TO goldengate;
注:这里的goldengate是extract使用的用户。如果你有多个extract,使用不同的数据库用户,则需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。
运行以下脚本,使触发器生效
SQL> @ ddl_enable.sql
本步骤为可选步骤,一般情况下建议运行该步骤。
为了提供OGG的DDL复制的性能,可以将ddl_pin脚本加入到数据库启动的脚本后面,该脚本需要带一个OGG的DDL用户(即安装DDL对象的用户,本例中是goldengate)的参数:
SQL> @ddl_pin <DDL_user>
注:如果因为业务问题,开启DDL以后,对性能的影响比较大的话,需要临时禁用DDL触发器的话,可以运行以下语句:
SQL> @ ddl_disable.sql 因为目前要求关闭DDL复制,所以执行ddl_disable
2.8 建立OGG进程和队列
(1) MGR参数和进程(源和目标均需要配置)
cd $GG_HOME
./ggsci
ggsci>edit param mgr --源端
PORT 7809
DYNAMICPORTLIST 7840-7914
--AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3, RESETMINUTES 60
PURGEOLDEXTRACTS ./dirdat/*, usecheckpoints, minkeepdays 1
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
--PURGEDDLHISTORY MINKEEPDAYS 1, MAXKEEPDAYS 1 --如果打开ddl,去掉注释
--PURGEMARKERHISTORY MINKEEPDAYS 1, MAXKEEPDAYS 1--如果打开ddl,去掉注释
ggsci>edit param mgr --目标端
PORT 7809
DYNAMICPORTLIST 7840-7914
--AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3, RESETMINUTES 60
PURGEOLDEXTRACTS ./dirdat/*, usecheckpoints, minkeepdays 1
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
--PURGEDDLHISTORY MINKEEPDAYS 1, MAXKEEPDAYS 1
--PURGEMARKERHISTORY MINKEEPDAYS 1, MAXKEEPDAYS 1
配置完成后,源和目标均启动:
ggsci> start mgr
(2) 源端配置extract和pump进程(根据用户实际环境填写)
cd $GG_HOME
./ggsci
ggsci>edit param ggsext
具体ggsext内容如下:
EXTRACT ggsext
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
USERID goldengate, PASSWORD goldengate
DISCARDFILE ./dirrpt/ggsext.dsc, APPEND, MEGABYTES 100
--DDL INCLUDE MAPPED
--DDLOPTIONS ADDTRANDATA NOCROSSRENAME REPORT
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS 2h,CHECKINTERVAL 3m
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
--TRANLOGOPTIONS RAWDEVICEOFFSET 0
--TRANLOGOPTIONS EXCLUDEUSER goldengate
EXTTRAIL ./dirdat/tt
--TRANLOGOPTIONS ALTARCHIVELOGDEST PRIMARY INSTANCE oraXPAD1 /gg/sarch1, ALTARCHIVELOGDEST INSTANCE oraXPAD2 /gg/sarch2
WILDCARDRESOLVE DYNAMIC
dynamicresolution
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000
--GETTRUNCATES
TABLE XPADB.BASE_ACTIONPOWER;
TABLE XPADB.BASE_BANK;
TABLE XPADB.BASE_BANKMERGE;
TABLE XPADB.BASE_BANKTREE;
TABLE XPADB.BASE_BRCHBANKCTRL;
TABLE XPADB.BASE_CERTIFICATE;
TABLE XPADB.BASE_CESS;
TABLE XPADB.BASE_COREBANK;
TABLE XPADB.BASE_CURRENCY;
TABLE XPADB.BASE_DEPARTMENT;
TABLE XPADB.BASE_HOLIDAYCALENDAR;
TABLE XPADB.BASE_HOLIDAYDATE;
TABLE XPADB.BASE_INTEREST;
TABLE XPADB.BASE_INTERESTHIS;
TABLE XPADB.BASE_MAINAREA;
TABLE XPADB.BASE_MENU;
TABLE XPADB.BASE_PRODTYPECODE;
TABLE XPADB.BASE_RATE;
TABLE XPADB.BASE_ROLE;
TABLE XPADB.BASE_SYSLOG;
TABLE XPADB.BASE_SYSPARAM;
TABLE XPADB.BASE_TERMINALTELLER;
TABLE XPADB.BASE_USER;
TABLE XPADB.FINANCIAL_BANKPROFITLOG;
TABLE XPADB.FINANCIAL_DIVIDENDPLAN;
TABLE XPADB.FINANCIAL_FUNDPRICE;
TABLE XPADB.FINANCIAL_INTERESTRESET;
TABLE XPADB.FINANCIAL_ISSUE;
TABLE XPADB.FINANCIAL_ISSUEAUDIT;
TABLE XPADB.FINANCIAL_ISSUEAUDITHIS;
TABLE XPADB.FINANCIAL_ISSUEBRAND;
TABLE XPADB.FINANCIAL_ISSUECFL;
TABLE XPADB.FINANCIAL_ISSUECONTROL;
TABLE XPADB.FINANCIAL_ISSUEDIFFRATE;
TABLE XPADB.FINANCIAL_ISSUEDISCOUNT;
TABLE XPADB.FINANCIAL_ISSUEEXPD;
TABLE XPADB.FINANCIAL_ISSUEEXT;
TABLE XPADB.FINANCIAL_ISSUEFEE;
TABLE XPADB.FINANCIAL_ISSUEFORCUSTRISKLVL;
TABLE XPADB.FINANCIAL_ISSUEFUNDSTRANSFER;
TABLE XPADB.FINANCIAL_ISSUEOBSERV;
TABLE XPADB.FINANCIAL_ISSUEPAY;
TABLE XPADB.FINANCIAL_ISSUEPROFIT;
TABLE XPADB.FINANCIAL_ISSUEQTYSPLIT;
TABLE XPADB.FINANCIAL_ISSUESELLCTRL;
TABLE XPADB.FINANCIAL_ISSUESERIAL;
TABLE XPADB.FINANCIAL_ISSUEVARIABLE;
TABLE XPADB.FINANCIAL_ISSUEWORKTIME;
TABLE XPADB.FINANCIAL_LIQUIDATEACT;
TABLE XPADB.FINANCIAL_MESSAGEINFO;
TABLE XPADB.FINANCIAL_PERIOD;
TABLE XPADB.FINANCIAL_PRICE;
TABLE XPADB.FINANCIAL_PRICEHIS;
TABLE XPADB.FINANCIAL_REFERINDEX;
TABLE XPADB.FINANCIAL_POSITION;
TABLE XPADB.RICH_AUTOTRADE;
TABLE XPADB.RICH_CUSTACCOUNT;
TABLE XPADB.RICH_CUSTAUTOTRADE;
TABLE XPADB.RICH_CUSTAUTOTRADEHIS;
TABLE XPADB.RICH_CUSTCAPITAL;
TABLE XPADB.RICH_CUSTFAVORABLE;
TABLE XPADB.RICH_CUSTFREEZEUNIT;
TABLE XPADB.RICH_CUSTFUNDPROFIT;
TABLE XPADB.RICH_CUSTIMPAWN;
TABLE XPADB.RICH_CUSTKEEPBAL;
TABLE XPADB.RICH_CUSTOMERINFO;
TABLE XPADB.RICH_CUSTOMERINFOHIS;
TABLE XPADB.RICH_CUSTORDERTRADE;
TABLE XPADB.RICH_CUSTPAYAMOUNTLOG;
TABLE XPADB.RICH_CUSTPRODUCTBAL;
TABLE XPADB.RICH_CUSTPRODUCTBALQTY;
TABLE XPADB.RICH_CUSTPROFITDCCY;
TABLE XPADB.RICH_CUSTPROFITLOG;
TABLE XPADB.RICH_CUSTPROFITNORMAL;
TABLE XPADB.RICH_CUSTPROFITPAYMODE;
TABLE XPADB.RICH_CUSTPROFITPAYMODEHIS;
TABLE XPADB.RICH_CUSTRISKLVL;
TABLE XPADB.RICH_FUNDTRADELOG;
TABLE XPADB.RICH_NOPAYAMOUNT;
TABLE XPADB.RICH_NORMALPAY;
TABLE XPADB.RICH_ORDERTRADE;
TABLE XPADB.RICH_SMSCMDSIGN;
TABLE XPADB.RICH_SMSCMDTRADE;
TABLE XPADB.RICH_STARTBAL;
TABLE XPADB.RICH_STARTBALHIS;
--TABLE XPADB.FINANCIAL_POSITION_TEMP;
TABLE XPADB.financial_positionhis;
TABLE XPADB.financial_positiontra;
TABLE XPADB.financial_positioncst;
TABLE XPADB.financial_positionacc;
TABLE XPADB.corp_stattemptab;
TABLE XPADB.corp_stattemptabacc;
TABLE XPADB.corp_stattemptabcst;
--goldengate test table
TABLE t.t1;
IGNOREDELETES
TABLE XPADB.FINANCIAL_SALEBANK;
TABLE XPADB.RICH_TRADELOG;
TABLE XPADB.RICH_CUSTPAYAMOUNTHIS;
TABLE XPADB.RICH_CUSTPRODUCTBALHIS;
TABLE XPADB.RICH_CUSTPROFIT;
TABLE XPADB.RICH_CUSTPROFITLOGHIS;
TABLE XPADB.RICH_CASHPOOL;
TABLE XPADB.RICH_AUTOTRADEHIS;
TABLE XPADB.BASE_CHANGELOG;
--goldengate test table
TABLE t.t2;
cd $GG_HOME
./ggsci
ggsci>edit param ggspump
具体ggspump内容如下:
EXTRACT ggspump
PASSTHRU
RMTHOST 22.188.132.83, MGRPORT 7809
RMTTRAIL ./dirdat/tt
DYNAMICRESOLUTION
TABLE XPADB.*;
--OGG test table
TABLE t.*;
增加ext和pump进程以及队列:
cd $GG_HOME
./ggsci
GGSCI> ADD EXTRACT ggsext, TRANLOG, BEGIN NOW
GGSCI> ADD EXTTRAIL ./dirdat/tt, EXTRACT ggsext, MEGABYTES 100
GGSCI> ADD EXTRACT ggspump, EXTTRAILSOURCE ./dirdat/tt
GGSCI> ADD RMTTRAIL ./dirdat/tt, EXTRACT ggspump, MEGABYTES 100
(3) 目标端配置replicat参数(等待后续初始化完成再配置进程和队列,目标只配置replicat的参数文件,下列分成11个进程,根据用户实际环境填写)
cd $GG_HOME
./ggsci
ggsci>edit param ggsrep
具体ggsrep内容如下:
REPLICAT ggsrep
--SETENV (ORACLE_SID = ggstd)
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
USERID goldengate, PASSWORD goldengate
--DDL include MAPPED
--DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
--DDLOPTIONS report
REPERROR DEFAULT, ABEND
ASSUMETARGETDEFS
DBOPTIONS DEFERREFCONST
DBOPTIONS SUPPRESSTRIGGERS
--BATCHSQL
--GROUPTRANSOPS 2000
DISCARDFILE ./dirrpt/ggsrep.dsc, APPEND, MEGABYTES 100
WILDCARDRESOLVE DYNAMIC
Dynamicresolution
ALLOWNOOPUPDATES
--GETTRUNCATES
MAP XPADB.*, TARGET XPADRPT.*;
--OGG test table
MAP t.*, TARGET tt.t*;
2.9 数据初始化
本次使用数据expdp(基于原端某scn号的一致性导出)和目标端impdp的方式进行目标数据库的重构,这其中的关键注意点说明如下:
在取原端数据库scn号之前,确保源端ogg的extract已经启动,且在取scn时确认源端没有事物开始的时间是跨越extract启动的时间;
获取当前系统事物开始的时间:
select start_time from gv$transaction;
(1) 原端取scn号语句:
Select current_scn from v$database;
获取的scn号为:1377184100
(2) 原端开始expdp
expdp goldengate/goldengate DIRECTORY=EXPDP_DIR TABLE=GLOBUS.ACFBNK_ACCOUNT_BAK DUMPFILE= GLOBUS.`date '+%Y%m%d_%H%M'`.dmp.%U LOGFILE=GLOBUS.`date '+%Y%m%d_%H%M'`.log parallel=4 FLASHBACK_SCN=1377184100
(3) 目标impdp:
impdp goldengate/goldengate DIRECTORY=EXPDP_DIR DUMPFILE=GLOBUS.20130620_1525.dmp.%U LOGFILE=impdp.GLOBUS.20130620_1525.log parallel=4 REMAP_SCHEMA=xpadb:xpadrpt REMAP_TABLESPACE=xpaddat:xpaddata
2.10 目标库disable相关对象
目标数据库重构并open后,需要diable trigger/job/cascade reference;
对应的disable脚本如下:
2.11 目标配置replicat进程并追加增量数据(在目标库完成重构后)
cd $GG_HOME
./ggsci
GGSCI> add replicat ggsrep, exttrail ./dirdat/tt, nodbcheckpoint
下面928672344就是恢复目标库所到的scn号:
GGSCI> start replicat ggsrep , aftercsn 928672344
本文地址:https://www.chensj.net/?post=5
未标注转载均为本站远程,转载请注明文章出处: