恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。Extract进程的状态包括STOPPED(正常停止)、STARTING(正在启动)、RUNNING(正在运行)、ABENDED(Abnomal End的缩写,表示异常结束)。 ? Pump进程
Pump进程运行在数据库源端,其作用非常简单。如果源端使用了本地的trail文件,那么Pump进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这通常也是推荐的方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用trails文件,那么就是Extract进程在抽取完数据以后,直接投递到目标端。 ? Trail文件
为了更有效、更安全的把数据库事务信息从源端投递到目标端。GoldenGate引进trail文件的概念。前面提到Extract抽取完数据以后GoldenGate会将抽取的事务信息转化为一种GoldenGate专有格式的文件。然后Pump负责把源端的trail文件投递到目标端,所以源、目标两端都会存在这种文件,源端存放的trail文件叫本地trail文件,目标端存放的trail文件叫远程trail文件。trail文件存在的目的旨在了防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果故障发生,则数据可以根据checkpoint记录的位置来重传。
值得一提的是,trail文件并不是总是必须的。我们可以在配置Extract进程的时候通过TCP/IP协议直接把日志的信息投递到目标端。但通常并不推荐这么做,因为一旦发生系统宕机或者网络故障,则有可能造成数据的丢失。 ? Relicat进程
Replicat进程,通常我们也把它叫做应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库中。
和Extract进程一样,Replicat也有其内部的checkpoint机制,保证进程重启启动后可以从上次记录的位置开始恢复而无数据损失的风险。它的运行状态和Extract进程一致,包括STOPPED, STARTING, RUNNING, ABENDED。
6/ 18
3. GoldenGate优势 目前业界流行的复制软件一般分为两大类:1基于数据逻辑交易复制,比较熟悉的有DSG RealSync,QUEST Shareplex;2.基于存储层的复制,比如Veritas VVR、IBM MetroMirror,从我们之间对GoldenGate工作原理介绍来看,其是典型的基于数据逻辑交易的复制软件, Oracle除了有GoldenGate外,本省还有其它类似产品和技术如DG Logical Standby、Streams复制等,那GoldenGate和它们比较有什么优势呢?
? 支持异构平台和跨操作系统实时复制
GoldenGate几乎支持目前市面上流行的所有主流操作系统平台和数据库,而且支持集成ETL工具实现智能数据过滤,灵活的拓扑结构,实施部署简单。 ? 亚秒级数据实时复制
这是GoldenGate同其它复制软件比较最大的优势点,也是Oracle公司选择收购他的主要原因之一,下图是关于GoldenGate和Streams复制在200个客户端的延迟比较测试,如下:
从图中可以清楚的看到,GoldenGate的响应优势非常明显,几乎没有延迟。
? 高性能高可靠性
7/ 18
GoldenGate有自己的checkpoint机制,支持断点续传,不影响生成库的运行,捕获不依赖数据库的触发器和规则,对源数据影响非常小。 ? Oracle战略支持力度
Oracle公司收购GoldenGate后声称对其原来的产品Streams将不再做任何重大改进,而是会把Streams的一些优秀特性集成到GoldenGate产品上来,与此同时集成在Oracle数据库中的另外一项逻辑复制产品——Data Guard Logical Standby也遭受了同样的命运,Oracle对GoldenGate产品的重视程度可见一斑。
4. GoldenGate应用环境
由于具备异构和复制的特性,因此GoldenGate在大量场合都有其应用价值,针对目前我们ZLHIS产品体系架构,主要有以下几个应用环境: ? 数据容灾与应急备份
通过配置源端数据库为生成端,目标端数据库为容灾端,实时的把源端产生的数据同步到目标端,对源端生产库起到容灾的功能。 ? 数据库移植与迁移
针对异构环境的数据库,可以通过GoldenGate的强大的异构功能,实现数据的迁移,减少生产数据库停机时间与迁移风险。 ? 智能报表仓库
通过复制生产库数据到目标端,再在目标端对数据进行分类整理,形成报表供用户使用,分担源端生产库的报表查询的开销。
随着对GoldenGate的研究深入和使用的娴熟,ZLHIS体系内会有越来越多的
应用场合可以利用其特性。
5. GolenGate安装配置
GoldenGate的安装配置非常简单,一般的DBA在看了技术文档都能快速的上
8/ 18
手,接下来我们就在windows2003环境下对ZLHIS业务同步复制到另外一台备机为例,这样的运用一般适用于保持目标库数据实时更新,且目标数据库用来检索,如报表或者分析等。
5.1. 前期准备
在安装配置GoldenGate前,我们首先要对环境进行准备,根据操作系统版本和已经安装的数据库版本下载对应合适的安装包,安装包非常小,一般都只有几十M,如本次下载的安装包为ogg112101_ggs_Windows_x64_ora11g_64bit.zip,可以从安装包的命令规则清楚的知道该GoldenGate安装包的版本是11g,适用于windows x64平台,Oracle数据库要求是11g。
另外windows平台在安装前,需要安装 Mircrosoft Visual C++ 2005 SP1 Redistributable,这是 Windows 环境下 Visual C++库的运行组件。GoldenGate运行的时候会用到它的一些库,所以不安装的话,可能导致“系统无法执行指定的程序”的错误,最后还要设置环境变量,根据数据库的安装环境设置ORACLE_HOME和ORACLE_SID两个环境变量,方法这里就不再详述。
数据库要求在归档模式下(GoldenGate 的原理是基于对日志变化的捕获(CDC),当日志切换频繁时,GoldenGate能从 archive log 中查找对应的记录,从而保证了信息的完整性),另外还必须打开数据库级别的补充日志,首先确认数据库是否开启了 supplemental log,如果没有则开启,登录PLSQL做如下操作
SQL> alter database add supplemental log data
SQL> select supplemental_log_data_min from v$database; SUPPLEME -------- YES
最后还要在数据库中创建GoldenGate用户,授予必要的权限,这里我们直接授予DBA权限。
SQL> create user ggs identified by ggs default tablespace users temporary tablespace temp; User created. SQL> grant dba to ggs; Grant succeeded.
5.2. 程序安装
9/ 18
GoldenGate的安装非常简单,首先只需要把下载的安装包解压到指定的目录,解压后的结果如下:
然后找到ggsci.exe双击进入命令界面,如图:
接下来的所有操作都在该命令界面完成,首先是创建GoldenGate对应的目录,输入create subdirs命令,所有目录就会自动创建成功。
GGSCI (wzy-PC) 1> create subdirs
Creating subdirectories under current directory D:\\ogg Parameter files D:\\ogg\\dirprm: created Report files D:\\ogg\\dirrpt: created Checkpoint files D:\\ogg\\dirchk: created Process status files SQL script files Database definitions files Extract data files
D:\\ogg\\dirpcs: created D:\\ogg\\dirsql: created D:\\ogg\\dirdef: created D:\\ogg\\dirdat: created
Temporary files D:\\ogg\\dirtmp: created Stdout files D:\\ogg\\dirout: created
每个文件目录的作用这里就不再介绍,有兴趣的可以下来查询Oracle?GoldenGate Oracle Installation and Setup Guide进行了解,最后在windows
10/ 18