Goldengate配置手册.docx
- 文档编号:7528551
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:14
- 大小:22.56KB
Goldengate配置手册.docx
《Goldengate配置手册.docx》由会员分享,可在线阅读,更多相关《Goldengate配置手册.docx(14页珍藏版)》请在冰豆网上搜索。
Goldengate配置手册
1综述
1.1目的
本文档作为实施人员在使用OracleGoldenGate数据复制时作为详细设计的指导性规范。
1.2原则
在实施整个项目过程中实现各进程命令的规范化,并提供规划数据复制链路的设计原则。
2OGG设计原则
2.1OGG的版本及下载
AIX系统下目前安装的是ggs_AIX_ppc_ora11g_64bit.tar。
Linux64位系统目前安装的是fbo_ggs_Linux_x64_ora11g_64bit.tar。
版本都为。
2.2GoldenGate运行用户
国网直接使用oracle运行用户运行OGG,完全遵循Oracle已有用户属组和权限。
2.3为GoldenGate运行用户配置环境变量
确保为oracle和OGG运行用户配置动态库路径。
确保Oracle数据库的运行库(
LD_LIBRARY_PATH(Solaris,Linux),LIBPATH(AIX),SHLIB_PATH(HPUX)。
2.4网络设置
OGG只需要复制两端的IP地址之间能够建立TCP连接。
防火墙添加策略参考《防火墙策略申请表》(目前版本要填写两份,保证策略是双向的)即可。
2.5GoldenGate安装位置
由于是测试环境,当前并没有产生归档,检查当前OGG空间充足,用于OGG本身的安装以及缓存数据队列,可以参照以下原则配置OGG安装位置:
∙一个数据库上有多个Oracle实例同样安装一套GoldenGate;
∙OGG安装位置统一为/Golgengate目录
2.6OGGDDL复制
日常复制中,原则上不建议打开DDL复制。
因为:
1DDL的捕捉是通过源端建立Trigger来实现的,会对源数据库产生性能影响,尤其是对于业务量大的业务系统;
2由于两端的数据库存储结构和对象等不可能完全一致,源端能够执行的DDL语句到了目标端不一定能够执行成功,为此打开DDL复制需要较大的维护工作量;
3源端数据库发生DDL变化时,可以通过在目标端同样打补丁的方式予以解决,而不通过DDL复制。
如确因业务需求需要考虑打开DDL复制,可以采取在业务较闲阶段打开DDL复制的Trigger观察其对业务系统影响,如没有性能上的较大降低,可以考虑保留DDL复制。
需实时对于业务系统进行监控,观察其在业务高峰期是否正常。
DDL复制建议只复制最小的集合,如table、index、createuser等。
2.7OGG数据复制链路结构
OracleGoldenGate数据复制的链路结构如下图所示:
1)源端首先配置一个主Extract进程,负责从数据库日志中解析数据,然后将数据写入到本地队列;
2)源端再配置一个DataPumpExtract,用于将本地队列经由网络传输到目标端的远程队列;
3)目的端配置replicat进程,负责将传输到目标的队列文件写入数据库。
2.8OGG进程命名规则
2.8.1总述
⏹OGG的进程命名遵循规则
1)长度不超过8;
2)只建议包含字母和下划线,不建议使用数字和其它特殊字符。
⏹OGG的队列命名遵循规则
队列名称包含绝对路径或相对路径,以及作为标识的两个字母,如./dirdat/rt和/Goldengate/dirdat/rt均可,建议使用相对路径。
2.8.2主Extract进程命名规则
主Extract的命令建议格式如下:
e+源端数据属性或对应数据库缩写+“_”+目标数据库+[extract序列号]
其中
1)前面的一个字母e表示本进程为主Extract,负责抽取数据库日志;
2)下划线左边是源端复制的数据属性或者数据对应的源端数据库缩写,下划线右边对应目标数据库的缩写;
3)由于两个库之间可能有多个复制进程,在这就添加一个Extract序列号以示区别。
举例:
egs_zj9,ehx_jq0,phx_jk7
具体进程数量请参考下节的介绍。
2.8.3本地队列命名规则
本地队列命名建议格式如下:
或
./dirdat/xx
建议尽量采用相对路径格式,后面的两位字母一般为本地队列定义为g+一个标识字母,标识字母可以根据extract进程确定,有助于显式地将extract进程与队列联系起来。
例如:
./dirdat/ga
2.8.4DataPumpExtract进程命名规则
DataPumpExtract的命名建议格式如下:
p+源端数据属性或对应数据库缩写+“_”+目标数据库+[extract序列号]
其中
1)dpe表示本进程为datapumpextract,以与主extract区分开。
2)后面几位命名要求严格与extract对应,即extract如果是egs_zj9,则对应的datapump进程命令为pgs_zj9,以便于识别那个dpe与哪个ext进程对应。
2.8.5本地队列命名规则
本地队列命名建议格式如下:
或
./dirdat/xx
建议尽量采用相对路径格式,后面的两位字母一般远程队列定义为r+一个标识字母,标识字母保持与本地队列一致。
例如,
本地队列./dirdat/ga,远程队列./dirdat/ra。
2.8.6Replicat进程命名规则
Replicat的命名建议格式如下:
r+源端数据属性或对应数据库缩写+“_”+目标数据库+[投递序列号]
其中
1)前面一个字母r表示本进程为replicat进程,负责向数据库投递数据;
2)下划线左边是源端复制的数据属性或者数据对应的源端数据库缩写,下划线右边对应目标数据库的缩写;
3)如果一个队列数据较多,需要拆分为多个replicat,则可以在后面加上1-2位阿拉伯数字的序列号以示区别。
以下为一个复制链路的命名示例,其中有一个extract和一个datapump和三个replicat:
Extract:
ezsj_gs1
本地队列:
./dirdat/zg
DataPumpExtract:
pzsj_gs1
远程队列:
./dirdat/rg
Replicat:
rzsj_gs1
2.9OGG进程数量设计
2.9.1主Extract进程设计
OracleGoldenGate的Extract进程处理能力根据主机、操作系统、内存、磁盘IO等因素会有所不同,但其总体处理能力较强,请参照以下原则设定其数量:
1)对于每个数据库实例至少需要一个单独的extract;
2)各进程之间应当分别负责不同的数据库实例、schema、业务表集合,并且各进程之间尽量实现负载均衡。
2.9.2DataPump进程设计
仅一条:
1)DataPump与主Extract必须一一对应。
2.9.3Replicat进程设计
Replicat进程设计原则如下:
1)每个远程队列至少有一个replicat负责;
2)每个replicat进程能够处理的队列大小要根据系统配置、数据库性能、数据结构如表是否有主键和索引等而定,一般需要经过一段时间实际运行方可获得可靠数据。
相对extract而言,replicat的处理能力要差很多,经常需要将一个trail拆分为多个replicat并行处理。
3)Replicat如需拆分,按照schema、业务所涉及表范围、表名称前缀等方法进行依次拆分,经常需要多次拆分方能达到最佳效果。
可以查看源端extract的报告或者使用stats命令找出变化较频繁的表,为一个或几个这些大数量级表单独配置投递进程。
以下为一个trail拆分为多个replicat的示例:
Extract示例:
EXTRACTextgb
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERIDgoldengate,PASSWORDXXXX
EXTTRAIL./dirdat/gb
Dynamicresolution
--这里共有两个schema
tableUCR_UIF1.*;
tableUCR_UEC.*;
DataPump与Extract类似,略。
Replicat示例:
replicatrepgbp
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERIDgoldengate,PASSWORDXXXX
……………………
Dynamicresolution
--本replicat负责一个schema
mapUCR_UIF1.*,targetUCR_UIF1.*;
replicatrepgbt
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERIDgoldengate,PASSWORDXXXX
…………………….
Dynamicresolution
--本replicat负责另一个schema中的一张大表
MapUCR_UEC.TF_O_SELFSERVICE_STATE,targetUCR_UEC.TF_O_SELFSERVICE_STATE;
replicatrepgbu
setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERIDgoldengate,PASSWORDXXXX
…………………….
dynamicresolution
--本replicat负责另一个schema中除去上述大表外的所有表
MAPEXCLUDEUCR_UEC.TF_O_SELFSERVICE_STAT
mapUCR_UEC.*,targetUCR_UEC.*;
3GG实施步骤
3.1准备
a.为GoldenGate软件划分目录为/Goldengate,存储空间充足;
b.数据库必须处于归档模式,建议保留10天的归档日志;
c.不同厂商之间数据同步由双方工程师共同确定所需要复制的表以及划分复制通道。
d.为GoldenGate防火墙开端口7809,7840-7850(在源和目标端)
3.2创建运行GoldenGate的用户
1)在源端采用ORACLE用户运行GoldenGate
2)创建GG安装位置:
/Goldengate
3)创建GoldenGate数据库用户ggs
$sqlplus/assysdba
SQL>createuserggsidentifiedbyXXXX;
SQL>grantconnect,resource,dbatoggs;
SQL>exit;
4)检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式
SQL>archiveloglist;
5)检查源端数据库附加日志是否打开
SQL>selectsupplemental_log_data_minfromv$database;
a)将数据库附加日志打开
SQL>alterdatabaseaddsupplementallogdata;
b)切换日志以使附加日志生效
--SQL〉Altersystemswitchlogfile;
Select*fromv$transaction
3.3安装GoldenGate
通过sftp上传GoldenGate软件包道安装目录,并解压缩
tar-xvf*.tar
在ggsci环境下创建GoldenGate子目录,createsubdirs
Shell>ggsci
GGSCI>CREATESUBDIRS
GGSCI>EXIT
3.4添加变量
vi.bash_profile
exportGG_HOME=/Goldengate
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:
\$GG_HOME:
\$LD_LIBRARY_PATH
3.5增加附加日志
在GGSCI命令行中登陆数据库,为需要复制的数据表添加trandata
a)执行完毕通过下列sql检查,查看那些表已经添加了附加日志:
Infotradataschema.table
b)如果发现尚有部分表未添加附加日志,需有手工添加,例:
Ggsci>dbloginuseridggs,passwordXXXX
如果该表有主键:
Ggsci>addtrandataschema.table
Ggsci>addtrandataschema.table
--Ggsci>addtrandataschema.*
3.6OGG源端配置
现在以一条完整的链路为例,详细演示各进程的配置方法。
3.6.1MGR进程参数模板
GGSCI>editparammgr
--Manager使用的端口
port7809
DYNAMICPORTLIST7840-7850
--自动启动所有的Extract进程
--AUTOSTARTEXTRACT*
--自动重启所有的Extract,每隔2分钟重试,重试次数5次
AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES2
--每隔1小时检查延迟报告
--LAGREPORTHOURS1
--每隔30分钟检查延迟,如果超过延迟阀值,将写入错误日志
--LAGINFOMINUTES30
--延迟阀值45分钟
--LAGCRITICALMINUTES45
3.6.2主Extract进程参数模板
当前源端IP:
100.12.XXX.XXXSID:
bjscgshx1
为egs_zj9进程配置参数:
GGSCI>editparamegs_zj9
--Extract进程名
EXTRACTegs_zj9
--设置环境变量
SETENV(ORACLE_SID="bjscgshx1")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
--GoldenGate用户名、密码
useridggs,passwordXXXX
--捕获Truncate操作
GETTRUNCATES
REPORTAT01:
59
REPORTROLLOVERAT02:
00
TRANLOGOPTIONSCONVERTUCS2CLOBS
EXTTRAIL./dirdat/xt
NUMFILES3000
EOFDELAYCSECS30
GETTRUNCATES
tranlogoptionsasmusersys@asm,asmpasswordXXXX
--动态解析表名
DYNAMICRESOLUTION
DBOPTIONSALLOWUNUSEDCOLUMN
FETCHOPTIONSNOUSESNAPSHOT
FETCHOPTIONSSUPPRESSDUPLICATES
FETCHOPTIONSFETCHPKUPDATECOLS
WARNLONGTRANS3H,CHECKINTERVAL3M
TABLEGS_HX.CS_FYKCBZ;
TABLEGS_HX.DM_DJ_BGDJXM;
Ø添加egs_zj9进程,从数据库日志中抓取有效数据
GGSCI(HYGSDBDQ03)11>addextractegs_zj9,tranlog,threads2,beginnow
GGSCI(HYGSDBDQ03)14>addexttrail./dirdat/xt,extractegs_zj9,megabytes100
Ø检查配置情况:
GGSCI>INFOEXTTRAIL*
GGSCI>STARTEXTRACTegs_zj9
GGSCI>VIEWREPORTegs_zj9
3.6.3DataPump传输进程参数模板
对应的抽取进程为egs_zj9
为对相应的抽取进程配置相应的传输进程:
GGSCI>editparampgs_zj9
--DataPump进程名称
EXTRACTpgs_zj9
--设置环境变量
SETENV(ORACLE_SID="bjscgshx1")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
REPORTAT01:
59
REPORTROLLOVERAT02:
00
FLUSHCSECS30
NUMFILES3000
EOFDELAYCSECS30
--目标机器IP和端口
XX,MGRPORT7809,TCPBUFSIZE100000,TCPFLUSHBYTES300000
--队列文件在目标端的存放位置
rmttrail./dirdat/zf
--采用pass-through模式处理表
PASSTHRU
--动态解析表名
DYNAMICRESOLUTION
--要复制的表清单
TABLEGS_HX.*;
Ø添加pgs_zj9进程,将本地队列的数据抽取出来
GGSCI(HYGSDBDQ03)33>addextractpgs_zj9,exttrailsource./dirdat/xt
Ø添加远端队列,将pgs_zj9进程捕捉到的数据将写入该队列
GGSCI(HYGSDBDQ03)34>addrmttrail./dirdat/rt,extractpgs_zj9,megabytes100
Ø检查配置情况
GGSCI>STARTEXTRACTpgs_zj9
GGSCI>INFOEXTRACTpgs_zj9
3.7OGG目标端配置
3.7.1安装GoldenGate
通过sftp上传GoldenGate软件包道安装目录,并解压缩
tar-xvf*.tar
在ggsci环境下创建GoldenGate子目录,createsubdirs
Shell>ggsci
GGSCI>CREATESUBDIRS
GGSCI>EXIT
3.7.2添加变量
在oracle用户的.bash_profile文件中添加:
vi.bash_profile
exportGG_HOME=/Goldengate
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:
\$GG_HOME:
\$LD_LIBRARY_PATH
3.7.3MGR进程配置
GGSCI>editparammgr
--Manager使用的端口
port7809
DYNAMICPORTLIST7840-7850
--自动启动所有的Extract进程
--AUTOSTARTEXTRACT*
--自动重启所有的Extract,每隔2分钟重试,重试次数5次
AUTORESTARTEXTRACT*,RETRIES5,WAITMINUTES2
--每隔1小时检查延迟报告
LAGREPORTHOURS1
--每隔3分钟检查延迟,如果超过延迟阀值,将写入错误日志
LAGINFOMINUTES3
--延迟阀值5分钟
LAGCRITICALMINUTES5
3.7.4数据入库Replicat进程参数模板
当前目标端IP:
100.12.XX.XX
SID:
bjsczsj1
GGSCI>editparamsrgs_zj9
--Replicat进程名称
replicatrgs_zj9
SETENV(ORACLE_SID="bjsczsj1")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
--GoldenGate用户名、密码
USERIDggs,PASSWORDXXXX
sqlexec"Altersessionsetcommit_write=nowait"
REPORTAT01:
59
REPORTROLLOVERAT02:
00
--除重处理
--HANDLECOLLISIONS
REPERRORDEFAULT,ABEND
--REPERRORDEFAULT,DISCARD
DISCARDFILE./dirrpt/rt.dsc,append,megabytes100
DISCARDROLLOVERAT06:
00
ASSUMETARGETDEFS
--复制Truncate操作
--GETTRUNCATES
--允许Update操作前后值一样的复制
ALLOWNOOPUPDATES
DYNAMICRESOLUTION
NUMFILES3000
EOFDELAYCSECS30
GETTRUNCATES
BATCHSQLBATCHESPERQUEUE200,OPSPERBATCH2000
--要复制的表清单
MAPGS_HX.*,TARGETGS_ZSJ.*;
Ø添加rgs_zj9进程,从数据库日志中抓取有效数据。
执行一下命令的时候需要export对应的ORACLE_SID,在目标端创ggs_checkpoint.
exportORACLE_SID=bjsczsj1
GGSCI(HYGSDBDQ01)12>dbloginuseridggs,passwordXXXX
GGSCI(HYGSDBDQ01)12>addcheckpointtableggs.ggs_checkpoint
GGSCI(HYGSDBDQ01)12>addreplicatrgs_zj9,exttrail./dirdat/rt,checkpointtableggs.ggs_checkpoint
GGSCI>STARTREPLICATreplsb
Ø检查配置情况:
GGSCI>INFOREPLICATreplsb
3.8启动GoldenGate进程
3.8.1启动源端管理进程
GGSCI>startmgr
3.8.2启动目标端管理进程
GGSCI>startmgr
3.8.3启动源端抽取进程
GGSCI>starte*
3.8.4启动源端传输进程
GGSCI>startp*
3.8.5启动目标端入库进程
GGSCI>startr*
4GG初始化说明
4.1数据库说明
4.2数据库信息
4.3Goldengate同步内容
4.3.1Goldengate进程说明
4.3.2与外部其他系统Goldengate进程说明
说明:
同步的相关详细表清单请查看附件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Goldengate 配置 手册