Oracle GoldenGate精选.docx
《Oracle GoldenGate精选.docx》由会员分享,可在线阅读,更多相关《Oracle GoldenGate精选.docx(42页珍藏版)》请在冰豆网上搜索。
OracleGoldenGate精选
OracleGoldenGate
测试文档
1.OracleGoldenGate介绍
GoldenGateTDM(交易资料管理)软体是一种基于日志的结构化资料複製软体,它通过解析源资料库在线日志或归档日志获得资料的增删改变化,再将这些变化应用到目标资料库,实现源资料库与目标资料库同步、双活。
GoldenGateTDM软体可以在异构的IT基础结构(包括几乎所有常用作业系统平台和资料库平台)之间实现大量资料亚秒一级的即时複製,其複製过程简图如下:
如上图所示,GoldenGateTDM的资料複製过程如下:
利用捕捉进程(CaptureProcess)在源系统端读取OnlineRedoLog或ArchiveLog,然后进行解析,只提取其中资料的变化如增、删、改操作,并将相关资讯转换爲GoldenGateTDM自定义的中间格式存放在伫列文件中。
再利用传送进程将伫列文件通过TCP/IP传送到目标系统。
捕捉进程在每次读完log中的资料变化并在资料传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续複製;
目标系统接受资料变化并缓存到GoldenGateTDM伫列当中,伫列爲一系列临时存储资料变化的文件,等待投递进程读取资料;
GoldenGateTDM投递进程从伫列中读取资料变化并创建对应的SQL语句,通过资料库的本地介面执行,提交到资料库成功后更新自己的检查点,记录已经完成複製的位置,资料的複製过程最终完成。
由此可见,GoldenGateTDM是一种基于软体的资料複製方式,它从资料库的日志解析资料的变化(资料量只有日志的四分之一左右)。
GoldenGateTDM将资料变化转化爲自己的格式,直接通过TCP/IP网路传输,无需依赖于资料库自身的传递方式,而且可以通过高达9:
1的压缩率对资料进行压缩,可以大大降低带宽需求。
在目标端,GoldenGateTDM可以通过交易重组,分批载入等技术手段大大加快资料投递的速度和效率,降低目标系统的资源佔用,可以在亚秒级实现大量资料的複製,并且目标端资料库是活动的
GoldenGateTDM提供了灵活的应用方桉,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图所示:
GoldenGateTDM可以提供可靠的资料複製,主要体现在下面三点:
保证事务一致性
GoldenGateTDM在灾备资料库应用複製资料库交易的顺序与在生産中心资料库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上资料的完整性和读一致性,爲即时查询和事务处理创造了条件。
检查点机制保障资料无丢失
GoldenGateTDM的抽取和複製进程使用检查点机制记录完成複製的位置。
对于抽取进程,其检查点记录当前已经抽取日志的位置和写伫列文件的位置;对于投递进程,其检查点记录当前读取伫列文件的位置。
检查点机制可以保证在系统、网路或GoldenGateTDM进程故障重啓后资料无丢失。
可靠的资料传输机制
GoldenGateTDM用应答机制传输交易资料,只有在得到确认消息后才认爲资料传输完成,否则将自动重新传输资料,从而保证了抽取出的所有资料都能发送到备份端。
资料传输过程中支援128位加密和资料压缩功能。
Oracle公司的GoldenGate産品,可以在异构的IT基础结构之间实现大量资料的秒一级的资料捕捉、转换和投递。
GoldenGate可以支援几乎所有常用作业系统如和资料库平台,如下表所示:
作业系统资料库
MSNT,2000,XP,Linux,SunSolaris,HP-UX,IBMAIX,HPNonStop,TRU64,IBMz/OS,OS/390Oracle,DB2,MSSQLServer,MySQL,Enscribe,SQL/MP,SQL/MX,Sybase,Teradata,其他ODBC相容资料库
2.OracleGoldenGateForOracle(windows平台)安装
GoldenGate的安装非常简单,将解压缩安装文件到指定目录。
比如安装文件解压缩后的路径爲d:
\ggs
安装步骤如下:
1.进入命令行
2.切换到ggs目录下
3.输入命令installaddserviceaddevents
4.输入ggsci进入GoldenGate的命令行
5.输入createsubdirs
OK,GoldenGate安装就已经完成了。
实际操作如下
C:
\DocumentsandSettings\PONY>d:
D:
\>cdggs
D:
\ggs>installaddserviceaddevents
OracleGoldenGatemessagesinstalledsuccessfully.
Service'GGSMGR'created.
Installprogramterminatednormally.
D:
\ggs>ggsci
OracleGoldenGateCommandInterpreterforOracle
Version10.4.0.19Build002
Windows(optimized),Oracle10onSep18200915:
54:
55
Copyright(C)1995,2009,Oracleand/oritsaffiliates.Allrightsreserved.
GGSCI(PONY)1>createsubdirs
CreatingsubdirectoriesundercurrentdirectoryD:
\ggs
ParameterfilesD:
\ggs\dirprm:
created
ReportfilesD:
\ggs\dirrpt:
created
CheckpointfilesD:
\ggs\dirchk:
created
ProcessstatusfilesD:
\ggs\dirpcs:
created
SQLscriptfilesD:
\ggs\dirsql:
created
DatabasedefinitionsfilesD:
\ggs\dirdef:
created
ExtractdatafilesD:
\ggs\dirdat:
created
TemporaryfilesD:
\ggs\dirtmp:
created
VeridatafilesD:
\ggs\dirver:
created
VeridataLockfilesD:
\ggs\dirver\lock:
created
VeridataOut-Of-SyncfilesD:
\ggs\dirver\oos:
created
VeridataOut-Of-SyncXMLfilesD:
\ggs\dirver\oosxml:
created
VeridataParameterfilesD:
\ggs\dirver\params:
created
VeridataReportfilesD:
\ggs\dirver\report:
created
VeridataStatusfilesD:
\ggs\dirver\status:
created
VeridataTracefilesD:
\ggs\dirver\trace:
created
StdoutfilesD:
\ggs\dirout:
created
3.资料库複製实施文档(DML)
3.1准备工作
◆准备两台机器,分别爲SourceDB,TargetDB,通过TCP/IP网路进行互连
SourceDB:
WINXP环境,Oracle10g10.2.0.1.0
TargetDB:
WIN2003环境Oracle10g10.2.0.1.0
◆必须保证SourceDB是运行在归档模式下。
◆目的:
将SourceDB中相关Schema中的资料同步複製到TargetDB相对应的Sechema中
本文中要同步的是SouceDB中的SAJET,SJ,SMT,LANG到Target中的SAJET,SJ,SMT,LANG用户下
◆首先要保持SourceD,TargetDB相关Schema中的初始资料一致,可以通过Exp/Imp,Rman,冷备等方式实现.
◆双方DB建立GoldenGate用户,赋予DBA许可权,用于GoldenGate连接DB.
◆双方DB安装GoldenGate,安装方式如第二章节所示
◆SourceDB必须开始最小附加日志模式
通过以下语句查看DB是否开啓了最小附加日志模式
SQL>selectSUPPLEMENTAL_LOG_DATA_MINfromv$database;
SUPPLEME
--------
YES
如果没有开啓资料库的最小附加日志,则通过以下语句开啓
SQL>alterdatabaseaddsupplementallogdata;
◆开啓表的最小附加日志,通过GoldenGate命令行来添加
GGSCI(PONY)1>dbloginuseridsajetpasswordtech
Successfullyloggedintodatabase.
GGSCI(PONY)2>addtrandatasajet.*
第一条命令表示登录到Database
第二条命令表示添加Sajet用户下所有表的最小附加日志
同样的命令开啓SJ,LANG,SMT用户下的表的最小附加日志。
3.2配置GoldenGate
3.2.1配置SourceDB的GoldenGate
SourceDB端需要配置mgr进程,添加一个extract进程,和一个远端伫列。
1.配置mgr参数
GGSCI(PONY)2>editparammgr
此时系统自动会新建一个名爲mgr的参数文件,填入以下内容后保存
PORT7809
--mgr进程使用的TCP/IP埠侦听请求
2.新增一个抽取进程,在GGSCI命令行中输入如下命令:
GGSCI(PONY)1>addextractext1,tranlog,beginnow
EXTRACTadded.
---新增一个抽取进程,负责抓取SourceDB中变化的资料,基于日志方式,立即生效
3.配置抽取进程
GGSCI(PONY)2>editparamext1
此时系统会自动新建一个名爲ext1的参数文件,填入以下内容后保存
extractext1
useridgoldengate,passwordgoldengate
rmthost172.17.17.61,mgrport7809
rmttraild:
\ggs\dirdat\r1
dynamicresolution
gettruncates
tablesajet.*;
tablesj.*;
tablesmt.*;
tablelang.*;
--
抽取进程名爲ext2
连接本机DB的账号和密码
远端主机地址以及服务埠号(TargetDB)
远端伫列的位置(TargetDB)
优化参数,动态分析表结构
是否抓取Truncate的资料
需要抽取哪些table。
4.新增远端伫列位置
GGSCI(PONY)3>addrmttraild:
\ggs\dirdat\r1extractext2
RMTTRAILadded.
--
新增一个远端伫列,位置爲在TargetDB的d:
\ggs\dirdat\r1,是抽取进程ext1抽取的资料伫列,注意和抽取进程中配置的rmttraild:
\ggs\dirdat\r1一致。
开啓所有进程
GGSCI(PONY)11>startmgr
StartingManagerasservice('GGSMGR')...
Servicestarted.
GGSCI(PONY)14>startext1
SendingSTARTrequesttoMANAGER('GGSMGR')...
EXTRACTEXT1starting
查看进程的运行情况
GGSCI(PONY)185>infoall
ProgramStatusGroupLagTimeSinceChkpt
MANAGERRUNNING
EXTRACTRUNNINGEXT100:
00:
0000:
00:
06
OK,Mgr进程和EXT进程都已经正常运行
SouceDB端的配置完成。
3.2.2配置TargetDB的GoldenGate
1.配置mgr参数
GGSCI(PONY)2>editparammgr
此时系统自动会新建一个mgr的参数文件,填入以下内容后保存
PORT7809
DYNAMICPORTLIST7840-7850
--mgr进程使用的TCP/IP埠侦听请求
接受远端伫列的埠列表。
2.新增一个複製进程
GGSCI(PONY)2>ADDreplicatrep1EXTTRAILd:
\ggs\dirdat\r1,nodbcheckpoint
--新增一个複製进程,将抽取到伫列中的文件解析后写进TargetDB
3.配置複製进程
GGSCI(PONY)2>editparamrep1
此时系统会自动新建一个参数文件,填入一下内容后保存
replicatrep1
useridgoldengate,passwordgoldengate
assumetargetdefs
reperrordefault,discard
discardfileD:
\oradata\discard\repsz.dsc,append,megabytes100
gettruncate
mapsajet.*,targetsajet.*;
mapsj.*,targetsj.*;
maplang.*,targetlang.*;
mapsmt.*,targetsmt.*;
--複製进程名
登入TargetDB的账号和密码
两台DB资料结构一致则使用此参数
如果複製出错,则继续,并将错误放进discardfile中
複製truncate操作
複製的源表爲sajet,sj,lang,smt用户下的所有表,目标爲TargetDB中对用用户下的所有表
开啓mgr和rep进程
GGSCI(PONY)20>startmgr
StartingManagerasservice('GGSMGR')...
Servicestarted.
GGSCI(PONY)21>startrep1
SendingSTARTrequesttoMANAGER('GGSMGR')...
REPLICATREP1starting
查看进程的运行情况
GGSCI(PONY)22>infoall
ProgramStatusGroupLagTimeSinceChkpt
MANAGERRUNNING
REPLICATRUNNINGREP100:
00:
0000:
00:
07
OK,MGR进程和REP进程运行正常
至此,两台DB的GoldenGate都已经配置完成。
3.3测试DML操作
首先往SourceDB中插入一行
C:
\DocumentsandSettings\Administrator>sqlplus
SQL*Plus:
Release10.2.0.1.0-ProductiononMonMar815:
33:
472010
Copyright(c)1982,2005,Oracle.Allrightsreserved.
Enteruser-name:
sajet/tech@hitron
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-64bitProduction
WiththePartitioning,OLAPandDataMiningoptions
SQL>insertintosajet.sys_empvalues(10000786,'TEST1','TEST1','','TEST','10000
27','','Y','',0,'',0,'','')
2;
1rowcreated.
SQL>commit
2;
Commitcomplete.
看看TargetDB中是否有同样的记录存在呢
SQL>connectsajet/tech@goldenga
Connected.
SQL>selectcount(*)fromsajet.sys_emp
2whereemp_id=10000786;
COUNT(*)
----------
1
同步过来了。
我们可以看看EXT1进程的相关统计资讯
GGSCI(sajet-project)189>statsext1
SendingSTATSrequesttoEXTRACTEXT1...
StartofStatisticsat2010-03-0815:
47:
51.
DDLreplicationstatistics(foralltrails):
***Totalstatisticssinceextractstarted***
Operations40.00
Mappedoperations28.00
Unmappedoperations0.00
Otheroperations12.00
Excludedoperations0.00
Outputtod:
\ggs\dirdat\r1:
ExtractingfromGOLDENGATE.GGS_MARKERtoGOLDENGATE.GGS_MARKER:
***Totalstatisticssince2010-03-0509:
51:
51***
Nodatabaseoperationshavebeenperformed.
***Dailystatisticssince2010-03-0800:
00:
00***
Nodatabaseoperationshavebeenperformed.
***Hourlystatisticssince2010-03-0815:
00:
00***
Nodatabaseoperationshavebeenperformed.
***Lateststatisticssince2010-03-0509:
51:
51***
Nodatabaseoperationshavebeenperformed.
ExtractingfromSAJET.GOLDEGATETESTtoSAJET.GOLDEGATETEST:
***Totalstatisticssince2010-03-0509:
51:
51***
Totalinserts3.00
Totalupdates0.00
Totaldeletes0.00
Totaltruncates2.00
Totaldiscards0.00
Totaloperations5.00
***Dailystatisticssince2010-03-0800:
00:
00***
Nodatabaseoperationshavebeenperformed.
***Hourlystatisticssince2010-03-0815:
00:
00***
Nodatabaseoperationshavebeenperformed.
***Lateststatisticssince2010-03-0509:
51:
51***
Totalinserts3.00
Totalupdates0.00
Totaldeletes0.00
Totaltruncates2.00
Totaldiscards0.00
Totaloperations5.00
ExtractingfromSAJET.SYS_EMPtoSAJET.SYS_EMP:
***Totalstatisticssince2010-03-0509:
51:
51***
Totalinserts2.00
Totalupdates0.00
Totaldeletes0.00
Totaldiscards0.00
Totaloperations2.00
***Dailystatisticssince2010-03-0800:
00:
00***
Totalinserts2.00
Totalupdates0.00
Totaldeletes0.00
Totaldiscards0.00
Totaloperations2.00
***Hourlystatisticssince2010-03-0815:
00:
00***
Totalinserts2.00
Totalupdates0.00
Totaldeletes0.00
Totaldiscards0.00
Totaloperations2.00
***Lateststatisticssince2010-03-0509:
51:
51***
Totalinserts2.00
Totalupdates0.00
Totaldeletes0.00
Totaldiscards0.00
Totaloperations2.00
ExtractingfromSAJET.MLOG$_SYS_EMPtoSAJET.MLOG$_SYS_EMP:
***Totalstatisticssince2010-03-0509:
51:
51***
Totalinserts2.00
Totalupdates0.00
Totaldeletes0.00
Totaldiscards0.00
Totaloperations2.00
***Dailystatisticssince2010-03-0800:
00:
00***
Totalinserts