Goldengate配置手册.docx

上传人:b****4 文档编号:4083166 上传时间:2022-11-27 格式:DOCX 页数:15 大小:63.48KB
下载 相关 举报
Goldengate配置手册.docx_第1页
第1页 / 共15页
Goldengate配置手册.docx_第2页
第2页 / 共15页
Goldengate配置手册.docx_第3页
第3页 / 共15页
Goldengate配置手册.docx_第4页
第4页 / 共15页
Goldengate配置手册.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Goldengate配置手册.docx

《Goldengate配置手册.docx》由会员分享,可在线阅读,更多相关《Goldengate配置手册.docx(15页珍藏版)》请在冰豆网上搜索。

Goldengate配置手册.docx

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。

版本都为11.2.1.0.3。

2.2GoldenGate运行用户

国网直接使用oracle运行用户运行OGG,完全遵循Oracle已有用户属组和权限。

2.3为GoldenGate运行用户配置环境变量

确保为oracle和OGG运行用户配置动态库路径。

确保Oracle数据库的运行库(/lib)添加到操作系统的动态库环境变量中:

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

./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

./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和端口

RMTHOST100.12.98.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进程说明

说明:

同步的相关详细表清单请查看附件。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1