当前位置:文档之家› oracle GoldenGate学习笔记

oracle GoldenGate学习笔记

Oracle GoldenGate测试文档1.Oracle GoldenGate介绍GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。

GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下:如上图所示,GoldenGate TDM的数据复制过程如下:利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。

再利用传送进程将队列文件通过TCP/IP传送到目标系统。

捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制;目标系统接受数据变化并缓存到GoldenGate TDM队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据;GoldenGate TDM投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

由此可见,GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。

GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。

在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的GoldenGate TDM提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图所示:GoldenGate TDM 可以提供可靠的数据复制,主要体现在下面三点:保证事务一致性GoldenGate TDM 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。

检查点机制保障数据无丢失GoldenGate TDM的抽取和复制进程使用检查点机制记录完成复制的位置。

对于抽取进程,其检查点记录当前已经抽取日志的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。

检查点机制可以保证在系统、网络或GoldenGate TDM进程故障重启后数据无丢失。

可靠的数据传输机制GoldenGate TDM 用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能发送到备份端。

数据传输过程中支持128位加密和数据压缩功能。

Oracle 公司的GoldenGate产品,可以在异构的IT基础结构之间实现大量数据的秒一级的数据捕捉、转换和投递。

GoldenGate可以支持几乎所有常用操作系统如和数据库平台,如下表所示:2.Oracle GoldenGate For Oracle(windows 平台) 安装GoldenGate 的安装非常简单,将解压缩安装文件到指定目录。

比如安装文件解压缩后的路径为d:\ggs安装步骤如下:1.进入命令行2.切换到ggs目录下3.输入命令install addservice addevents4.输入ggsci进入GoldenGate的命令行5.输入create subdirsOK,GoldenGate安装就已经完成了。

实际操作如下C:\Documents and Settings\PONY>d:D:\>cd ggsD:\ggs>install addservice addeventsOracle GoldenGate messages installed successfully.Service 'GGSMGR' created.Install program terminated normally.D:\ggs>ggsciOracle GoldenGate Command Interpreter for OracleVersion 10.4.0.19 Build 002Windows (optimized), Oracle 10 on Sep 18 2009 15:54:55Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.GGSCI (PONY) 1> create subdirsCreating subdirectories under current directory D:\ggsParameter files D:\ggs\dirprm: createdReport files D:\ggs\dirrpt: created Checkpoint files D:\ggs\dirchk: created Process status files D:\ggs\dirpcs: createdSQL script files D:\ggs\dirsql: created Database definitions files D:\ggs\dirdef: createdExtract data files D:\ggs\dirdat: created Temporary files D:\ggs\dirtmp: created Veridata files D:\ggs\dirver: created Veridata Lock files D:\ggs\dirver\lock: created Veridata Out-Of-Sync files D:\ggs\dirver\oos: created Veridata Out-Of-Sync XML files D:\ggs\dirver\oosxml: created Veridata Parameter files D:\ggs\dirver\params: created Veridata Report files D:\ggs\dirver\report: created Veridata Status files D:\ggs\dirver\status: created Veridata Trace files D:\ggs\dirver\trace: created Stdout files D:\ggs\dirout: created3.数据库复制实施文档(DML)3.1准备工作◆准备两台机器,分别为SourceDB, TargetDB,通过TCP/IP网络进行互连SourceDB :WIN XP环境,Oracle 10g 10.2.0.1.0TargetDB :WIN 2003 环境 Oracle 10g 10.2.0.1.0◆必须保证SourceDB是运行在归档模式下。

◆目的:将SourceDB中相关Schema中的数据同步复制到TargetDB相对应的Sechema 中本文中要同步的是SouceDB中的SAJET,SJ,SMT,LANG到Target中的SAJET,SJ,SMT,LANG 用户下◆首先要保持SourceD, TargetDB相关Schema中的初始数据一致,可以通过Exp/Imp,Rman,冷备等方式实现.◆双方DB建立GoldenGate用户,赋予DBA权限,用于GoldenGate连接DB.◆双方DB安装GoldenGate,安装方式如第二章节所示◆SourceDB必须开始最小附加日志模式通过以下语句查看DB是否开启了最小附加日志模式SQL> select SUPPLEMENTAL_LOG_DA TA_MIN from v$database;SUPPLEME--------YES如果没有开启数据库的最小附加日志,则通过以下语句开启SQL>alter database add supplemental log data;◆开启表的最小附加日志,通过GoldenGate命令行来添加GGSCI (PONY) 1> dblogin userid sajet password techSuccessfully logged into database.GGSCI (PONY) 2> add trandata sajet.*第一条命令表示登录到Database第二条命令表示添加Sajet用户下所有表的最小附加日志同样的命令开启SJ,LANG,SMT用户下的表的最小附加日志。

3.2配置GoldenGate3.2.1配置SourceDB的GoldenGateSourceDB端需要配置mgr进程,添加一个extract进程,和一个远端队列。

1.配置mgr参数GGSCI (PONY) 2> edit param mgr此时系统自动会新建一个名为mgr的参数文件,填入以下内容后保存PORT 7809--mgr进程使用的TCP/IP端口侦听请求2.新增一个抽取进程,在GGSCI命令行中输入如下命令:GGSCI (PONY) 1> add extract ext1,tranlog,begin nowEXTRACT added.---新增一个抽取进程,负责抓取SourceDB中变化的数据,基于日志方式,立即生效3.配置抽取进程GGSCI (PONY) 2> edit param ext1此时系统会自动新建一个名为ext1的参数文件,填入以下内容后保存extract ext1userid goldengate,password goldengatermthost 172.17.17.61, mgrport 7809rmttrail d:\ggs\dirdat\r1dynamicresolutiongettruncatestable sajet.*;table sj.*;table smt.*;table lang.*;--抽取进程名为ext2连接本机DB的账号和密码远程主机地址以及服务端口号(TargetDB)远程队列的位置(TargetDB)优化参数,动态分析表结构是否抓取Truncate的数据需要抽取哪些table。

相关主题