GoldenGate基本原理安装过程和基本维护.docx
- 文档编号:17550233
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:17
- 大小:240.54KB
GoldenGate基本原理安装过程和基本维护.docx
《GoldenGate基本原理安装过程和基本维护.docx》由会员分享,可在线阅读,更多相关《GoldenGate基本原理安装过程和基本维护.docx(17页珍藏版)》请在冰点文库上搜索。
GoldenGate基本原理安装过程和基本维护
一、GoldenGate介绍ﻩ1
二、GoldenGate安装实施4
2.1创建GoldenGate软件安装目录ﻩ4
2.2GoldenGate的管理用户ﻩ4
2.3安装GoldenGate软件5
2.5打开数据库的附加日志6
2.6开启数据库强制日志模式6
2.7创建GoldenGate管理用户ﻩ6
2.8编辑GLOBALS参数文件7
2.9管理进程MGR参数配置ﻩ7
2.10抽取进程EXTN参数配置8
2.13数据初始化11
2.14 容灾端管理进程MGR参数配置13
2.15编辑GLOBALS参数文件ﻩ14
2.16 容灾端复制进程REPN参数配置ﻩ14
三.GoldenGate基本运维命令ﻩ16
四、常见故障排除17
一、GoldenGate介绍
GoldenGate软件是一种基于日志的结构化数据复制软件。
GoldenGate能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。
GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等。
GoldenGate基本架构
OracleGoldenGate主要由如下组件组成
● Extract
●Data pump
●Trails
● Collector
●Replicat
●Manager
Oracle GoldenGate 数据复制过程如下:
利用抽取进程(ExtractProcess)在源端数据库中读取OnlineRedoLog或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trailfile)中。
再利用传输进程将队列文件(trailfile)通过TCP/IP传送到目标系统。
目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息,把信息缓存到GoldenGate队列文件(trailfile)当中,等待目标端的复制进程读取数据。
GoldenGate复制进程(replicatprocess)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。
二、GoldenGate安装实施
2.1创建GoldenGate软件安装目录
在数据库服务器上创建文件系统:
/u01/gg,作为GoldenGate的安装目录。
2.2 GoldenGate的管理用户
安装GoldenGate软件和维护GoldenGate软件时,可以使用系统上的oracle用户。
GoldenGate安装目录的所有者必须是GoldenGate管理用户,本次实施过程中使用oracle用户作为GoldenGate管理用户,添加oracle用户的环境变量(在生产端和容灾端均要进行以下操作):
export GG_HOME=/u01/gg
exportLD_LIBRARY_PATH=$GG_HOME:
$ORACLE_HOME/lib:
/usr/bin:
/lib
exportPATH=$GG_HOME:
$PATH
2.3安装GoldenGate软件
切换到oracle用户,将GG软件的压缩包存放到GoldenGate安装目录下,即/u01/gg,将这个压缩包进行解压到GoldenGate安装目录下(在生产端和容灾端均要进行以下操作):
tar -zxvf*.gz
进入到GoldenGate安装目录,运行GGSCI命令以进入GG界面(在生产端和容灾端均要进行以下操作):
cd /u01/gg
./ggsci
在GGSCI界面下创建子目录(在生产端和容灾端均要进行以下操作):
GGSCI>create subdirs
至此,GoldenGate软件安装完毕。
2.4设置数据库归档模式
查看数据库的归档模式:
SQL>archive loglist;
如果是非归档模式,需要开启归档模式:
shutdown immediate;
startup mount;
alterdatabase archivelog;
alter databaseopen;
2.5打开数据库的附加日志
打开附加日志并切换日志(保证Online redolog和Archivelog一致)
alterdatabaseaddsupplementallogdata;
alterdatabaseadd supplementallogdata(primary key,unique,foreignkey) columns;
alter systemswitchlogfile;
2.6开启数据库强制日志模式
alterdatabase force logging;
2.7创建GoldenGate管理用户
在生产端和容灾端均要进行以下操作:
--createtablespace
SQL>createtablespace oggdatafile '$ORACLE_BASE/oradata/test/ogg01.dbf' size 300M ;
--create theuser
SQL>createuserogg identifiedbyoggdefaulttablespaceogg;
--grantrole privileges
SQL>grant resource,connect,dbatoogg;
2.8编辑GLOBALS参数文件
切换到GoldenGate安装目录下,执行命令:
cd/u01/gg
./ggsci
GGSCI>EDITPARAMS./GLOBALS --指定进行DDL复制的数据库用户,DML可不配置
在文件中添加以下内容:
GGSCHEMAogg --指定的进行DDL复制的数据库用户
CHECKPOINTTABLEogg.checkpoint
利用默认的密钥,生成密文:
GGSCI>encryptpassword ogg encryptkeydefault
Encryptedpassword:
AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB
记录这个密文,将在以下进程参数的配置中使用。
2.9管理进程MGR参数配置
PORT 7839
DYNAMICPORTLIST7840-7860
--AUTOSTART *
AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES3
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS,MINKEEPDAYS7
LAGREPORTHOURS1
LAGINFOMINUTES 30
LAGCRITICALMINUTES45
以下两句用于DDL,单独配置DML时,可不添加
PURGEDDLHISTORY MINKEEPDAYS11,MAXKEEPDAYS 14
PURGEMARKERHISTORYMINKEEPDAYS11,MAXKEEPDAYS14
2.10在目标端配置GoldenGate软件复制进程
Dbloginuseridogg,password ogg
Addcheckpointtable ogg.checktable
2.11抽取进程EXTN参数配置
Addextractextn,tranlog,beginnow
Addexttrail./dirdat/na,extractextn,megabytes100
EXTRACTextn
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
useridogg, passwordAACAAAAAAAAAAADAHBLDCCIIOIRFNEPB, ENCRYPTKEY default
REPORTCOUNTEVERY1MINUTES, RATE
DISCARDFILE ./dirrpt/discard_extn.dsc,APPEND,MEGABYTES1024
DBOPTIONSALLOWUNUSEDCOLUMN
WARNLONGTRANS 2h,CHECKINTERVAL3m
EXTTRAIL./dirdat/na
TRANLOGOPTIONS EXCLUDEUSEROGG
TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT%t_%s_%r.dbf
FETCHOPTIONSNOUSESNAPSHOT
TRANLOGOPTIONSCONVERTUCS2CLOBS
TRANLOGOPTIONSaltarchivelogdestprimaryinstance test/oradata/arch
--TRANLOGOPTIONSRAWDEVICEOFFSET0
DYNAMICRESOLUTION
以下两句是配置DDL需要:
DDLINCLUDEALL
DDLOPTIONSaddtrandata,NOCROSSRENAME, REPORT
tableQQQ.*;
table CUI.*;
2.11传输进程DPEN参数配置
Addextractdpen,exttrailsource./dirdat/na
Addrmttrail./dirdat/na,extractdpen
EXTRACTdpen
RMTHOST192.168.56.7,MGRPORT 7839,compress
PASSTHRU
numfiles50000
RMTTRAIL./dirdat/na
TABLEQQQ.*;
TABLECUI.*;
2.12建立OGG的DDL对象
$ cd/u01/gg
$ sqlplus"/assysdba"
SQL>@marker_setup.sql
EnterGoldenGateschemaname:
ogg
altersystem setrecyclebin=off;
SQL>@ddl_setup.sql
Enter GoldenGateschemaname:
ogg
SQL>@role_setup.sql
Grantthis role toeach user assigned to the Extract,Replicat,GGSCI,and Managerprocesses,byusingthefollowing SQLcommand:
SQL>GRANTGGS_GGSUSER_ROLE TO<loggedUser>
where
注意这里的提示:
需要手工将这个GGS_GGSUSER_ROLE指定给extract所使用的数据库用户(即参数文件里面通过userid指定的用户),可以到sqlplus下执行类似的sql:
SQL>GRANTGGS_GGSUSER_ROLETOogg;
注:
这里的ogg是extract使用的用户。
如果你有多个extract,使用不同的数据库用户,则需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。
运行以下脚本,使触发器生效:
SQL>@ddl_enable.sql
注:
在生产端开启抽取前,先禁用DDL捕获触发器,调用ddl_disable.sql。
2.13数据初始化
在初始化过程中,源数据库不需要停机,初始化过程分为三个部分:
Ø生产端开启抽取进程;
Ø生产端导出数据;
Ø容灾端导入数据;
在生产端添加抽取进程、传输进程以及相应的队列文件,执行命令如下:
//创建进程 EXTN
GGSCI>add extractextn,tranlog,begin now
GGSCI>addexttrail./dirdat/na,extractextn,megabytes500
//创建进程DPEN
GGSCI>addextract dpen,exttrailsource./dirdat/na
GGSCI>addrmttrail./dirdat/na,extract dpen,megabytes500
在生产端启动管理进程:
GGSCI> startmgr
启用DDL捕获trigger:
$cd/u01/gg
$ sqlplus “/assysdba”
SQL>@ddl_enable.sql
在生产端启动抽取进程:
GGSCI>startEXTN
在数据库中,获取当前的SCN号,并且记录这个SCN号:
SQL>select to_char(dbms_flashback.get_system_change_number)fromdual;
603809
在数据库中,创建数据泵所需目录并赋予权限:
SQL>CREATEOR REPLACEDIRECTORYDATA_PUMPAS'/u01';
SQL>grantread,writeon DIRECTORYDATA_PUMP to ogg;
在生产端利用数据泵导出数据:
expdp ogg/oggschemas='QQQ'directory=DATA_PUMPdumpfile=QQQ_bak_%U flashback_scn=123456789logfile=expdp_QQQ.logfilesize=4096m
expdpogg/oggschemas='CUI'directory=DATA_PUMPdumpfile=CUI_bak_%Uflashback_scn=123456789 logfile=expdp_CUI.logfilesize=4096m
expdpogg/oggschemas='test1'directory=DATA_PUMPdumpfile=test1_bak_%U flashback_scn=603809logfile=expdp_QQQ.logfilesize=4096m
把导出的文件传输到容灾端,利用数据泵将数据导入:
Impdp ogg/ogg DIRECTORY=DATA_PUMPDUMPFILE=QQQ_bak_%U logfile=impdp_QQQ.log
Impdp ogg/ogg DIRECTORY=DATA_PUMPDUMPFILE=CUI_bak_%Ulogfile=impdp_CUI.log
2.14容灾端管理进程MGR参数配置
PORT 7839
DYNAMICPORTLIST7840-7860
--AUTOSTARTER*
--AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints,minkeepdays2
useridogg,password AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB,ENCRYPTKEYdefault
2.15编辑GLOBALS参数文件
切换到GoldenGate安装目录下,执行命令:
cd/u01/gg
./ggsci
ggsci>EDITPARAMS ./GLOBALS
在文件中添加以下内容:
GGSCHEMAogg--指定的进行DDL复制的数据库用户
2.16容灾端复制进程REPN参数配置
REPLICATrepn
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
useridogg,passwordAACAAAAAAAAAAADAHBLDCCIIOIRFNEPB,ENCRYPTKEYdefault
SQLEXEC"ALTERSESSIONSETCONSTRAINTS=DEFERRED"
REPORTAT01:
59
REPORTCOUNTEVERY30MINUTES,RATE
REPERRORDEFAULT,ABEND
assumetargetdefs
DISCARDFILE./dirrpt/repna.dsc,APPEND,MEGABYTES1024
DISCARDROLLOVERAT02:
30
ALLOWNOOPUPDATES
REPERROR (1403,discard)
DDL INCLUDEMAPPED
DDLOPTIONSREPORT
MAPEXCLUDE QQQ.T0417
MAP QQQ.*,TARGETQQQ.*;
MAP CUI.*,TARGETCUI.*;
2.17创建复制进程repn
执行以下命令创建复制进程repn:
GGSCI>addreplicatrepn, exttrail./dirdat/na,nodbcheckpoint
2.18启动生产端传输进程和容灾端复制进程
GGSCI>start dpen
GGSCI>startREPLICATrepn aftercsn 123456789
2.19测试场景
(1)在生产端数据库上,创建一张表。
(2)在生产端数据库上,修改这个张表的数据。
(3)在生产端数据库上,删除这张表。
三.GoldenGate基本运维命令
(1)查看进程状态
GGSCI>info all
——查看GG整体运行情况,比如进程Lag延时,检查点延时。
GGSCI>info <进程名>
——查看某个进程的运行状况,比如抽取进程正在读取哪个归档日志或者联机重做日志,传输进程正在传送哪一个队列文件,复制进程正在使用哪一个队列文件。
GGSCI>info <进程名> showch
——查看某个进程运行的详细信息。
(2)查看进程报告
GGSCI>view report<进程名>
——报错时,从进程报告里获取错误信息。
(3)在操作系统上,查看GoldenGate安装目录的使用率
$df-h
——查看ogg目录是否撑满。
四.Logdump工具使用
五.Goldengate初级的性能优化
Batchsql
Insertabend
限制内存使用
颗粒度拆分
六、goldengate版本升级
七、goldengate双向复制
八、生产库与容灾库之间的回切
八、异构数据库之间的数据转换,数据过滤筛选
四、常见故障排除
故障
(1)
错误信息:
OGG-00446 Couldnotfind archivedlog forsequence53586thread1underalternative destinations.SQL<SELECTMAX(sequence#)FROM v$logWHERE thread#=:
ora_thread>.Lastalternativelogtried/arch_cx/1_53586_776148274.arc.,errorretri
evingredofilenamefor sequence53586,archived= 1,use_alternate =0Notabletoestablishinitial position for sequence53586,rba
44286992.
处理办法:
将缺失的归档日志从备份中恢复出来。
如果依旧找不到所需归档日志,那么只能重新实施数据初始化。
故障
(2)
错误信息:
OGG-01154 Oracle GoldenGateDelivery forOracle,repn.prm:
SQLerror 1691mappingDATA_USER.DMH_WJXXB to DATA_USER.DMH_WJXXBOCIErrorORA-01691:
unableto extendlobsegmentDATA_USER.SYS_LOB0000083691C00014$$by16384intablespaceDATA_USER_LOB_U128M_1 (status= 1691),SQL
处理办法:
数据库中该表空间已满,需要对该表空间进行扩容。
故障(3)
错误信息:
OGG-00664 OCIError duringOCIServerAttach(status=12541-ORA-12541:
TNS:
no listener).
处理方法:
启动数据库的监听器。
故障(4)
错误信息:
OGG-00665OCIError describeforquery(status=3135-ORA-03135:
connectionlost contact
ProcessID:
8859
SessionID:
131Serialnumber:
31),SQL<SELECTDECODE(archived, 'YES', 1,0),statusFROMv$logWHEREthread# =:
ora_threadAND sequence#= :
ora_seq_no>.
处理方法:
在没有关闭OGG进程的情况下,提前关闭了数据库,导致OGG进程出现异常。
如果是发现了这个错误提示,应该马上关闭OGG进程,注意数据库的归档日志情况,保证归档日志不会缺失,然后等待数据库启动成功后,马上启动OGG进程。
故障(5)
错误信息:
OGG-01161 Badcolumn index(4)specifiedfor tableQQQ.TIANSHI,max columns=4.
处理方法:
对照一下生产端与容灾端的这一张表的表结构,如果容灾端的表缺少一列,则在容灾端,登陆数据库,增加这一列,然后启动复制进程。
故障(6)
错误信息:
ERROR OGG-00199 TableQQQ.T0417 doesnotexistin target database.
处理方法:
查看源端抽取进程的参数,DDL复制参数是否配置,针对这张表,重新实施数据初始化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GoldenGate 基本原理 安装 过程 基本 维护
![提示](https://static.bingdoc.com/images/bang_tan.gif)