Golden Gate安装说明


 学习要懂得从浩瀚的海洋中提取有用的东西,否则就会游得精疲力尽。言归正传,这些天要开始研究一下GoldenGate,先来看看Installation and Setup Guide是怎么说的。  


系统要求及安装前的说明

        Oracle GoldenGate可以在Oracle不同版本间移动数据,也可以在Oracle和其它类型数据库之间移动数据。Oracle GoldenGate支持数据的过滤、映射和转换。Oracle还能在相似的Oracle数据库之间复制DDL操作。注意下面一句:当DDL支持被激活的时候,Oracle GoldenGate不支持数据的过滤、映射和转换。

       支持的Oracle数据库版本,从9.2开始支持DML和DDL。支持几乎所有的主流操作系统,具体的可以从MOS(My Oracle Support)中查询。内存方面,Oracle Golden Gate需要的内存与同时运行的进程有关。最基本的情况下,需要有一个主提取进程来来捕获源数据、一个副提取数据泵进程来通过网络传输数据、还需要一个复制进程将复制的数据应用到目标端。

       GoldenGate通过GGSCI命令接口,每个实例可以支持最多300个并发的抽取和复制进程。一个Oracle GoldenGate进程可以看做一个Manager进程,它是主要的控制进程。每个抽取和复制进程需要大约25-55MB的内存,或更多,取决于事务的大小和并发数。

       GoldenGate缓存管理器利用了操作系统的内存管理功能来确保GoldenGate进程以持续和有效的方式来进行工作。在缓存中,使用了现代虚拟内存技术来实现:高效地分配和管理活动的缓冲区;可能的情况下,回收旧缓冲区,而不是分页到磁盘中;在必要的时候,将较少使用的信息分页到磁盘中。

       GoldenGate进程实际使用的内存数是由操作系统决定的,而不是GoldenGate程序。

       系统需要为GoldenGate抽取或复制进程分配足够的交换空间,可以按以下步骤来求出这个空间:启动一个抽取或复制进程;运行GGSC;查看报告文件,找到这一行PROCESS VM AVAIL FROM OS(min);将得到的值向上凑整到整数GB,比如,把1.76GB凑整到2G;将这个大小乘以需要运行的抽取和复制进程数,就是可能需要的最大交换空间大小。

       需要的空闲磁盘空间为50-150MB,和具体数据库与平台有关。工作目录和系统中安装的每个GoldenGate实例的二进制文件需要的空间大概为40MB,比如将GoldenGate安装到两个独立的目录中,就需要分配80MB的空间;在集群环境中,可以将GoldenGate安装在共享文件系统中,就可以让所有节点都能访问。另外需要为GoldenGate追踪(trail)文件分配硬盘空间,和需要处理的数据的容量有关。比较好的起始点是1GB。

 

Oracle GoldenGate追踪文件的存储

       为了防止追踪文件的活动干扰业务应用,应该将追踪文件放在一个单独的磁盘或文件系统中。这些文件存放了GoldenGate捕获的所有数据,文件默认大小为10MB,但在配置过程中可能会被更改。追踪文件会逐步累加,但可以通过PURGEOLDEXTRACTS参数指定规则来清空。

       对于源端的追踪文件,应该有足够的空间来预防网络连接失败。在典型的配置中,抽取的副进程(称作数据泵)通过网络将本地追踪文件的数据发送到目标端,当网络故障时它也会失败。但是,抽取主进程仍然会继续读取事务日志并写入到本地的追踪文件。因此。必须由足够的磁盘空间来hold住这些累积的数据。

       对于目标端的追踪文件,可以根据设置的PURGEOLDEXTRACTS参数来提供足够的磁盘空间。但是即使使用了该参数,在数据传输速度高于应用到目标库中的速度时,仍然有可能会继续累加。

       可以按照这个公式来预测需要的追踪文件大小 [log volume in one hour] x [number of hours downtime] x .4 = trail disk space 这里使用了40%,因为GoldenGate只需要事务日志中大约40%的数据。

 

       默认情况下,GoldenGate在按照目录下的dirtmp子目录下的文件来维护数据,你可以使用CACHEMGR参数的CACHEDIRECTORY选项来指定它的路径。

 

Oracle RAC

       在RAC环境中安装GoldenGate,建议将其安装在共享存储中,这样你可以在任一节点上启动GoldenGate进程,如果在这个节点上运行失败,你可以在另一个节点上启动,而不用修改参数,因为处理检查点保留在安装目录中。

       RAC中的所有需要执行GoldenGate进程的节点必须同步系统时间,因为GoldenGate通过比较本地系统时间和提交时间戳来做出关键决策。

 

TCP/IP

       使用主机名或IP来配置GoldenGate进程所在系统的网络,使用主机名会更易于使用。GoldenGate需要以下非保留且非限制的TCP/IP端口:一个端口用于管理器进程和其他GoldenGate进程间的通讯;一个范围内的端口用于本地GoldenGate通讯,默认由7840端口开始,也可以自定义,最多256个端口。


操作系统权限

       在Linux/Unix上,GoldenGate进程需要有队安装目录中的文件和子目录有读写删除的权限,管理器进程还需要有控制Oracle GoldenGate进程的权限。如果使用Windows系统,必须使用Administrator用户登录。抽取进程需要一个能够访问日志文件(包含在线和归档日志)的用户。在UNIX系统中,那个用户必须是Oracle实例所在用户组中的成员。


安腾处理器的要求

       如果在一个微软安腾系统上安装Oracle GoldenGate,运行库vcredist_IA64.exe必须安装。你可以在微软的网站上下载到这个包,它包含了GoldenGate在安腾平台上操作所需的VisualStudio动态链接库。


       另外,在Windows系统上安装GoldenGate以前,安装并配置Microsoft Visual C++ 2005 SP1。


