GoldenGate使用报告Word格式文档下载.docx
- 文档编号:22419046
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:24
- 大小:500.99KB
GoldenGate使用报告Word格式文档下载.docx
《GoldenGate使用报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《GoldenGate使用报告Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
数据传输过程中支持128位加密和数据压缩功能。
Oracle公司的GoldenGate产品,可以在异构的IT基础结构之间实现大量数据的秒一级的数据捕捉、转换和投递。
GoldenGate可以支持几乎所有常用操作系统如和数据库平台,如下表所示:
操作系统
数据库
MSNT,2000,XP,Linux,SunSolaris,HP-UX,IBMAIX,HPNonStop,TRU64,IBMz/OS,OS/390
Oracle,DB2,MSSQLServer,MySQL,Enscribe,SQL/MP,SQL/MX,Sybase,Teradata,其他ODBC兼容数据库
2、测试目的和测试环境
2.1测试目的
由于公司没有使用过GoldenGate软件,在今后的项目中有实时性较高、多种异构数据源、同步数据量大以及数据源分布地域较广的复杂情况,需要使用新的同步软件和机制以应对。
为了配合产品选型和方案制定,故本次对GoldenGate产品的测试主要目的有如下:
(1)测试使用GoldenGate的实时同步功能,并对同步性能进行初步估测。
(2)测试GoldenGate对几种常见数据源的支持。
(3)测试使用GoldenGate进行实时同步时的数据转换功能。
(4)记录配置使用过程和使用中遇到问题,方便今后查阅。
并希望能做为一份GoldenGate的基础配置资料,方便其他朋友学习。
本次测试主要为试用评估,配置和参考文档均为ORACLE提供的使用配置文档,测试的GoldenGate版本主要为10.4,mysql测试部分使用GoldenGate11.1版本(新版本才推出支持的GG安装包),两个版本并没有很大差别。
2.2测试使用环境
(1)测试PC机基本参数:
Intel(R)Pentium(R)双核3.00GHZ,3.00GHZ2G内存。
(2)32位WindowsXPSP3,以下所有的安装配置都是基于win32系统。
(3)Oracle10.2.0.1,DB29.7,Sybase12.5,MySQL5.1.52。
由于人力以及测试条件所限,而且测试范围较小,步骤也不甚规范,测试仅限于在同一PC机上进行,所以无法提供精确的性能测试数据,只能算是一次初步估测。
本人也是初次接触使用GoldenGate,错误之处在所难免。
2.3约定
为统一表示命令和便于查看,作如下约定:
GG_HOME>
表示从操作系统命令行(cmd)进入GoldenGate安装路径下执行命令。
GGSCI>
表示在GoldenGate命令环境中执行命令。
SQL>
表示在数据库下执行SQL语句
/***
***/表示配置文件内容,/***不包含在内。
<
>
表示自定义参数,如自定义表名<
tablename>
3、安装GoldenGate
在官方网站下载相应版本的GoldenGate安装包(OS、32位/64位、databaseversion),解压安装文件,然后拷贝至适当的文件夹下面(文件路径不要包含中文、空格)。
Windows操作系统需要首先下载安装MicrosoftVisualC++2005SP1发行包。
进入操作系统命令行(cmd),进入安装路径下,执行:
GG_HOME>
ggsci--进入GoldenGate命令窗口模式
CREATESUBDIRS--建立子目录
editparammgr--配置GoldenGate主进程参数
由于第一次执行该命令,会提示创建mgr参数文件,点“是”并在文本中输入如下参数:
PORT7801--GoldenGate主进程端口号
DYNAMICPORTLIST7802-7820--GoldenGate为进程间通讯动态分配的端口段
PURGEOLDEXTRACTSd:
\tools\GG\gg10g\dirdat\*--删除过期的trail文件
***/
保存,生成的参数文件保存在GG_HOME\dirprm下
此时可以启动GoldenGate主控制进程:
startmgr
infoall--查看进程状态
如果进程MANAGER状态显示为RUNNING则表示主进程已在运行。
也可以将GoldenGate主进程作为系统服务进行管理,如下配置:
editparam./globals--配置全局参数,注意前面的./表明与其他参数文件位置不同
输入:
MGRSERVNAME<
name>
--GoldenGate主进程端口号,<
为自定义的系统服务名
installaddserviceaddevents--完成后可以直接进服务进行管理
installdeleteeventsdeleteservice--对应删除服务操作
4、GoldenGate同步测试
同步测试的准备工作中,有一部分是共通的,如下:
(1)在源端和目标端建立相同结构的两个表,建立主键。
保证复制的对象在一开始是一致的。
(2)保证没有相关对象的触发器或设置失效。
(3)数据库需要开启必须的日志模式。
(4)源端和目标端都需要安装相应版本的GoldenGate软件,并分配一个有DBA权限的数据库用户给GoldenGate用以连接数据库。
4.1oracle之间同步
4.1.1oracle数据库设置
首先安装好ORACLE,并设置好ORACLE_SID,ORACLE_HOME等环境变量(单实例环境不是必需)。
Oracle数据库需要开启归档日志,并开启最小附加日志模式。
selectsupplemental_log_data_minfromv$database;
--查看是否开启了最小附加日志模式
alterdatabaseaddsupplementallogdata;
--开启最小附加日志模式
实际生产应用中,最好同时打开ORACLE的强制日志模式,以防止源数据库因直接路径加载忽略redo生成而导致这部分数据无法同步:
selectforce_loggingfromv$database;
Alterdatabaseforcelogging;
光开启最小附加日志模式还不够,还需要在GoldenGate中使用addtrandata命令强制重做日志记录主键值,以保证在目标端能成功复制:
dbloginuseridddw,passwordddw--GoldenGate中登录OARCLE数据库
addtrandataddw.<
--表名可以使用通配符
4.1.2dml同步
4.1.2.1一对一的实时同步配置
复制流程如图:
打开mgr主进程,添加提取进程(extract):
addextractextl,tranlog,beginnow--新增抽取进程extl,基于日志方式,立即生效
需要注意的是,GoldenGate中的进程名最长只能8个字符。
editparamextl--生成并编辑同名配置文件
extractextl--抽取进程名
useridddw,passwordddw--连接本机DB的帐号密码
rmthost192.168.0.44,mgrport7801--目标数据库服务器地址和GG服务端口号
rmttraild:
\tools\GG\gg10g\dirdat\rl--远程队列的位置(下一步建的东西)
dynamicresolution--优化参数,动态分析表结构
gettruncates--抓取truncate数据
tableddw.aatest;
--需要抽取的表,可以使用通配符
然后给这个提取进程配置远端队列位置,即图中的RMTTRAIL:
addrmttraild:
\tools\GG\gg10g\dirdat\rlextractextl
需要注意的是,这里的rl是指以后生成的trail文件都会以rl开头,如rl000001,这个文件头名称最长只能2个字符=。
=
开启这个提取进程:
startextl
infoall--查看所有进程状态
此时extl进程running则表示已成功运行,这时开始会在前面指定的目标端队列位置生成trail文件。
如果进程出错,可以使用viewreportextl查看错误信息。
接下来配置目标段,
在目标端GoldenGate命令行中配置复制进程:
addreplicatreplexttraild:
\tools\GG\gg10g\dirdat\rl,beginnow,nodbcheckpoint–新增复制进程,使用本地队列rl,即刻开始,不将检查点写入数据库
editparamrepl--配置复制进程参数
replicatrepl--复制进程名
useridddw,passwordddw--目标数据库的帐号密码
assumetargetdefs--两台数据库数据结构一致则使用此参数
reperrordefault,discard--如果复制数据出错则忽略,
discardfileD:
\repsz.dsc,append,megabytes100--错误信息写入XXXX文件,追加模式,最大100m
gettruncates--复制truncate操作
mapddw.aatest,targetddw.aatest_1;
--映射关系,注意target前必须留一个空格
--mapddw.aatest,targetddw.aatest_1,keycols(name),where(TYPE1="
1"
)
--加两横杠在配置文件中进行注释;
keycols指定唯一键;
where筛选数据
开启复制进程:
startrepl
至此,一个最简单的同步配置完成,对于源数据库相应表的insert,update,delete和truncate操作都将通过日志捕获并同步到目标数据库。
4.2.1.2使用datapump
加入datapump进行数据传输的流程:
这里的datapump与ORACLE10g推出的数据泵不是一个概念。
在GoldenGate中,datapump相当于一个次级提取进程(secondaryextract)。
在上面演示的同步流程中,提取进程直接将提取的redo信息经过处理后放置到了目标端服务器上,当两者之间的网络出现故障时,会因无法生成trail文件而导致提取进程崩溃,错误提示类似如下:
2010-11-1210:
01:
21GGSERROR150TCP/IPerror10061(由于目标机器积极拒绝,无法连接。
);
retriesexceeded.
21GGSERROR190PROCESSABENDING.
而加入datapump后,主提取进程(即第一个extract)首先将trail生成在本地,然后datapump读取本地trail再发送到目标服务器,即便网络故障,主提取进程仍然能随着事务生成trail文件,而datapump则会暂时停止传输,等待网络通畅后在将堆积的本地trail文件发送至目标服务器,从而实现了断点传输的功能。
在实际应用中,每一个同步流程都应该配置datapump以应对网络问题。
加入datapump的配置:
将前面extl参数文件中的
rmthost192.168.0.44,mgrport7801
\tools\GG\gg10g\dirdat\rl
替换为
exttraild:
\tools\GG\gg10g\dirdat\l1--本地队列文件生成位置
配置datapump进程:
ADDEXTRACTpump1,EXTTRAILSOURCE<
local_trail>
BEGIN<
time>
--<
即是对应extl配置文件中定义的d:
\tools\GG\gg10g\dirdat\l1
editparampump1
extractpump1
useridddw,passwordddw
rmthost192.168.0.44,mgrport7801
\tools\GG\gg10g\dirdat\r1
PASSTHRU|NOPASSTHRU--直通模式或普通模式
gettruncates
tableddw.bbtest;
直通模式用在两边表名、列名一致,可以直接映射的情况,不需要额外配置;
普通模式可以配置表名列名自定义映射,可以加FILTER、transformation等,需要配置一个数据定义文件(data-definitionsfile)。
然后修改原先为提取进程配置远端队列位置:
deletermttraild:
\tools\GG\gg10g\dirdat\rlextractextl
\tools\GG\gg10g\dirdat\rlextractpump1
然后启动extl和pump进程就OK了。
如果是在普通模式下(大部分的情况下),或者在异构数据源之间同步,需要利用GoldenGate的defgen工具生成一个数据定义文件(data-definitionsfile),大致步骤如下:
(1)创建DEFGEN工具的参数文件
(2)运行DEFGEN工具生成数据定义文件
(3)配置GG进程识别定义文件
例子:
editparamdefgen--创建DEFGEN工具的参数文件
DEFSFILE<
full_pathname>
--指定由DEFGEN生成的数据定义文件的全路径和名称
[{SOURCEDB|TARGETDB}<
dsn>
]--oracle不需要配置这个参数
[USERID<
user>
[,PASSWORD<
password>
]]--DB2不需要配置PASSWORD
TABLE<
owner>
.<
table>
--分析指定表生成配置文件
类似如下(ORACLE):
DEFSFILEGG_HOME\dirdef\extdb.ref
USERIDddw,PASSWORDddw
TABLEddw.aatest;
然后运行DEFGEN工具:
defgenparamfiledirprm/defgen.prm
配置文件生成在GG_HOME\dirdef下,不要去手动修改。
如果对应表的表结构发生更改,需要重新生成这个配置文件。
然后将生成的配置文件拷贝至目标服务器的GG_HOME\dirdef下。
修改复制进程repl参数文件:
editparamrepl
将原先的assumetargetdefs参数替换为sourcedefsGG_HOME\dirdef\extdb.ref
stoprepl
配置完成。
4.2.1.3配置进程检查点(checkpoint)
检查点记录了进程读写的位置信息用以数据恢复,目的是为了防止进程因系统、网络崩溃而导致的数据丢失,对于GoldenGate保证数据同步过程中数据不丢失非常重要。
GoldenGate的检查点由一个内部进程自动控制,与数据库检查点的概念类似。
提取进程的检查点记录它在数据源中的读取位置和队列的写出位置,复制进程的检查点记录它读取队列的位置。
每条提取或复制进程都有自己对应的检查点信息。
当GoldenGate的进程重启时,由它所记录的检查点决定需要读取的队列位置。
GoldenGate的检查点信息有两种存放方式:
(1)默认存放在GGHOME\dirchk下的文件中,一个进程对应一个文件。
提取进程只能使用这种模式。
不需要特殊配置。
(2)存放在数据库指定的表中,需要进行如下配置:
首先在./globals参数文件中加入:
CHECKPOINTTABLE[<
]--指定的检查点记录表
然后运行:
DBLOGIN[SOURCEDB<
][,USERID<
db_user>
[,PASSWORD<
pw>
]]
ADDCHECKPOINTTABLE[<
]--生成这个检查点记录表
在新增复制进程时可以在命令后指定checkpointtable[<
]替代nodbcheckpoint,使用数据库记录检查点信息。
ORACLE官方文档中,比较推荐将复制进程的检查点信息存放到数据库表中进行管理,认为在某些情况下能促进数据恢复。
并指出检查点信息量非常小,而且是进行记录更新而非记录插入,一个进程只对应一条记录,在它特殊的检查点处理机制下不会对数据库造成影响。
个人猜想是当目标数据库崩溃还原后(特别是在不完全恢复的情况下),检查点信息能同数据库一起还原,在数据上能利用数据库事务性与数据库保持一致,从而在数据库正常打开后能继续进行数据同步。
4.1.3ddl同步
GoldenGate的DDL同步只支持两边一致的数据库、单向复制,限制条件较多(如不能进行字段映射、转换等),所以实际应用价值不是很大。
基本配置步骤为:
(1)关闭ORACLE的回收站功能。
(2)选择一个数据库schema存放支持DDL的GoldenGate对象,运行相应创建脚本。
(3)编辑globals参数文件。
(4)修改extl和repl的配置文件
具体步骤:
关闭数据库回收站:
altersystemsetrecyclebin=offscope=both;
编辑globals参数文件:
editparam./globals
添加以下内容后保存:
GGSCHEMAddw--标明支持DDL的GG对象存放在哪个schema下
执行创建脚本:
首先需要命令行进入GG安装目录下,然后再运行sqlplus执行脚本,如果不进入目录下脚本执行会报错(由于脚本中子脚本嵌套使用相对路径的问题所造成)。
@marker_setup.sql--提示输入目标schema
@ddl_setup.sql--提示输入目标schema,输入initialsetup最后输入yes
@role_setup.sql
grantGGS_GGSUSER_ROLEtoddw;
--不进行该步赋权后面起进程会报错
@ddl_enable.sql--使触发器生效
最后修改提取进程和复制进程的配置文件,分别加入ddlincludeall属性。
repl必须指定assumetargetdefs属性,这表明只有两边数据库结构一致的情况下才可以启用DDL复制。
另外,开启DDL同步不能再只映射单表了,对整个模式下的对象都有效。
在实际测试中,由于我在同一个数据库中进行映射,而且映射表结构不一致,导致进程报了一系列的错误。
这个时候需要把通过脚本创建的GG对象中的数据清空,安装目录下只提供了清除对象的脚本,可以如下操作:
首先要求把所有的GG进程停掉,包括mgr进程
@ddl_disable.sql--首先使DDL触发器失效
@ddl_remove.sql
@marke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GoldenGate 使用 报告