最近某客户的一套数据库系统从原先的单实例迁移到RAC中,由于原先的系统上配置了OGG数据同步(将部分业务表进行同步,提供给其他系统使用),待数据库迁移完成后,需要对OGG进行重新配置工作,顺便借此机会进行OGG的升级。由于目标端数据库没有变动,因此本次OGG实施配置主要针对生产库。
以下是旧环境和新环境的基本信息:
指标
旧环境
新环境
OS
HP-UX 11.31 IA64
HP-UX 11.31 IA64
Oracle
Oracle10.2.0.4
Oracle11.2.0.3
Instance
单实例
RAC双实例
OGG
version 11.1
version 11.2.0.6
存储管理
文件系统
ASM
OGG安装路径
本地目录/ogg
节点2上面的目录/ogg
由于新环境数据文件是通过ASM来管理的,并且数据库的在线日志和归档日志都是统一存在在ASM磁盘组中,因此在配置OGG捕获进程参数的时候,为了读取ASM上面的redo
log和archive log ,需要设置登陆ASM实例的相关参数。
Oracle GoldenGate extract 进程访问 ASM 中存放的 transaction
log 主要有2种方式:
1、 以 sys用户直接连接 ASM 实例访问
2、 在 Oracle 10.2.0.5、Oracle 11.2.0.2
版本和后续版本的数据库中,Oracle 提供了一个新的 ASM API接口 ,可以让 extract 进程直接利用数据库服务器来访问
redo 和 archive log。使用该 API 后,extract 将获得一个最大不超过 4 mb 的read
buffer。read buffer 越大,对于 redo 量较高的 环境越容易提高 Extract 的进程。可以通过使用
TRANLOGOPTIONS 的 DBLOGREADERBUFSIZE 选项来指定read buffer 的大小。
下面我们就这2种方式介绍下具体步骤:
方法1:
1)修改节点2的tnsnames.ora文件,添加以下内容:
ASM2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.203)(PORT =
1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)
(INSTANCE_NAME = +ASM2)
)
)
2)添加OGG捕获进程:
GGSCI>add extract wuhan, tranlog, begin
now,threads 2GGSCI>add
exttrail ./dirdat/aa, extract wuhan, megabytes 100
threads 2-----针对RAC模式的必选,代表是2个节点的双实例
3) 添加OGG捕获进程参数:
EXTRACT WUHAN
setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD ogg
--配置登陆ASM实例
TRANLOGOPTIONS ASMUSER
SYS@+ASM2, ASMPASSWORD oracle
EXTTRAIL ./dirdat/aa
DBOPTIONS ALLOWUNUSEDCOLUMN
--配置归档路径位置
TRANLOGOPTIONS
ALTARCHIVELOGDEST primary instance EVEN1 +data/archivelog,
ALTARCHIVELOGDEST primary instance EVEN2
+data/archivelog
table his_dba.HIS_CARD_T;
table his_dba.HIS_PHOTO_T;
table his_dba.HIS_TRACE_T;
table his_dba.HIS_GROUP_T;
table his_dba.HIS_GROUP_RELATION_T;
table his_dba.HIS_REPORT_T;
table his_dba.HIS_LOST_T;
table his_dba.HIS_APPLY_INFO_T;
table his_dba.HIS_ERROR_INFO_T;
table his_dba.HIS_SSMZ_T;
方法2:
OGG11g提供一个新的参数:DBLOGREADER
使用该参数,我们就不需要配置登陆ASM所需要的TNS配置内容,而且在参数文件里面也不需要制定归档路径的位置,它会自动去寻找归档路径。但如果要使用该参数,对数据库的版本有一定的要求,以下是官方文档对该参数的解释:
DBLOGREADER
(Oracle) Valid for Extract in classic capture
mode.
Causes Extract to use a newer ASM API that is
available as
of Oracle 10.2.0.5 and later 10g R2
versions, and Oracle
11.2.0.2 and later 11g R2 versions (but
not in Oracle 11g R1versions). This API uses the
database server to access the redo and archive logs, instead of
connecting directly to the Oracle ASM instance. The database must
contain the
libraries that contain the API modules and must be
running.
To use this feature, the Extract database user must
have
SELECT ANY TRANSACTION privilege.
在oracle11.2.0.1上面测试,报以下错误:
2014-01-20 15:34:12 ERROR OGG-00868 This version of Oracle does not
support the DBLOGREADER option
2014-01-20 15:34:12 ERROR
OGG-01668 PROCESS ABENDING
使用该参数,只需要在捕获进程参数文件里面添加好就OK了。
1)添加OGG捕获进程:
GGSCI>add extract wuhan, tranlog, begin
now,threads 2GGSCI>add exttrail ./dirdat/aa,
extract wuhan, megabytes 100
2)添加OGG捕获进程:
EXTRACT WUHAN
setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD ogg
EXTTRAIL ./dirdat/aa
DBOPTIONS ALLOWUNUSEDCOLUMN
TRANLOGOPTIONS
DBLOGREADER
table his_dba.HIS_CARD_T;
table his_dba.HIS_PHOTO_T;
table his_dba.HIS_TRACE_T;
table his_dba.HIS_GROUP_T;
table his_dba.HIS_GROUP_RELATION_T;
table his_dba.HIS_REPORT_T;
table his_dba.HIS_LOST_T;
table his_dba.HIS_APPLY_INFO_T;
table his_dba.HIS_ERROR_INFO_T;
table his_dba.HIS_SSMZ_T;
总体来说,方法1配置起来步骤比方法2要繁琐些,但方法2对数据库版本有一定的要求。