技术学习总结(OracleGoldenGate之HelloWorld).doc_第1页
技术学习总结(OracleGoldenGate之HelloWorld).doc_第2页
技术学习总结(OracleGoldenGate之HelloWorld).doc_第3页
技术学习总结(OracleGoldenGate之HelloWorld).doc_第4页
技术学习总结(OracleGoldenGate之HelloWorld).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

技术学习总结Oracle GoldenGate之HelloWorld作者:温晓烽创建时间:2014/08/14更新时间:2014/08/14参考:版本:1.0Note: Title, Subject, Last Updated Date, Reference Number, and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.Note: To add additional approval lines, press Tab from the last cell in the table above. Copy Number_Note: You can delete any elements of this cover page that you do not need for your document. For example, Copy Number is only required if this is a controlled document and you need to track each copy that you distribute.文档控制变更记录5日期作者版本变更说明2012-11-25温晓烽1.0初版审阅姓名职位分发拷贝编号姓名岗位1234Note: The copy numbers referenced above should be written into the Copy Number space on the cover of each distributed copy. If the document is not controlled, you can delete this table, the Note To Holders, and the Copy Number label from the cover page.目录文档控制ii1概述21.1技术原理21.2GoldenGate可靠的复制41.3GoldenGate支持操作系统和数据库类型51.4 GoldenGate体系结构51.5 GoldenGate进程62 安装与配置72.1前提准备72.2安装配置73服务管理193.1启动服务193.2停止服务204测试215GoldenGate双向复制(数据泵模式)225.1目标端创建extract进程225.2在源端数据库创建checkpoint表255.3在源端创建replicat进程255.4测试266其它276.1查看日志276.2常用命令276.3好用的文档27已解决及待解决问题28待解决问题28已解决问题28Company Confidential - For internal use only1概述1.1技术原理Oracle公司的GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下:利用捕捉进程(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各种拓扑结构示意图 1、单向数据复制:由一个源数据库复制到一个目的数据库,一般用于高可用性和容灾,为生产机保持一个活动的备份数据库,从而在发生灾难的时候迅速切换,减少数据丢失和系统宕机时间; 2、双向数据复制:利用GoldenGate TDM可以实现两个数据库之间数据的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模式开展双业务中心; 3、广播复制-由一个数据库向多个数据库复制,利用GoldenGate TDM的数据过滤功能可以实现数据的有选择分发; 4、集中复制-由多个数据库向一个数据库复制,可以将分布的、跨平台或异构的多个数据库集中到一个数据库。此种模式广泛应用于n+1模式的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。 5、层复制-由A数据库向B复制,同时又由B向C复制,可以在以上几种模式基础上无限制扩展。 由此可见,GoldenGate TDM的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展。1.2GoldenGate可靠的复制GoldenGate TDM 可以提供可靠的数据复制,主要体现在下面三点: 保证事务一致性 :GoldenGate TDM 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。 检查点机制保障数据无丢失 GoldenGate TDM的抽取和复制进程使用检查点机制记录完成复制的位置。对于抽取进程,其检查点记录当前已经抽取日志的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。检查点机制可以保证在系统、网络或GoldenGate TDM进程故障重启后数据无丢失。 可靠的数据传输机制 GoldenGate TDM 用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能发送到备份端。数据传输过程中支持128位加密和数据压缩功能; 1.3GoldenGate支持操作系统和数据库类型 GoldenGate TDM公司的核心产品Transactional Data Management (TDM),可以在异构的IT基础结构之间实现大量数据的秒一级的数据捕捉、转换和投递。GoldenGate TDM可以支持几乎所有常用操作系统如和数据库平台,如下表所示: 操作系统数据库MS NT, 2000, XP, Linux, Sun Solaris, HP-UX, IBM AIX, HP NonStop, TRU64, IBM z/OS,OS/390 Oracle, DB2, MS SQL Server, MySQL, Enscribe, SQL/MP, SQL/MX, Sybase, Teradata, 其他ODBC 兼容数据库 1.4 GoldenGate体系结构下图是最简单Golden Gate结构图,Golden Gate有源端和目标端,源端捕获日志发送到目标端应用,这个过程分为六步骤。1、 捕获:实时捕获交易日志(已提交数据),包含DML和DDL,并可根据规则进行过滤。2、 队列:把捕获的日志数据加载入队列(写入trail文件),这是可选项,为了提高安全性,怕网络传丢了。也可以不入队列,直接从redo buffer传递给目标端。3、 数据泵:将trail文件广播到不同的目标端。4、 网络:从源网络压缩加密后传送到目的网络。5、 接收队列:接收从源端传过来的trail文件。6、 交付:把trail文件内容转换成SQL语句在目标库执行。1.5 GoldenGate进程1)Manager进程:这是GG全局主进程,它是GG守护进程统筹全局,它可以启动、监控、终止Golden Gate的其它进程,收集错误报告及事件,分配数据存储空间,发布阀值告警等,在源端和目标端有且只有一个Manager进程。 2)Extract进程:运行在源端的进程,实时捕获交易数据,可以直接在redo buffer捕获传递到目标端,也可以在redo buffer捕获先写入trail队列在传递到目标端。非Oracle库支持从数据表捕获数据。 3)Pump进程:运行在源端的进程,将源端产生的本地trail文件广播到不同的目标端,pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在捕获完交易日志后直接传递到目标端,生成远程trail文件。 4)Collector进程:运行在目标端的进程,专门接收从源端传过来的trail文件日志生成队列。 5)Delivery进程:运行在目标端的进程,通常我们也把它叫做replicat进程,是数据传递的最后一站,负责读取远程trail文件内容,解析为SQL语句在目标库上执行。2 安装与配置2.1前提准备2.1.1软件准备产品软件版本介质安装于GoldenGateGoldenGate12.1.2121210_fbo_ggs_Linux_x64_shiphome.zip源/目标2.1.1环境准备HostIP用途OS版本DB版本xfeng. localdomain192.168.55.130源RHEL 6.0 x86_6412.1.0naruto.localdomain192.168.55.131目标RHEL 6.0 x86_6412.1.0注:所有环境均采用虚拟机实现:VMware Workstation 8.0.02.2安装配置下面的配置是实现单向复制(源-目标)的配置,后面会有双向复制(源目标)的例子。下面的配置涉及到两台机器,源与目标,所以在进行配置前下面都会提到在哪台机器上进行配置。首先将下载的GoldenGate软件分别上传到两台机器上。这里需要注意的是后面相关配置都是使用Oracle的Owner用户(oracle)。2.2.1环境变量配置(源和目标)LD_LIBRARY2.2.2数据库配置(源和目标)(1)在源数据库启动归档模式查看归档模式:从上面可以看到此时数据库并没有启动归档模式,下面进行启动。启动成功后,打开数据:下面进行手工日志的切换操作,看看归档日志是否成功生成:执行切换命令:alter system switch logfile ;查看归档日志:(2)在源数据库打开最小附加日志查看数据库是否打开最小附加日志:打开最小附加日志:alter database add supplemental log data ;alter system archive log current ;(3)在源和目标数据库中创建表空间、用户并且给用户授权-创建表空间 用户以及设置权限create tablespace goldengate logging datafile /home/oracle/app/oradata/ORCL/datafile/gg_data.dbf size 200M; create user goldengate identified by sadeng default tablespace goldengate;grant connect to goldengate;grant create session to goldengate;grant alter session to goldengate ;grant resource to goldengate ;grant select any dictionary to goldengate;grant select any table to goldengate ;grant flashback any table to goldengate ;grant alter any table to goldengate ; grant insert any table to goldengate;grant update any table to goldengate;grant delete any table to goldengate;grant dba to goldengate; -一句搞定(4)在源和目标端创建test_goldengate和test_goldengate2表,后面我们将使用这个表来进行复制操作。create table test_goldengate (id number primary key, message varchar2(40) , message_date date) ;create table test_goldengate2 (id number primary key, message varchar2(40) , message_date date) ;2.2.3安装GoldenGate(源和目标)(1)解压执行./runInstaller进行安装选择12c数据库:指定安装路径:点击安装:安装完成:2.2.4配置GoldenGate(源和目标)我们复制的思路是:把源端的数据库goldengate用户下的test_goldengate表的内容复制到目标端goldengate用户下的test_goldengate表中。(1) 在源和目标端创建子文件夹(这里只在源端演示,目标端也是同样操作)进入安装目录,启动ggsci:创建子文件夹:显示当前环境信息:(2) 在源和目标端配置manager进程port 7809保存退出。登录数据库:(4)在源端添加表级附加日志add trandata goldengate.test_goldengate(5)在源端配置extract进程添加extract进程add ext exta , tranlog , begin now添加远程队列add rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/sd, ext exta ,MEGABYTES 20注:由于本例中采用的extract进程直接将数据推送到远程,所以这里指定的remote上的地址。编辑extract进程参数文件:extract extasetenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)setenv (ORACLE_SID=orcl)userid goldengate , password sadenggettruncatesrmthost 192.168.55.131 , mgrport 7809rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/sdtable goldengate.test_goldengate;保存退出。(6)在目标配置replicat进程在目标端数据库创建checkpoint表,说明goldengate为checkpoint的专属用户。登录数据库上面语句:checkpoint表为防止在网络断开、进程终止时,从哪个位置来恢复应用。接下来配置replicat进程add replicat repa1 , exttrail /home/oracle/goldengate/product/12.1.2/dirdat/sd , checkpointtable goldengate.checkpoint编辑replicat进程参数replicat repa1 -handlecollisions assumetargetdefs setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) setenv (ORACLE_SID=orcl) userid goldengate , password sadengmap goldengate.test_goldengate , target goldengate.test_goldengate;到这里为止,我们就完成了最简单的配置。接下来我们启动相关进程,然后进行的复制测试。3服务管理3.1启动服务输入info all 查看当前进程的状态:可以看到此时的MANAGER和EXTRACT进程都是STOP状态的,下面我们进行启动。这里需要注意的是在进行复制时源端和目标端的MANAGER进程都需要启动。在源端启动extract进程启动extract进程成功后,就可以在目标端上看到推送过来的trail文件了。在目标端启动replicat进程3.2停止服务stop mgr4测试在上述都配置完成后,并启动相应进程后,我们在源端往test_goldengate表插入数据。查看此时在目标端的trail文件,可以看到此时插入的两条数据就写进来了。在目标端启动replicat进程成功后,在目标端数据库就可以看到复制过来的数据了5GoldenGate双向复制(数据泵模式)上面的例子是基于源端到目标端的配置,下面进行双向配置,即当目标端的test_goldengate2的表数据发生变化时同步到源端。这里需要注意的是此时我们此采用数据泵模式,现在本地存储队列文件,再使用pump进程传递到远程机器(源端)的目录中,然后使用replicat进程执行转化后的SQL语句应用在远端数据库中,实现目标端到源端的同步。5.1目标端创建extract进程执行命令:add extract ext2,tranlog,begin now此时用info all查看已添加成功接下来设置在目标端抓取的队列文件放在本地/home/oracle/goldengate/product/12.1.2/dirdat/ds执行命令:add exttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,extract ext2编辑参数文件执行命令:edit params ext2extract ext2 tranlogoptions excludeuser goldengate setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) setenv (ORACLE_SID=orcl) userid goldengate,password sadeng exttrail /home/oracle/goldengate/product/12.1.2/dirdat/dstable goldengate.test_goldengate2;启动ext2进程启动成功后就可以看到在本地生成的队列文件接着添加ext3进程,主要作用是把本地生成的队列文件传输到源端的/home/oracle/goldengate/product/12.1.2/dirdat目录中。执行命令:add extract ext3,exttrailsource /home/oracle/goldengate/product/12.1.2/dirdat/ds添加远程队列文件:add rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,extract ext3编辑ext3参数文件extract ext3 tranlogoptions excludeuser goldengate setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) setenv (ORACLE_SID=orcl) passthru userid goldengate,password sadeng rmthost 192.168.55.130,mgrport 7809 rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds table goldengate.test_goldengate2;注意:passthru表示传输进程在传输过程中只负责文件传输,不进行任何转化.启动ext3进程此时源端的对应目录中就可以看到目标端传输过来的队列文件5.2在源端数据库创建checkpoint表在源端登陆数据库:dblogin userid goldengate, password sadeng创建checkpoint信息的表:add checkpointtable goldengate.checkpoint此时可以看到创建checkpoint表5.3在源端创建replicat进程在源端执行:add replicat rep2,exttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,checkpointtable goldengate.checkpoint配置rep2进程参数:启动rep2进程5.4测试配置成功后,我们在目标端的test_goldengate2表中插入测试数据:注意:此时不要用glodengate用户插入数据6其它6.1查看日志在配置完manager、extract、replicat进程后,执行启动命令后,可能会出现启动不成功的情况,这是就需要我们看看具体的日志了。路径为安装目录的ggserr.log6.2常用命令命令用途说明info all查看所有进程状态info repa查看单个进程状态info exta detail查看某个进程的详细信息start | stop extract *启动/停止所有extract进程*做通配符start | stop replicat *启动/停止所有replicat进程启动/停止所有replicat进程delete exta xxxx删除某个exta

温馨提示

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

评论

0/150

提交评论