如何在11gR2 RAC上配置goldengate 配置

在ASM上配置GoldenGate
最近某客户的一套数据库系统从原先的单实例迁移到RAC中,由于原先的系统上配置了OGG数据同步(将部分业务表进行同步,提供给其他系统使用),待数据库迁移完成后,需要对OGG进行重新配置工作,顺便借此机会进行OGG的升级。由于目标端数据库没有变动,因此本次OGG实施配置主要针对生产库。
以下是旧环境和新环境的基本信息:
HP-UX 11.31 IA64
HP-UX 11.31 IA64
Oracle10.2.0.4
Oracle11.2.0.3
version 11.1
version 11.2.0.6
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)修改节点2的tnsnames.ora文件,添加以下内容:
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.203)(PORT =
(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;
OGG11g提供一个新的参数:DBLOGREADER
使用该参数,我们就不需要配置登陆ASM所需要的TNS配置内容,而且在参数文件里面也不需要制定归档路径的位置,它会自动去寻找归档路径。但如果要使用该参数,对数据库的版本有一定的要求,以下是官方文档对该参数的解释:
DBLOGREADER
(Oracle) Valid for Extract in classic capture
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
To use this feature, the Extract database user must
SELECT ANY TRANSACTION privilege.
在oracle11.2.0.1上面测试,报以下错误:
ERROR& OGG-00868 This version of Oracle does not
support the DBLOGREADER option
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对数据库版本有一定的要求。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。12664人阅读
Oracle RAC(16)
两个节点host,ipvip ,scan的信息
#eth0-Public IP
162.12.0.1
162.12.0.3
#eth1 PRIVATE IP
192.12.0.1
cqltjcpt1-prvi
192.12.0.3
cqltjcpt2-prvi
162.12.0.5
cqltjcpt1-vip
162.12.0.7
cqltjcpt2-vip
162.12.0.9
cqltjcptscan
11G rac中,监听文件默认配置在grid用户下
[root@cqltjcpt2 ~]# su - grid
[grid@cqltjcpt2 ~]$ cd $ORACLE_HOME
[grid@cqltjcpt2 grid]$ cd network/admin/
[grid@cqltjcpt2 admin]$ ll
-rw-r--r-- 1 grid oinstall
7 21:21 endpoints_listener.ora
-rw-r--r-- 1 grid oinstall
7 21:21 listener.ora
drwxr-xr-x 2 grid oinstall 4096 Jan
7 21:04 samples
-rw-r--r-- 1 grid oinstall
205 May 11
2011 shrept.lst
-rw-r--r-- 1 grid oinstall
7 21:21 sqlnet.ora
Oracle 11.2版本后,有一个新的监听文件endpoints_listener.ora被引进,里面的内容是节点的IP和VIP信息
Endpoints_listener.ora 文件的作用是向后兼容11.2版本以前的数据库,DBCA建库时,需要通过获取endpoints的位置信息来配置数据库参数和tnsnames
[grid@cqltjcpt2 admin]$ more endpoints_listener.ora
LISTENER_CQLTJCPT2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=cqltjcpt2-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=162.12.0.3)(PORT=1521)(IP=FIRST))))
由于用hosts解析配置本例中没有配置DNS,只有一个scan listener 此时scan监听只运行在Node1上
[grid@cqltjcpt2 admin]$ ps -ef | grep tnslsnr
00:00:22 /u01/oracle/grid/bin/tnslsnr LISTENER -inherit
0 11:08 pts/1
00:00:00 grep tnslsnr
[grid@cqltjcpt2 ~]$ ssh cqltjcpt1
[grid@cqltjcpt1 ~]$ ps -ef | grep
00:00:44 /u01/oracle/grid/bin/tnslsnr LISTENER -inherit
00:00:02 /u01/oracle/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
0 11:08 pts/1
00:00:00 grep tnslsnr
从ps -ef输出可以看到,无论是scan监听,还是本地监听都是运行在grid用户的oracle_home下
NODE2本地监听指向的是vip地址162.12.0.7 ,因为rac是通过vip对外提供服务
[oracle@cqltjcpt2 ~]$ sqlplus
/ as sysdba
SQL& show parameter local_listener
--------------- ---------- --------------------------------------------------------------------------------
local_listener
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=162.12.0.7)(PORT=1521))))
remote_listener指向的是scan监听名
SQL& show parameter remote_listener
-----------------
-----------
------------------------------
remote_listener
cqltjcptscan:1521
切换至grid用户
[root@cqltjcpt2 ~]# su - grid
[grid@cqltjcpt2 ~]$ cd $ORACLE_HOME/network/admin
[grid@cqltjcpt2 admin]$ ls
endpoints_listener.ora
listener.ora
shrept.lst
sqlnet.ora
查看监听文件内容
[grid@cqltjcpt2 admin]$ more listener.ora
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON
最下面两行参数涉及ENABLE_GLOBAL_DYNAMIC_ENDPOINT参数,ENABLE_GLOBAL_DYNAMIC_ENDPOINT参数的作用是允许监听程序接受针对oracle 11.2版本之前未进行动态注册的连接
查看监听状态,可以看到cqltgsqz2实例已经运行
[grid@cqltjcpt2 ~]$ srvctl
status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): cqltjcpt1,cqltjcpt2
[grid@cqltjcpt2 ~]$ lsnrctl status listener
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 08-JAN-:30
Copyright (c) , Oracle.
All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date
07-JAN-:03
0 days 12 hr. 14 min. 26 sec
Trace Level
ON: Local OS Authentication
Listener Parameter File
/u01/oracle/grid/network/admin/listener.ora
Listener Log File
/u01/oracle/app/oracle/diag/tnslsnr/cqltjcpt2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=162.12.0.3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=162.12.0.7)(PORT=1521)))
Services Summary...
Service &+ASM& has 1 instance(s).
Instance &+ASM2&, status READY, has 1 handler(s) for this service...
Service &cqlthxqf& has 1 instance(s).
Instance &cqlthxqf2&, status READY, has 1 handler(s) for this service...
Service &cqlthxqfXDB& has 1 instance(s).
Instance &cqlthxqf2&, status READY, has 1 handler(s) for this service...
Service &cqlthxqz& has 1 instance(s).
Instance &cqlthxqz2&, status READY, has 1 handler(s) for this service...
Service &cqlthxqzXDB& has 1 instance(s).
Instance &cqlthxqz2&, status READY, has 1 handler(s) for this service...
Service &cqltjcpt& has 1 instance(s).
Instance &cqltjcpt2&, status READY, has 1 handler(s) for this service...
Service &cqltjcptXDB& has 1 instance(s).
Instance &cqltjcpt2&, status READY, has 1 handler(s) for this service...
The command completed successfully
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:485078次
积分:6151
积分:6151
排名:第2597名
原创:128篇
转载:42篇
评论:40条
此博客为笔者的DT工作记录,欢迎一起交流学习工作中的点滴,若博客文章观点存在原理的错误、纰漏,笔者非常欢迎各位不保留地指出
(8)(2)(1)(1)(1)(1)(6)(2)(1)(12)(2)(5)(1)(1)(4)(5)(6)(1)(8)(3)(7)(6)(34)(11)(1)(5)(9)(12)(6)(7)(8)如何在11gR2 RAC上配置GoldenGate_百度知道
如何在11gR2 RAC上配置GoldenGate
提问者采纳
主要需要注意的就是trail file要存放到集群文件系统中。 可选的方案很多,推荐使用基于ASM的ACFS。
其他类似问题
为您推荐:
goldengate的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&博客访问: 242180
博文数量: 97
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Linux
应公司业务需要,打算另外做一套oracle goldengate作为报表数据库,目前线上环境有点复杂:
主站:3节点RAC,oracle版本:10.2.0.5.4,OS:linux x86-64
DG:主站基础上,有个单实例的物理dataguard,oracle版本:10.2.0.5.0,OS:linux x86-64
酒窖库:在之前主站+DG的基础上,表级别下游实时捕获的stream,oracle版本:10.2.0.5.0,OS:linux x86-64
报表库:在之前主站+DG+stream的配置基础上,配置oracle goldengate,oracle版本:10.2.0.5.0,OS:linux x86-64(本周四凌晨刚刚部署完成)
需要说明一下:
由于我们的rac 3个节点的归档都是放在本地的,在配置gg的时候,需要能够同时访问到3个节点上的归档日志,我们这里采取的方法是:从另外一台服务器上以nfs的方式挂载一个磁盘到其中的一个节点,然后goldengate的相关软件和进程都安装在这个共享磁盘上,同时在该节点上挂载另外2个节点的归档路径,为了冗余,可以在另外2个节点做同样的配置,当其中一个节点不可访问的时候,可以切换到另外的2个节点进行后续操作,话不多说,以下进入正题(我们的实际情况是在节点3--rac3上配置的,如无特别说明,都是在该节点上操作):
准备阶段:
1. nfs配置:
编辑exports文件,内容如下(另外2个节点也要配置):
/arch/rac3 rac1(rw,async,no_root_squash)/arch/rac3 rac2(rw,async,no_root_squash)
启动portmap和nfs服务:
[root@rac3 ~]# service portmap start[root@rac3 ~]# service nfs start
具体mount命令类似如下(rac3上操作):
&mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 xx.xx.xx.xx:/xxx/xxx /xxx/xxx
同时节点3上有可能会要开启nfslock服务,我这里在挂载nfs共享磁盘的时候出现过挂载不上的情况,报错获取不到锁,解决方法就是在rac3上开启nfslock服务。
挂载另外2个节点的归档路径和共享磁盘:
[root@rac3 ~]# df -h驿欢绯荤?&&&&&&&&&&&& 瀹归& 宸茬?瀵绋 宸茬? 骅浇绻/dev/sda1&&&&&&&&&&&& 587G& 205G& 352G& 37% //dev/sda3&&&&&&&&&&&& 473G&& 34G& 416G&& 8% /archtmpfs&&&&&&&&&&&&&&&&& 12G&&&& 0&& 12G&& 0% /dev/shm10.1.8.45:/arch/rac1&& 95G&& 56G&& 34G& 63% /arch/rac1&&& --节点1的归档路径10.1.8.47:/arch/rac2&& 99G&& 57G&& 37G& 61% /arch/rac2&&& --节点2的归档路径10.1.8.52:/backup/rac_share_disk/&&&&&&&&&&&&&&&&&&&&& 1.4T& 469G& 799G& 37% /share_disk&&&&&&&&& --共享磁盘(用来安装goldengate)
以下是共享磁盘所在服务器的nfs配置:
[root@DBMON ~]# cat /etc/exports /backup/rac_share_disk 10.1.8.0/24(rw,async,no_root_squash)
同时也要启动nfs服务,这样才能保证rac的3个节点都能挂载该磁盘!2.数据库:
在源端和目标端创建用户,用于管理GoldenGate:
省略。。。
赋予相关权限,包括环境变量的配置,省略,详见:&中的相关部分!
数据库方面:
确保源库打开归档模式:
[oracle@rac3 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 15:56:02 2012
Copyright (c) , Oracle.& All Rights Reserved.
Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP, Data Miningand Real Application Testing options
SYS@ yesmynet3 >archive log listDatabase log mode&&&&&&&&&&&&& Archive ModeAutomatic archival&&&&&&&&&&&& EnabledArchive destination&&&&&&&&&&& /share_disk/rac3Oldest online log sequence&&&& 16474Next log sequence to archive&& 16477Current log sequence&&&&&&&&&& 16477SYS@ yesmynet3 >
这里显示的是归档到了共享存储上,实际上是归档到本地的/arch/rac3目录下的,如下:
SYS@ yesmynet3 >show parameter log_archive_dest
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE------------------------------------ ----------- ------------------------------log_archive_dest&&&&&&&&&&&&&&&&&&&& stringlog_archive_dest_1&&&&&&&&&&&&&&&&&& string&&&&& LOCATION=/arch/rac3 VALID_FOR=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (ALL_LOGFILES,ALL_ROLES) DB_UN&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& IQUE_NAME=yesmynet_rac
这个不重要,没什么影响的,忽略!
确保源库打开了force logging:
SYS@ yesmynet3 >select force_logging from v$
确保源库打开supplemental log:
SYS@ yesmynet3 >select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$
SUPPLEME SUP SUP-------- --- ---YES&&&&& YES YES
确保源库关闭回收站功能:
官方说明,由于一个已知的问题,回收站会对DDL触发器产生影响,因此需要关闭。由此可见,我们只需要在源库中关闭回收站即可。
SYS@ yesmynet3 >show parameter recyclebin
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE------------------------------------ ----------- ------------------------------recyclebin&&&&&&&&&&&&&&&&&&&&&&&&&& string&&&&& OFF
确保goldengate用户能够连接到所有的ASM实例:
rac中3个节点都要配置:
TNSNAMES:
YESMYNET_ASM =& (DESCRIPTION =&&& (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1515))&&& (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1515))&&& (ADDRESS = (PROTOCOL = TCP)(HOST = rac3-vip)(PORT = 1515))&&& (LOAD_BALANCE = yes)&&& (CONNECT_DATA =&&&&& (SERVER = DEDICATED)&&&&& (SERVICE_NAME = +ASM)&&& )& )LISTENER:
SID_LIST_LISTENER_RAC3 =& (SID_LIST =&&& (SID_DESC =&&&&& (GLOBAL_DBNAME = yesmynet)&&&&& (ORACLE_HOME = /oracle/product/10.2.0/db_1)&&&&& (SID_NAME = yesmynet3)& --这里要根据具体的节点来进行调整&&& )&&& (SID_DESC =&&&&& (GLOBAL_DBNAME = +ASM)&&&&& (ORACLE_HOME = /oracle/product/10.2.0/db_1)&&&&& (SID_NAME = +ASM3)&&&& --这里要根据具体的节点来进行调整&&& )& )
[oracle@rac3 ~]$ export ORACLE_SID=+ASM3[oracle@rac3 ~]$ sqlplus
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 16:13:54 2012
Copyright (c) , Oracle.& All Rights Reserved.
Enter password:
Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP, Data Miningand Real Application Testing options
SYS@ yesmynet_asm >show parameter instance
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&&&&&&&&&&&&& VALUE------------------------------------ ---------------------- ------------------------------active_instance_count&&&&&&&&&&&&&&& integercluster_database_instances&&&&&&&&&& integer&&&&&&&&&&&&&&& 3instance_groups&&&&&&&&&&&&&&&&&&&&& stringinstance_name&&&&&&&&&&&&&&&&&&&&&&& string&&&&&&&&&&&&&&&& +ASM3instance_number&&&&&&&&&&&&&&&&&&&&& integer&&&&&&&&&&&&&&& 3instance_type&&&&&&&&&&&&&&&&&&&&&&& string&&&&&&&&&&&&&&&& asmopen_links_per_instance&&&&&&&&&&&&& integer&&&&&&&&&&&&&&& 4parallel_instance_group&&&&&&&&&&&&& stringparallel_server_instances&&&&&&&&&&& integer&&&&&&&&&&&&&&& 3
然后重启监听:
[oracle@rac3 bin]$ ./crs_stat -v -tName&&&&&&&&&& Type&&&&&&&&&& R/RA&& F/FT&& Target&&& State&&&& Host&&&&&&& ----------------------------------------------------------------------ora....SM1.asm application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora....C1.lsnr application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora.rac1.gsd&& application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora.rac1.ons&& application&&& 0/3&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora.rac1.vip&& application&&& 0/0&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora....SM2.asm application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora....C2.lsnr application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora.rac2.gsd&& application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora.rac2.ons&& application&&& 0/3&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora.rac2.vip&& application&&& 0/0&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora....SM3.asm application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& ora....C3.lsnr application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& ora.rac3.gsd&& application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& ora.rac3.ons&& application&&& 0/3&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& ora.rac3.vip&& application&&& 0/0&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& ora....ynet.db application&&& 0/0&&& 0/1&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora....t1.inst application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac1&&&&&&& ora....t2.inst application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac2&&&&&&& ora....t3.inst application&&& 0/5&&& 0/0&&& ONLINE&&& ONLINE&&& rac3&&&&&&& [oracle@rac3 bin]$ srvctl stop listener -n rac3[oracle@rac3 bin]$ srvctl start listener -n rac3
字符集(后面配置goldengate会用到):
[oracle@rac3 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Apr 20 16:18:38 2012
Copyright (c) , Oracle.& All Rights Reserved.
Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP, Data Miningand Real Application Testing options
SYS@ yesmynet3 >set line 250SYS@ yesmynet3 >show parameter nls_lang
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE------------------------------------ ----------- ------------------------------nls_language&&&&&&&&&&&&&&&&&&&&&&&& string&&&&& AMERICAN& ---显示SIMPLIFIED CHINESE 也行SYS@ yesmynet3 >show parameter nls_terr
NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TYPE&&&&&&& VALUE------------------------------------ ----------- ------------------------------nls_territory&&&&&&&&&&&&&&&&&&&&&&& string&&&&& AMERICA&& ---显示 CHINA也行SYS@ yesmynet3 >col name for a20SYS@ yesmynet3 >col value$ for a50SYS@ yesmynet3 >select name,value$ from PROPS$ WHERE name = 'NLS_CHARACTERSET';
NAME&&&&&&&&&&&&&&&& VALUE$-------------------- --------------------------------------------------NLS_CHARACTERSET&&&& ZHS16GBK
SYS@ yesmynet3 >准备阶段到此结束,下面开始配置goldengate:
1.执行支持ddl复制的相关脚本,具体如何执行,以及每个脚本的作用详见:&&&& ---源库执行&中的相关部分!
在此不再赘述
2.安装goldengate产品:
源库和目标库都要执行,以下示例是在源库执行:
[oracle@rac3 ~]$ cd /share_disk/ggs/[oracle@rac3 ggs]$ pwd/share_disk/ggs[oracle@rac3 ggs]$ ./ggsci
Oracle GoldenGate Command Interpreter for OracleVersion 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_0 Linux, x64, 64bit (optimized), Oracle 10g on Oct& 4 :20
Copyright (C) , Oracle and/or its affiliates. All rights reserved.
GGSCI (rac3) 1> create subdirs
3.创建trail文件存放位置(源库和目标库):
[oracle@rac3 trails]$ ll ../ | grep trailsdrwxr-xr-x 2 oracle oinstall&&&&& 4096 Apr 20 16:14 trails[oracle@rac3 trails]$ pwd/share_disk/ggs/trails
注:如果此步不执行的话,trail文件默认存放在goldengate安装目录下的dirdat目录下~
4.配置manager进程(源库和目标库):
GGSCI (rac3) 14> view params mgr&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DYNAMICPORTLIST PORT 6511PURGEOLDEXTRACTS /share_disk/ggs/trails/s1*, USECHECKPOINTS, MINKEEPFILES 10AUTORESTART ER *, RETRIES 3, WAITMINUTES 5PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30参数说明:
DYNAMICPORTLIST&& ---使用的动态端口范围PURGEOLDEXTRACTS&& ---当根据checkpoint发现已经完成抽取和复制的trail文件将被自动删除,但保留最近10个AUTORESTART ER& ---使抽取/复制进程失败后自动重启PURGEDDLHISTORY和PURGEMARKERHISTORY分别删除DDL历史表和marker表中的过期数据,以控制它们不会变得过于庞大。
全局参数配置(源):
GGSCI (rac3) 45> view params ./GLOBAL
GGSCHEMA *******
配置源库的extract进程:
由于主站是3节点的rac,所以在配置抽取进程组的时候,要指定threads 3选项:
GGSCI (rac3) 47> add extract extksr1,tranlog,threads 3,begin nowEXTRACT added.
GGSCI (rac3) 48> add exttrail /share_disk/ggs/trails/s1,extract extksr1, MEGABYTES 100EXTRACT added.GGSCI (rac3) 46> view params extksr1
EXTRACT extksr1setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )USERID ******, PASSWORD ******************EXTTRAIL /share_disk/ggs/trails/s1DISCARDFILE extksr1dcf,APPEND,MEGABYTES 10TRANLOGOPTIONS ALTARCHIVELOGDEST primary instance yesmynet1 /arch/rac1,ALTARCHIVELOGDEST primary instance yesmynet2 /arch/rac2,ALTARCHIVELOGDEST primary instance yesmynet3 /arch/rac3TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT %t_%s_%r.dbfTRANLOGOPTIONS ASMUSER
***********DYNAMICRESOLUTIONDDL INCLUDE MAPPEDDDLOPTIONS ADDTRANDATA,REPORTFETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORTSTATOPTIONS REPORTFETCHWARNLONGTRANS 1H, CHECKINTERVAL 5MGETTRUNCATESTABLE mynet_app.*;
参数说明:
1. EXTTRAIL参数指定该抽取进程对应的exttrail2. DISCARDFILE参数指定一个文件,用来记录不能正常处理的记录,这里使用追加方式,最大为10MB3. TRANLOGOPTIONS ALTARCHIVELOGDEST指定源数据库归档所在的路径。如果不确定,使用该SQL*Plus命令:show parameter log_archive_dest_14. TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT指定了归档文件的命名格式,可以通过SQL*Plus命令show parameter log_archive_format 来确定该格式5. 由于源数据使用了ASM,这里通过tranlogoptions asmuser来提供登录ASM实例的用户名和密码(用户名必须是SYS)6. DDL INCLUDE MAPPED表示只捕获MAPPED范围内的DDL操作7. DDLOPTIONS ADDTRANDATA :当创建新的表时,自动为其启用追加日志8. FETCHOPTIONS:MISSINGROW REPORT表示当extract需要获取的行在源库中无法定位时,extract进程继续运行,相关的错误信息会保存在discardfile参数指定的文件中;USESNAPSHOT表示extract使用flashback查询来从undo从获取一些数据,比如无法从redo中直接获取的UDT、嵌套表、XMLtype以及9i中的LOB;NOUSELATESTVERSION使得extract当无法从undo中获取数据时,忽略该条件而不是从源表中获取当前值。9. STATOPTIONS REPORTFETCH:使用ggsci命令stats时,显示获取的行的统计信息10. WARNLONGTRANS 1H, CHECKINTERVAL 5M:当发现超过1个小时的长事务时,会在错误日志中产生一条warning,5分钟检测一次
需要强调一点的是,上面代码部分标注为红色的就是与我之前准备阶段里查看的字符集相一致的,否则,导入到目标库后,有可能出现乱码!
配置源库的pump进程:
GGSCI (rac3)>ADD EXTRACT dpksr1, EXTTRAILSOURCE /share_disk/ggs/trails/s1,&BEGIN now
EXTRACT added
GGSCI (rac3)>add rmttrail /home/oracle/ggs/trails/t1,extract dpksr1, megabytes 100
RMTTRAIL added.
GGSCI (rac3) 47> view params dpksr1
EXTRACT dpksr1setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )USERID *****, PASSWORD ************************RMTHOST 10.1.8.56, MGRPORT 6511RMTTRAIL /home/oracle/ggs/trails/t1DISCARDFILE dpksr1dcf,APPEND,MEGABYTES 10GETTRUNCATEStable mynet_app.*;
参数比较简单,就不一一说明了
目标端配置全局参数:
创建一个checkpoint表replicat通过这个表来维护trail文件中的read position。这不是个必须的操作,如果没有这个表,则通过一个磁盘文件来维护GGSCI (rptdb) 24> dblogin userid *****,password ********Successfully logged into database.GGSCI (rptdb) 24> add checkpointtable ****.chkpointGGSCI (rptdb) 25> view params ./GLOBAL
GGSCHEMA *****CHECKPOINTTABLE *****.chkpoint
配置replicate进程:
GGSCI (rptdb) 25>add replicat repksr1,exttrail /home/oracle/ggs/trails/t1,checkpointtable *****.chkpoint
REPLICAT added.
GGSCI (rptdb) 26> view params repksr1
REPLICAT repksr1setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )ASSUMETARGETDEFSUSERID ******, PASSWORD *******************DISCARDFILE repksr1dcf,APPEND,MEGABYTES 10DDL INCLUDE MAPPEDDDLOPTIONS REPORTBATCHSQLDBOPTIONS SUPPRESSTRIGGERSDBOPTIONS DEFERREFCONSTDBOPTIONS LOBWRITESIZE 102400--HANDLECOLLISIONSDDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20APPLYNOOPUPDATESGETTRUNCATESMAP mynet_app.*, TARGET mynet_app.*;
参数说明:
1. ASSUMETARGETDEFS:由于在这里我们源端和目标端的表结构是完全一致的,因此使用这个参数来使replicat不用去查看相关的定义文件,从而提高效率2. DDLOPTIONS REPORT:将ddl的具体信息写入到报告文件中3. BATCHSQL:将相似的SQL语句放到一个数组中以加快执行速度。在normal模式下,repliat同一时间只应用一条sql语句。4. DBOPTIONS DEFERREFCONST:将完整性约束推迟到replicat事务提交以后再检测5. 如果数据库版本在10.2.0.5或11.2.0.2以后,可以使用DBOPTIONS SUPPRESSTRIGGERS在replicat会话中禁用触发器。如果不是,应该在目标端数据库中禁用触发器(触发器产生的DML操作会从源端同步到目标端)6. DBOPTIONS LOBWRITESIZE :将要写入目标库的LOB数据缓存在内存中,当达到参数中指定的大小时写入数据,以减少I/O。这个值的范围是2KB到1MB,默认为32KB7. DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20:当出现DDL错误,重试5次,时间间隔为20秒。如果失败,replicat会继续运行,但相关信息会记录在discardfile中。8. HANDLECOLLISIONS:当replicat往表中插入一条记录,而该记录已经存在,则进行覆盖;当replicat在表中试图更新或删除一条记录,而该记录不存在,则该操作被丢弃。这个参数一般在initial-data load中使用,在源和目标端的数据同步之后应该将该参数删除9. MAP TARGET:源表和目标表之间的映射,可以使用通配符10.DBOPTIONS SUPPRESSTRIGGERS 在目标库禁用trigger
配置goldengate结束,下面开始数据的同步操作:
GGSCI (rac3) 48> add trandata mynet_app.*&& ---源库操作(启用追加日志)
输出太多,省略
之后开始数据的初始化导入:
方法跟之前测试库一样,impdp方式,至于有哪些方法,都有什么区别,详见:
&中的相关部分
初始化导入之前,在源库启用mgr、ext和pump进程:
GGSCI (rac3) 48> info all&&&&&&&&&&&&&&&&
Program&&&& Status&&&&& Group&&&&&& Lag&&&&&&&&&& Time Since Chkpt
MANAGER&&&& RUNNING&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& EXTRACT&&&& RUNNING&&&& DPKSR1&&&&& 00:00:00&&&&& 00:00:06&&& EXTRACT&&&& RUNNING&&&& EXTKSR1&&&& 00:00:00&&&&& 00:00:01&
目标库启用mgr进程:
GGSCI (rptdb) 28> info all
Program&&&& Status&&&&& Group&&&&&& Lag&&&&&&&&&& Time Since Chkpt
MANAGER&&&& RUNNING&
源库查询当前scn值并记录下来:
SYS@ yesmynet3 >col current_scn for SYS@ yesmynet3 >select current_scn from v$
&&&&&&&&&& CURRENT_SCN----------------------&&&&&&&&&&
SYS@ yesmynet3 >
执行导入操作:
impdp ogg directory = DPDATA1 network_link = yesmynet schemas=mynet_app flashback_scn= TABLE_EXISTS_ACTION =replace
。。。漫长的等待。。。
导入完毕后,目标库启用replicat进程:
GGSCI (rptdb) 28> start repksr1,aftercsn
GGSCI (rptdb) 28> info all
Program&&&& Status&&&&& Group&&&&&& Lag&&&&&&&&&& Time Since Chkpt
MANAGER&&&& RUNNING&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& REPLICAT&&& RUNNING&&&& REPKSR1&&&& 00:00:00&&&&& 00:00:00&
等待数据同步完成:
目标库errlog如下:
04:23:30& INFO&&& OGG-01738& Oracle GoldenGate Capture for Oracle, extksr1.prm:& BOUNDED RECOVERY: CHECKPOINT: for object pool 3: p20517_Redo Thread 3: start=SeqNo: 16378, RBA: , SCN: 17. (), Timestamp:
04:16:49.000000, end=SeqNo: 16379, RBA: 51712, SCN: 17. (), Timestamp:
04:23:15.000000. 04:23:30& INFO&&& OGG-01738& Oracle GoldenGate Capture for Oracle, extksr1.prm:& BOUNDED RECOVERY: CHECKPOINT: for object pool 1: p20517_Redo Thread 1: start=SeqNo: 29172, RBA: , SCN: 17. (), Timestamp:
04:23:19.000000, end=SeqNo: 29172, RBA: , SCN: 17. (), Timestamp:
04:23:24.000000. 04:23:30& INFO&&& OGG-01738& Oracle GoldenGate Capture for Oracle, extksr1.prm:& BOUNDED RECOVERY: CHECKPOINT: for object pool 2: p20517_Redo Thread 2: start=SeqNo: 27652, RBA: 3600, SCN: 17. (), Timestamp:
04:23:25.000000, end=SeqNo: 27652, RBA: 12288, SCN: 17. (), Timestamp:
04:23:25.000000. 04:25:25& INFO&&& OGG-00538& Oracle GoldenGate Capture for Oracle, extksr1.prm:& Metadata not invalidated for [MYNET_APP.M_GOODS_STOCK2] because of TRUNCATE. 04:25:25& INFO&&& OGG-01487& Oracle GoldenGate Capture for Oracle, extksr1.prm:& DDL found, operation [truncate table m_goods_stock2& (size 30)], start SCN [], commit SCN [] instance [yesmynet1 (1)], DDL seqno [1029], marker seqno [1029]. 04:25:25& INFO&&& OGG-00487& Oracle GoldenGate Capture for Oracle, extksr1.prm:& DDL operation included [INCLUDE MAPPED], optype [TRUNCATE], objtype [TABLE], objowner [MYNET_APP], objname [M_GOODS_STOCK2]. 04:25:25& INFO&&& OGG-00497& Oracle GoldenGate Capture for Oracle, extksr1.prm:& Writing DDL operation to extract trail file. 04:25:26& INFO&&& OGG-01026& Oracle GoldenGate Capture for Oracle, extksr1.prm:& Rolling over remote file /share_disk/ggs/trails/s1000004. 04:29:08& INFO&&& OGG-00538& Oracle GoldenGate Capture for Oracle, extksr1.prm:& Metadata not invalidated for [MYNET_APP.M_GOODS_STOCK2] because of TRUNCATE. 04:29:08& INFO&&& OGG-01487& Oracle GoldenGate Capture for Oracle, extksr1.prm:& DDL found, operation [truncate table m_goods_stock2& (size 30)], start SCN [], commit SCN [] instance [yesmynet1 (1)], DDL seqno [1030], marker seqno [1030].
待数据同步完成之后,在目标库关闭handlecollisions参数: 先使用SEND REPLICAT命令使之对运行中的replicat生效,然后修改参数文件,使其在下一次启动时生效。
GGSCI (rptdb) 28> SEND REPLICAT repksr1, NOHANDLECOLLISIONS
然后修改replicat进程,去掉HANDLECOLLISIONS参数
可以试着在源数据库中进行一些ddl或dml操作,在目标端使用ggsci命令stats或在数据库中查看更改是否被应用了,
我这里测试下来,dml和ddl操作都没什么问题,就此略过~
观察一段时间,数据同步没什么问题的话,估计下周会正式上线,终于写完了,累死了~~
阅读(5285) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。}

我要回帖

更多关于 11gr2 rac 内存管理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信