数据库方面的要求

       必须使用完整的Oracle客户端而不是Oracle Instant Client,这样GoldenGate程序可以访问Oracle 的XDK库。


       而关于GoldenGate支持的数据类型、操作类型、表类型等等,官方有相关的说明,开发人员应该注意一下,因为太长,这里不再引用。简单说下,不支持的数据类型有:ORDDICOM, ANYDATA, ANYDATASET, ANYTYPE, BFILE, MLSLABEL, TIMEZONE_ABBR, TIMEZONE_REGION, URITYPE, UROWID;当一张表只有一个字段,不支持该字段的类型为:LOB, LONG, Nested table, User defined data type, VARRAY, XML。由于一个已知的问题,需要将Oracle的回收站功能关闭,否则将导致GoldenGate的DDL触发器失效。



GoldenGate的安装


       下载与自己平台对应的版本的GoldenGate软件,官网edelivery提供下载,可惜对中国大陆地区不开放,这个问题自己解决吧...
环境变量        首先要在操作系统中设置相关的环境变量,首先是ORACLE_HOMEORACLE_SID,如果不能在操作系统中设置环境变量,或者系统中存在使用GoldenGate来传输数据的多个实例,那么在UNIX系统中可以在每个抽取/复制进程组中设置参数,格式为:SETENV (ORACLE_HOME = “<path to Oracle home location>”) 及 SETENV (ORACLE_SID = “<SID>”)  还需要将GoldenGate安装目录添加到共享库的环境变量中,如: export LD_LIBRARY_PATH=/ggs/10.0:$LD_LIBRARY_PATH  要注意的一点是,ORACLE_HOME中的lib目录也应该加进去。可以使用ldd命令来检查该环境变量是否设置正确。(共享库环境变量在AIX中是LIBPATH,在Solaris及Linux中是LD_LIBRARY_PATH,在HP-UX中是SHLIB_PATH)
安装软件        安装软件其实非常简单,在需要安装的目录中解压压缩包就可以了。然后进入该目录,执行ggsci(一定要在GoldenGate安装目录中执行,因此该Path变量其实可设可不设),在ggsci命令行中执行命令创建工作目录:CREATE SUBDIRS          在Windows系统中,可以将Manager进程使用install命令添加到服务中。还有如何将GoldenGate配置到系统级别的集群中来提供failover,这里不再说明,有兴趣的可以查下官方文档。

安装DDL支持


       如何配置GoldenGate来捕获和传输ddl,在Oracle GoldenGate Windows and UNIX Administrator’s Guide中有比较详细的说明。下面列出一个表格,说明下GoldenGate中用于ddl同步的一些对象
对象 用途 默认名称
DDL标记表 存储DDL信息,该表只接收插入 GGS_MARKER
标记表中的序列 用来填充标记表中的一个字段 GGS_DDL_SEQ
DDL历史表 存储对象元数据历史,接收插入、更新、删除 GGS_DDL_HIST
对象ID历史表 包含了配置的对象的对象ID GGS_DDL_HIST_ALT
DDL触发器 针对DDL操作,将操作的信息写入到标记表盒历史表 GGS_DDL_TRIGGER_BEFORE
DDL schema 包含DDL同步对象的schema 必须在安装过程中在GLOBALS文件中指定
用户角色 创建执行DDL操作所需的角色 GGS_GGSUSER_ROLE
内部安装表 只用于内部使用的表 GGS_SETUP
ddl_pin 固定DDL追踪、DDL包和DDL触发器,用于性能改进 ddl_pin
ddl_cleartrace.sql 删除DDL跟踪文件 ddl_cleartrace.sql
ddl_status.sql 确认GoldenGate DDL对象已经安装 ddl_status.sql
marker_status.sql 确认标记表已经安装 marker_status.sql
ddl_tracelevel.sql 设置DDL跟踪的级别 ddl_tracelevel.sql


下面讲一下安装DDL对象的步骤:


1. 为DDL对象选择一个schema

2. 为该schema授予以下权限:

GRANT EXECUTE ON UTL_FILE TO <schema>;

3. 为这些对象选择一个表空间,并且该表空间的剩余空间要能承担GGS_DDL_HIST和GGS_MARKER表的数据增长,特别是GGS_DDL_HIST,它会根据DDL操作的频繁程度按比例增长。如果没有足够的表空间,数据库中的DDL操作将不能完成,业务应用会被挂起。

4. 在这个GoldenGate实例的主目录中打开GLOBALS文件,并将上述schema配置到参数中:GGSCHEMA <schema_name>

5. 修改DDL对象的名称,这个步骤是可选的,而且Oracle建议使用默认名称。

6. 进入GoldenGate安装目录,断开所有数据库会话,并确保没有新的会话连接。

7. 用sysdba运行SQL*Plus,安装DDL触发器需要这个权限,触发器会被安装在SYS schema中。

8. 执行marker_setup脚本,该脚本安装了DDL支持需要的GoldenGate marker系统,脚本执行过程中会要求输入GoldenGate schema的名称

9. 执行ddl_setup脚本

10. 执行role_setup脚本。该脚本删除和创建DDL同步需要的角色,它授权DDL对象上的DML操作

11. 将该角色赋给GoldenGate抽取用户。如果这些进程使用了不同的用户,你需要为这些用户分别授权

12. 执行ddl_enable.sql脚本来启用DDL触发器

为了改进DDL触发器的性能,可以在数据库启动时,在GoldenGate安装目录下使用sysdba执行ddl_pin脚本 SQL> @ddl_pin <DDL_user>  该脚本会将该DDL触发器使用的PL/SQL包固定到内存中。它依赖于dbms_shared_pool系统包,使用ddl_pin前确认该包已经安装。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页

相关内容