多对一goldengate 实施步骤.docx_第1页
多对一goldengate 实施步骤.docx_第2页
多对一goldengate 实施步骤.docx_第3页
多对一goldengate 实施步骤.docx_第4页
多对一goldengate 实施步骤.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多对一goldengate 实施步骤(windows平台,数据库单实例)一、 目标端11安装goldengate根据目标端的系统平台和数据库版本,选择下载相应版本的goldengate.解压到d:goldengate目录。目前oracle 10G windows平台的最新版本是V22232-01.zip安装需要系统管理员权限。目标端数据库不需要打开归档。目标端系统防火墙要添加相应例外 mgr.exe replicat.exe server.exe1.1.1 创建目录运行ggsci.exe ,在出现的命令行界面执行 GGSCIcreate subdirs 该命令会创建goldengate需要用到的目录。其中比较常用的目录有:Dirdat 抓取的流文件保存目录Dirprm 参数文件保存目录Dirrpt 进程日志保存目录目录创建后,执行GGSCIexit 退出ggsci界面,使目录生效。1.1.2 在目标端数据库添加checkpoint表。创建goldengate专属用户及checkpoint表SQLcreate user goldengate identified by goldengate;SQLgrant connect,resource to goldengate;SQLconn goldengate/goldengateSQLd:goldengatechkpt_ora_create.sql1.1.3 创建MGR服务运行ggsci.exe执行 GGSCIedit params ./globals内容:MGRSERVNAME mgrserverCheckpointtable goldengate.ggs_checkpoint该命令在goldengate根目录里创建globals参数文件,指定mgr服务的服务名。该步骤可选,如果没有指定服务名,则系统会自动指定默认服务名GGSMGR。第二行指定Checkpointtable表所在的用户和表名。checkpoint表用来记录数据处理检查点。运行CMD,目录切换到goldengate目录,执行 INSTALL ADDSERVICE ADDEVENTS该命令在系统服务里添加MGR服务,服务名为上面globals参数文件里指定的名称。附:删除服务:在DOS命令行下执行:install deleteservice deleteevents1.1.4 配置MGR运行ggsci.exeGGSCIEDIT PARAMS MGR内容为:port 8000-autostart er *-autostart extract *-autostart replicat *-autorestart er *, waitminutes 1-autorestart extract *,waitminutes 1-autorestart replicat *,waitminutes 1-autostart extract EIEX01-autostart extract EPMP01-autorestart extract EIEX01,waitminutes 1-autorestart extract EPMP01,waitminutes 1DYNAMICPORTLIST 7000-8000purgeoldextracts d:goldengatedirdat*, usecheckpoints, minkeephours 1该命令在dirprm目录下创建MGR参数,指定MGR的端口为8000,可设置某个进程随MGR自动启动,设置某个进程异常终止后自动重启。其中最后一行是清除使用过的流文件。最小保留1小时。1.1.5 启动MGR运行ggsci.exeGGSCIstart mgr可用下面命令看MGR的状态GGSCIinfo mgr1.1.6 创建目标数据库用户及表-从此处开始每增加一个数据源都要操作-以DBA权限登录SQLPLUSSqlplus / as sysdbaSQLCreate user username identified by password default tablespace tablespacename;SQLGrant dba to username;在目标数据库该用户下创建要传输数据的相应的表,表结构与源数据库一致。此处不一定要给该用户DBA权限,只要下面的replicat参数里指定的用户有DBA权限即可。1.1.7 配置一次性初始化同步进程(可选)如果需要对表做一次全表数据初始化,需要在目标端加一个初始化复制进程。运行ggsci.exeGGSCIadd replicat rini01,specialrun配置该进程参数文件GGSCIedit params rini01内容:replicat rini01assumetargetdefsuserid username,password passworddiscardfile ./dirrpt/rini01.dsc,purgemap username.tablename, target username.tablename;其中第二行参数假定源和目标的表结构一样。第三行指定目标数据库的用户名和密码。该用户必须有DBA权限。第四行指定被discarded的记录的保存文件名。purge每次有新记录时会清掉上一次的记录。第五行指定源和目标表的映射关系。用户可以不一定是上面userid指定的用户,但是userid指定的用户对其要有访问权限。1.1.8 在目标端配置replicat进程一、增加replicat复制进程GGSCIadd replicat rora01, CHECKPOINTTABLE goldengate.ggs_checkpoint,EXTTRAIL ./dirdat/tt其中rora01为该复制进程的名称,./dirdat/tt指定流文件的路径及前缀名。二、配置该进程的参数文件。GGSCI edit params rora01内容:replicat rora01userid test02 ,password test02handlecollisionsassumetargetdefsdiscardfile ./dirrpt/rora01.dsc, purgeREPORTROLLOVER AT 05:30 ON fridaymap test01.tcustmer, target test02.tcustmer;map test01.tcustord, target test02.tcustord , KEYCOLS (MATID,PASSNO,WIDTHPOS);其中handlecollisions参数会忽略重复记录和missing record errors missing record errors参数假定源和目标的表结构一致。如果某个表没有主键,可以用KEYCOLS(注意:要大写,如果用在extract参数里,前面后面都不能有空格,如test02.tcustord,KEYCOLS(MATID,PASSNO,WIDTHPOS)来指定其中哪几列作为关键列,更新记录时将以这几列作为查询条件。REPORTROLLOVER参数指定生成的日志在指定时间自动切换,生成一个新日志(最多会循环生成10个日志),防止进程运行时间过长引起日志过大。三、启动replicat进程GGSCIstart replicat rora01GGSCIinfo allGGSCIview report rora01二、源端安装goldengate根据源端的系统平台和数据库版本,下载相应版本的goldengate.解压到goldengate目录。安装需要系统管理员权限。如果有多个数据库实例需要抽取数据,必须为每个实例单独安装一个goldengate.创建系统变量如果只有一个实例,该步骤可跳过。On the desktop or Start menu (depending on Windows version), right-click My Computer, and then select Properties. In Properties, click the Advanced tab. Click Environment Variables. Under System Variables, click New. For Variable Name, type ORACLE_HOME. For Variable Value, type the path to the Oracle binaries.如: D:oracleproduct10.2.0db_1 Click OK. Click New again. For Variable Name, type ORACLE_SID. For Variable Value, type the instance name. Click OK.当一个数据库实例的goldengate设置好并启动所有goldengate进程后。重复上面的操作,设置下一个实例的oracle_home和oracle_sid(修改已有的系统变量),再配置另一个goldengate并启动所有进程。如果把所有goldengate重启一遍,是否也需要重设一遍环境变量?创建目录运行ggsci.exe GGSCIcreate subdirs GGSCIexit 退出ggsci界面,使目录生效。创建MGR服务运行ggsci.exeGGSCIedit params ./globals内容:MGRSERVNAME mgrclient该命令在goldengate根目录里创建globals参数文件,指定mgr服务的服务名。该步骤可选,如果没有指定服务名,则系统会自动指定默认服务名。运行CMD,目录切换到goldengate目录,执行 INSTALL ADDSERVICE ADDEVENTS附:删除服务:在DOS命令行下执行:install deleteservice deleteevents配置MGR运行ggsci.exeGGSCIEDIT PARAMS MGR内容为:port 8001-autostart er *-autostart extract *-autostart replicat *-autorestart er *, waitminutes 1-autorestart extract *,waitminutes 1-autorestart replicat *,waitminutes 1-autostart extract EIEX01-autostart extract EPMP01-autorestart extract EIEX01,waitminutes 1-autorestart extract EPMP01,waitminutes 1purgeoldextracts d:goldengatedirdat*, usecheckpoints, minkeephours 1该命令在dirprm目录下创建MGR参数,指定MGR的端口为8001,可设置某个进程随MGR自动启动,设置某个进程异常终止后自动重启。其中最后一行是清除使用过的流文件。至少保留1小时才清除。启动MGR运行ggsci.exeGGSCIstart mgrGGSCIinfo mgr源数据库设置一、打开归档日志注:不开归档也能抽取数据。如果空间允许,最好还是开归档。以DBA权限登录数据库Sqlplus / as sysdba查看数据库是否开了归档SQLArchive log list;如果没开归档,先关闭数据,重启数据到mount状态,开归档,注意指定归档目录,否则默认为数据库回收站目录,该目录默认大小为2G。SQL alter system set log_archive_dest_1=location=d:oracleorclarch scope=both;SQLshutdown immediateSQLstartup mountSQLalter database archivelog;SQLalter database open;二、设置强行日志、启用附加的日志、关闭recyclebin(10G以上)show parameter recyclebin;alter system set recyclebin=off scope=both;alter database force logging;alter database add supplemental log data;ALTER DATABASE add SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;select force_logging,supplemental_log_data_min, SUPPLEMENTAL_LOG_DATA_PK from v$database;alter system switch logfile;其中强行日志,可强行对所有操作产生日志,而忽略nologging选项。SUPPLEMENTAL_LOG_DATA_MIN 称为最小附加日志,如果想把redolog 翻译成sql 语句,那么这个参数必须设上。注: 10g 中打开该选项后,会禁用IMU 特性执行该sql 的时候 数据库中不能有分布式事务,否则sql 语句会执行不成功SUPPLEMENTAL_LOG_DATA_PK 这个参数设置后,oracle 将会把主键信息记录到redolog 中,如果某个表没有主键,那么整条记录都会被记录到redolog 中如果不需要同步DDL操作,可以不关闭recyclebin(只有10G以上才有)三、创建归档日志自动清理的计划任务(如果开了归档日志)。1、创建归档日志清理脚本delarchivelog.sql 清除4天以内的归档日志DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE SYSDATE-4;2、创建批处理文件delarchivelog.bat ,该批处理与上面的脚本放在同一目录D:oraclerem -delete archive log 4 days agorman target sys/password D:oracledelarchivelog.sql3、创建系统计划任务,每天自动执行该批处理。四、给要抓取数据的用户赋DBA权限。创建一个DBA用户(或者使用原有的DBA用户),该用户用于goldengate 抓取数据,因为DBA用户可以访问其它用户的表,所以二级的用户不需要授DBA权限。添加需要抓取数据的表需要有DBA权限,可用有DBA权限的用户添加其它用户的表。Logging of supplemental redo data enabled for table ,即为该表添加附加重做日志。运行ggsci.exeGGSCI dblogin userid systemora01, password oracleGGSCI add trandata test01.tcustmerGGSCI info trandata test01.*配置源数据库全表初始化extract 进程(可选)该进程用于一次性把源表的数据初始化到目标表GGSCI add extract eini01,sourceistableGGSCI edit params eini01extract eini01userid test01wind,password test01rmthost 07,mgrport 8000rmttask replicat,group rini01table test01.tcustmer;table test01.tcustord;其中rmthost为目标机器名或IP地址执行初始化GGSCIstart extract eini01该进程会自动启动目标端的replicat rini01进程。配置源数据库extract进程GGSCIEDIT PARAM eiex01extract eiex01userid test01,password test01exttrail ./dirdat/ttREPORTROLLOVER AT 05:30 ON fridaytable test01.tcustmer;table test01.tcustord;GGSCI ADD EXTRACT eiex01, TRANLOG,BEGIN 2011-05-02 12:00:00创建源数据库跟踪流文件EXTTRAILUse ADD EXTTRAIL to create a local trail, associate it with an Extract group, and assign trail attributes. Use the MEGABYTES option to specify the maximum number of megabytes per file in the trail.GGSCI ADD EXTTRAIL ./dirdat/tt, EXTRACT eiex01, MEGABYTES 5GGSCIinfo rmttrail *配置源数据库data pump进程GGSCIedit params epmp01extract epmp01passthrurmthost 07,mgrport 8000rmttrail ./dirdat/ttREPORTROLLOVER AT 05:30 ON fridaytable test01.tcustmer;table test01.tcustord;GGSCI ADD EXTRACT epmp01, EXTTRAILSOURCE ./dirdat/tt其作用为读取本地trail文件到目标端trail文件,通过EXTTRAILSOURCE说明本地trail 文件存放地。其中passthru参数Allows Extract to distribute data from log trails when the source file has been renamed or purged.在源端添加RMTTRAILGGSCI ADD RMTTRAIL ./dirdat/tt, EXTRACT epmp01,MEGABYTES 5ADD RMTTRAIL creates a remote GoldenGate trail on a remote system, assigns a maximumsize to each file and associates the file with a particular group.启动源端data pump capture 进程GGSCI START EXTRACT eiex01 GGSCI START EXTRACT epmp01GGSCIinfo all备注:一、Extract和replicat参数文件里的用户要有DBA权限,但是要同步的表所在的用户不一定要有DBA权限。即只需要一个有DBA权限的用户来同步数据,而被同步的表所在的用户不需要有DBA权限。二、如果修改进程的配置文件,需要关闭进程,然后重新启动才有效。GGSCI stop extract eiex01 (或者stop eiex01)GGSCI start extract eiex01 (或者start eiex01)三、如果目标数据库不想复制以前的数据,可以更改复制进程的时间点,指定从某一个时刻开始复制。GGSCI alter replicat roraFF,begin 2010-3-3 10:28:00从现在开始复制:GGSCI alter replicat roraFF,begin now查看goldengate命令格式GGSCI help manager抛开错误的数据操作 不中断进程。在replicat进程参数文件里中增加reperror default, discard则在进行数据复制时,如果出错(如主键冲突),会跳过错误的记录。exp操作不会产生归档日志IMP操作会产生归档日志Truncate table 操作不会同步到目标表。如果目标端没有某条记录,而源端对该记录做更新操作,该记录可以同步到目标端,即在目标端会插入该记录。?该现象不确定,第二次测试的时候没有出现这种情况。不开归档,但是附加日志开的情况下,godengate也能同步数据。可用下面语句看附加日志是否打开。select force_logging,supplemental_log_data_min from v$database;FOR SUPPLEME- -NO YES如果源端有多个数据库实例,必须为每个实例单独安装一个goldengate, To run GoldenGate for multiple Oracle instances on a Windows system, you must install an instance of GoldenGate for each oneIf there are multiple Oracle instances on the system with Extract and Replicatprocesses connecting to them, do the following. Use the preceding procedure (single Oracle instance on system) to set theORACLE_HOME and ORACLE_SID system variables to the first Oracle instance. Start all of the GoldenGate processes that will connect to that instance. Repeat the procedure for the next Oracle instance, but this time Edit the existingORACLE_HOME and ORACLE_SID variables to specify the new information. Start the GoldenGate processes that will connect to that instance. Repeat the Edit and startup procedure for the rest of the Oracle instances.复制大对象字段,待测关闭recyclebin,如果不做DDL复制,可以不关闭。需要考虑源和目标数据库不同字符集的问题,目标数据库的字符集必需是源数据库字符集的超集。在SQLPLUS中使用下面的命令查看数据库的字符集信息:SHOW PARAMETER NLS_LANGUAGESHOW PARAMETER NLS_TERRITORYSELECT name, value$ from SYS.PROPS$ WHERE name = NLS_CHARACTERSET;SHOW PARAMETER NLS_LENGTH_SEMANTICS集群的goldengate安装配置?如果归档文件的存放路径不是默认的,需要指定路径?If the archived logs reside in a location other than the Oracle default, specify that location with the ALTARCHIVELOGDEST option of the TRANLOGOPTIONS parameter in the Extract parameter file.如果replicat进程不处理流文件,可以检查一下checkpoint表里的当前流文件序号seqno是否与当前最新流文件一致,如果不一致,则把seqno改为当前最新的流文件序号。然后重启replicatSetting redo parallelism for Oracle 9i sources如果使用oracle9i,需要把LOG_PARALLELISM parameter to 1. GoldenGate does not support values higher than 1.如果在抽取过程中需要读取的日志不能找到,需要做下面的操作之一来修改抽取过程。 alter Extr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论