- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2013-9-18 22:26:23
|
查看: 8951 |
回复: 2
【转】Oracle Goldengate 11.2新特性 整合模式捕获之初尝试
1 概述
Oracle GoldenGate 在其新推出的版本11.2 中提供了两种模式抽取:
1 传统的挖掘日志模式;
2 新的整合捕获模式。该模式使用了Oracle XStream 接口进行数据捕捉。
本文是对于新的整合捕捉模式进行了测试。
2 测试步骤
2.1测试环境
详细测试环境如下:
条目 源/目标库 目标库
操作系统 Cent OS 5.5 Cent OS 5.5
数据库 Oracle 11.2.0.3 Oracle 11.2.0.3
数据库NLS_LANGUAGE SIMPLIFIED CHINESE AMERICAN
数据库NLS_TERRITORY CHINA AMERICA
数据库NLS_CHARACTERSET ZHS16GBK AL32UTF8
GoldenGate 版本 OGG 11.2.1.0.0 OGG 11.2.1.0.0
注意:
schema level trandata 必须要Oracle 11.2.0.2 以上;
整合模式只有在11.2.0.3 以上才能支持更为广泛的数据类型。
具体请参照相关文档。
2.2测试场景步骤
1) 数据库打开最小附加日志;
alter database add supplemental log data;
2) 为source schema 加入schema level 附加日志:
SQL> exec dbms_streams_auth.grant_admin_privilege('ogg');
GGSCI (dbsrv64.localdomain) 2> dblogin userid ogg
GGSCI (dbsrv64.localdomain) 3> ADD SCHEMATRANDATA source
2012-02-23 03:26:04 INFO OGG-01788 SCHEMATRANDATA has been
added on schema source.
3) 给抽取进程用户赋予admin 权限:
begin
DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => 'source',
privilege_type => 'capture',
grant_select_privileges => true,
do_grants => TRUE
);
end;
/
4) 在数据库中注册抽取进程,此时会自动配置XStream:
DBLOGIN USERID source, PASSWORD oracle
REGISTER EXTRACT extia DATABASE
5) 配置OGG 的extract 和replicat 进程
ADD EXTRACT extia, INTEGRATED TRANLOG, BEGIN NOW
Add exttrail ./dirdat/ia, ext extia
Add rep repia, exttrail ./dirdat/ia
GGSCI (dbsrv64.localdomain) 5> view param extia
EXTRACT extia
SETENV (ORACLE_SID = "oragbk")
--SETENV (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
SETENV (NLS_LANG = "SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
USERID source, PASSWORD oracle
ddl include all
--ddloptions addtrandata,report
ddloptions report
tranlogoptions dblogreader
EXTTRAIL ./dirdat/ia
dynamicresolution
tableexclude source.AQ*;
tableexclude source.OGG*;
tableexclude source.SYS*;
table source.*;
GGSCI (dbsrv64.localdomain) 6> view param repia
replicat repia
--checkparams
--SETENV (ORACLE_SID = "oragbk")
SETENV (ORACLE_SID = "orautf")
SETENV (NLS_LANG = "SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--SETENV (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")
userid target, password oracle
ddl include mapped
ddlerror 24344,ignore
ddlerror 955,ignore
--DDLOPTIONS REPORT
reperror default,discard
--reperror default, abend
discardfile ./dirrpt/repia.dsc,append
assumetargetdefs
map source.*, target target.*;
6) 确认进程启动后,在源端添加中文表,并增加和更新记录,成功。
注意:
使用整合模式会在extract 用户下建立一些AQ$/SYS/OGG$开头的表,建议使用一个专门用
户。本例子中直接抽取了source 自己的表,需要将这些系统表排除掉。 |
|