首页澳门新葡亰官方网站 › 澳门新葡亰登录Oracle GoldenGate 一、介绍和设置

澳门新葡亰登录Oracle GoldenGate 一、介绍和设置

一. GoldenGate 概述

  GoldenGate现在是业内成熟的数据容灾与复制产品;GoldenGate是一种基于日志的结构化数据复制方式,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。

配置和使用GoldenGate的步骤

  • 1 在源端和目标端配置数据库支持GoldenGate
  • 2 在源端和目标端创建和配置GoldenGate实例
  • 3 在源端创建和配置主抽取进程(Primary Extract)
  • 4 在源端创建和配置Data Pump进程(Secondly Extract)
  • 5 在目标端创建和配置Replicat进程

1.说明

【OGG】OGG基础知识整理



二. GoldenGate 搭建

  目标在linux系统下安装Oracle;利用GoldenGate
实现数据同步;可复制DML和DDL操作

环境如下:本环境目标端是源端的克隆;步骤请参考第8篇

  源端 目标端
操作系统 linux6.5 linux6.5
IP 192.168.1.235 192.168.1.221
数据库版本 11.2.0.4.0 11.2.0.4.0
GoldenGate版本 11.2.1.0.1 11.2.1.0.1

1 配置数据库支持GoldenGate

1.1.下载和文档说明

下载地址:
我下载的是Oracle GoldenGate 12.1.2.1.0版本的Oracle GoldenGate
V12.1.2.1.0 for Oracle on Linux x86-64 (336 MB)
在线文档地址:
Oracle
GoladenGate介绍:
Oracle
官方的安装教程:
Step by step GoldenGate
configuration:

一、GoldenGate介绍

GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate
能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。

GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等。

澳门新葡亰登录 1 

GoldenGate基本架构

澳门新葡亰登录 2 

Oracle
GoldenGate主要由如下组件组成


Extract


Data pump


Trails


Collector


Replicat


Manager

Oracle
GoldenGate 数据复制过程如下:

利用抽取进程(Extract
Process)在源端数据库中读取Online Redo Log或者Archive
Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail
file)中。再利用传输进程将队列文件(trail
file)通过TCP/IP传送到目标系统。

目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息,把信息缓存到GoldenGate
队列文件(trail
file)当中,等待目标端的复制进程读取数据。

   
GoldenGate 复制进程(replicat process)从队列文件(trail
file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。



 
   Oracle GoldenGate(OGG)可以在多样化和复杂的 IT
架构中实现实时事务更改数据捕获、转换和发送;其中,数据处理与交换以事务为单位,并支持异构平台,例如:DB2,MSSQL等
     
     Golden Gate 所支持的方案主要有两大类,用于不同的业务需求:
     
     ● 高可用和容灾解决方案
     ● 实时数据整合解决方案
     
     其中,高可用和容灾解决方案
主要用于消除计划外和计划内停机时间,它包含以下三个子方案:
     1.  容灾与应急备份
     2.  消除计划内停机

   
 3.  双业务中心(也称:双活)

     澳门新葡亰登录 3

   
 实时数据整合解决方案 主要为 DSS 或 OLTP
数据库提供实时数据,实现数据集成和整合,它包含以下两个子方案:
     1.  数据仓库实时供给
     2.  实时报表

     澳门新葡亰登录 4

   
 灵活拓扑结构实现用户的灵活方案:

     澳门新葡亰登录 5

   
 下图是一个典型的 Golden Gate 配置逻辑结构图:

     澳门新葡亰登录 6

   
 ① Manager
        
        顾名思义、Manager进程是Golden Gate中进程的控制进程,用于管理
Extract,Data Pump,Replicat等进程
        在 Extract、Data Pump、Replicat 进程启动之前,Manager
进程必须先要在源端和目标端启动
        在整个 Golden Gate 运行期间,它必须保持运行状态
        
        ⒈ 监控与启动 GoldenGate 的其它进程
        ⒉ 管理 trail 文件及 Reporting
        
        在 Windows 系统上,Manager 进程是作为一个服务来启动的,在 Unix
系统下是一个进程
        
     ② Extract
        
        Extract 进程运行在数据库源端上,它是Golden
Gate的捕获机制,可以配置Extract 进程来做如下工作:
        ⒈ 初始数据装载:对于初始数据装载,Extract
进程直接从源对象中提取数据
        ⒉
同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract
进程捕获源数据的变化;如DML变化、 DDL变化等
        
     ③ Replicat
        
        Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract
进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库
        就像 Extract 进程一样,也可以配置 Replicat
进程来完成如下工作:
        ⒈ 初始化数据装载:对于初始化数据装载,Replicat
进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上
        ⒉ 数据同步,将 Extract
进程捕获到的提交了的事务应用到目标数据库中
        
     ④ Collector
     
        Collector 是运行在目标端的一个后台进程
        接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里
        动态 collector:由管理进程自动启动的 collector 叫做动态
collector,用户不能与动态 collector 交互
        静态 collector:可以配置成手工运行 collector,这个 collector
就称之为静态 collector
        
     ⑤ Trails
        
        为了持续地提取与复制数据库变化,GoldenGate
将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail
文件
        
        这些文件可以在 source DB 上也可以在目标 DB
上,也可以在中间系统上,这依赖于选择哪种配置情况
        在数据库源端上的叫做 Local Trail 或者 Extract
Trail;在目标端的叫做 Remote Trail
        
     ⑥ Data Pumps
        
        Data Pump 是一个配置在源端的辅助的 Extract 机制
        Data Pump 是一个可选组件,如果不配置 Data Pump,那么由 Extract
主进程将数据发送到目标端的 Remote Trail 文件中
        如果配置了 Data Pump,会由 Data Pump将Extract 主进程写好的本地
Trail 文件通过网络发送到目标端的 Remote Trail 文件中
        
        使用 Data Pump 的好处是:
        ⒈ 如果目标端或者网络失败,源端的 Extract 进程不会意外终止
        ⒉ 需要在不同的阶段实现数据的过滤或者转换
        ⒊ 多个源数据库复制到数据中心
        ⒋ 数据需要复制到多个目标数据库
        
     ⑦ Data source
        
        当处理事务的变更数据时,Extract 进程可以从数据库(Oracle, DB2,
SQL
Server, MySQL等)的事务日志中直接获取
        或从 GoldenGate VAM中获取。通过
VAM,数据库厂商将提供所需的组件,用于 Extract 进程抽取数据的变更
        
     ⑧ Groups
        
        为了区分一个系统上的多个 Extract 和 Replicat
进程,我们可以定义进程组
        例如:要并行复制不同的数据集,我们可以创建两个 Replicat 组
        一个进程组由一个进程组成(Extract 进程或者 Replicat
进程),一个相应的参数文件,一个 Checkpoint
文件,以及其它与之相关的文件
        如果处理组中的进程是 Replicat 进程,那么处理组还要包含一个
Checkpoint 表

GoldenGate简介 
Oracle Golden
Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle
Golden
Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、
实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,Oracle
Golden
Gate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。

澳门新葡亰登录 7

GoldenGate技术架构 
和传统的逻辑复制一样,Oracle GoldenGate实现原理是通过抽取源端的redo
log或者archive
log,然后通过TCP/IP投递到目标端,最后解析还原应用到目标端,使目标端实现同源端数据同步。以下是OracleGoldenGate的技术架构:  

澳门新葡亰登录 8Manager进程 
Manager进程是GoldenGate的控制进程,运行在源端和目标端上。它主要作用有以下几个方面:启动、监控、重启Goldengate的其他进程,报告错误及事件,分配数据存储空间,发布阀值报告等。在目标端和源端有且只有一个manager进程,其运行状态为running好stopped。
在windows系统上,manager进程作为一个服务来启动,二在Linux/Unix系统上则是一个系统进程。
Extract进程 
Extract运行在数据库源端,负责从源端数据表或者日志中捕获数据。Extract的作用可以按照表来时间来划分:
初始时间装载阶段:在初始数据装载阶段,Extract进程直接从源端的数据表中抽取数据。

同步变化捕获阶段:初始数据同步完成以后,Extract进程负责捕获源端数据的变化(DML和DDL)
GoldenGate并不是对所有的数据库都支持ddl操作 
Extract进程会捕获所有已配置的需要同步的对象变化,但只会将已提交的事务发送到远程的trail文件用于同步。当事务提交时,所有和该事务相关的
日志记录被以事务为单元顺序的记录到trail文件中。Extract进程利用其内在的checkpoint机制,周期性的记录其读写的位置,这种机制是
为了保证Extract进程终止或操作系统当机,重新启动Extract后,GoldenGate可以恢复到之前的状态,从上一个断点继续往下运行。通过
上面的两个机制,就可以保证数据的完整性了。


个Extract
进程可以同时对不同对象进行操作。例如,可以在一个extract进程抽取并向目标端发生事务数据的同时,利用另一个extract进程抽取的数据做报
表。或者,两个extract进程可以利用两个trail文件,同时抽取并并行传输给两个replicat进程以减少数据同步的延时。
在进行初始化转载,或者批量同步数据时,
GoldenGate会生成extract文件来存储数据而不是trail文件。默认情况下, 只会生成一个 extract文件,但如果出于操作系统对单个文件大小限制或者其他因素的考虑,也可以通过配置生成多个 extract文件。 extract文件不记录检查点。

Extract进程的状态包括Stopped(正常停止),Starting(正在启动),Running(正在运行),Abended(Abnomal
End的缩写,标示异常结束)。
Pump进程 
pump进程运行在数据库源端,其作用是将源端产生的本地trail文件,把trail以数据块的形式通过TCP/IP
协议发送到目标端,这通常也是推荐的方式。pump进程本质是extract进程的一种特殊形式,如果不使用trail文件,那么extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件。
与 Pump进程对应 的叫Server
Collector进程,这个进程不需要引起我的关注,因为在实际操作过程中,无需我们对其进行任何配置,所以对我们来说它是透明的。它运行在目标端,其
任务就是把Extract/Pump投递过来的数据重新组装成远程ttrail文件。 

注意:无论是否使用pump进程,在目标端都会生成trail文件 
pump进程可以在线或者批量配置,他可以进行数据过滤,映射和转换,同时他还可以配置为“直通模式”,这样数据被传输到目标端时就可以直接生成所需的格式,无需另外操作。 直通模式提高了data
pump的效率,因为生成后的对象 不需要继续进行检索。
在大多数情况下,oracle都建议采用data pump,原因如下: 
1、为目标端或网络问题提供保障
:如果只在目标端配置trail文件,由于源端会将extract进程抽取的内容不断的保存在内存中,并及时的发送到目标端。当网络或者目标端出现故障时, 由于extract进程无法及时的将数据发送到目标, extract进程将耗尽内存然后异常终止。 如果在源端配置了data
pump进程,捕获的数据会被转移到硬盘上,预防了 异常终止的情况。当故障修复,源端和目标端 恢复连通性时,data
pump进程发送源端的trail文件到目标端。
2、 可以支持复杂的数据过滤或者转换: 当使用数据过滤或者转换时,可以先配置一个data
pump进程在目标端或者源端进行第一步的转换,利用另一个data
pump进程或者 Replicat组进行第二部的转换。

3、有效的规划存储资源
:当从多个数据源同步到一个数据中心时,采用data
pump的方式,可以在源端保存抽取的数据,目标端保存trail文件,从而节约存储空间。
4、解决单数据源向多个目标端传输数据的单点故障: 当从一个数据源发送数据到多个目标端时,可以为每个目标端分别配置不同的data
pump进程。这样如果某个目标端失效或者网络故障时,其他的目标端不会受到影响可以继续同步数据。 
Replicat进程 
Replicat进程,通常我们也把它叫做应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或
DDL语句,然后应用到目标数据库中。
和Extract进程一样,Replicat也有其内部的checkpoint机制,保证重启后可以从上次记录的位置开始恢复而无数据损失的风险。
Replicat 进程的状态包括Stopped(正常停止),Starting(正在启动),Running(正在运行),Abended(Abnomal
End的缩写,标示异常结束)。 
Trail文件 
为了更有效、更安全的把数据库事务信息从源端投递到目标端。GoldenGate引进trail文件的概念。前面提到extract抽取完数据以后
Goldengate会将抽取的事务信息转化为一种GoldenGate专有格式的文件。然后pump负责把源端的trail文件投递到目标端,所以源、
目标两端都会存在这种文件。 trail文件存在的目的旨在防止单点故障,将事务信息持久化,并且使用checkpoint机制来记录其读写位置,如果故障发生,则数据可以根据checkpoint记录的位置来重传 。 当然,也可以通过extract通过TCP/IP协议直接发送到目标端,生成远程trail文件。但这种方式可能造成数据丢失,前面已经提到过了,这里不再赘述。
Trail文件默认为10MB,以两个字符开始加上000000~999999的数字作为文件名。如c:directory/tr000001.默认情况下存储在GoldenGate的dirdat子目录中。可以为不同应用或者对象创建不同的trail文件。同一时刻,只会有一个extract进程处理一个trail文件。

10.0版本以后的GoldenGate,会在trail文件头部存储包含trail文件信息的记录,而10.0之前的版本不会存储该信息。每个trail文件中的数据记录包含了数据头区域和数据区域。在 数据头区域中包含事务信息,数据区域包含实际抽取的数据  

进程如何写trail文件

为了减小系统的I/O负载,抽取的数据通过大字节块的方式存储到trail文件中。同时为了提高兼容性,存储在trail文件中的数据以通用数据模式(一种可以在异构数据库之间进行快速而准确转换的模式)存储。 当然,根据不同应用的需求,数据也可以存储为不同的模式。

默认情况下,extract进程以追加的方式写入trail文件。当extract进程异常终止时,trail文件会被标记为需要恢复。当extract重新启动时会追加checkpoint之后的数据追加到该trail文件中。在 GoldenGate
10.0之前的版本, extract进程采用的是覆盖模式。即当 extract进程异常终止,则会将至上次完整写入的事务数据之后的数据覆盖现有trail文件中的内容。

这里是笔者理解不是很透彻,原文如下,望读者给予建议

By
default, Extract operates in append mode, where if there is a process
failure, a recovery  marker
is written to the trail and Extract appends recovery data to the file so
that a history  of
all prior data is retained for recovery purposes. 

In
append mode, the Extract initialization determines the identity of the
last complete  transaction
that was written to the trail at startup time. With that information,
Extract  ends
recovery when the commit record for that transaction is encountered in
the data  source;
then it begins new data capture with the next committed transaction that
qualifies  for
extraction and begins appending the new data to the trail. A data pump
or Replicat  starts
reading again from that recovery point. 

Overwrite
mode is another version of Extract recovery that was used in versions
of  GoldenGate
prior to version 10.0. In these versions, Extract overwrites the
existing  transaction
data in the trail after the last write-checkpoint position, instead of
appending  the
new data. The first transaction that is written is the first one that
qualifies for  extraction
after the last read checkpoint position in the data source. 

checkpoint  

checkpoint用于抽取或复制失败后(如系统宕机、网络故障灯),抽取、复制进程重新定位抽取或者复制的起点。在高级的同步配置中,可以通过配置checkpoint另多个extract或者replicat进程读取同个trail文件集。

extract进程在数据源和trail文件中都会标识checkpoint,Replicat只会在trail文件中标示checkpoint。

在批处理模式中,extract和replicat进程都不会记录checkpoint。如果批处理失败,则整改批处理会重新进行。

checkpoint信息会默认存储在goldengate的子目录dirchk中。在目标端除了checkpoint文件外,我们也可以通过配置通过额外checkpoint
table来存储replicat的checkpoint信息。

Group 
我们可以通过为不同的extract和replicat进程进行分组来去区分不同进程之间的作用。例如,当需要并行的复制不同的数据集时,我们则可以创建两个或者多个复制进程。
进程组中包含进程,进程文件,checkpoint文件和其他与进程相关的文件。对于replicat进程来说,如果配置了checkpoint
table,则不同组的都会包含checkpoint table。
组的命名规则如下

澳门新葡亰登录 9

GGSCI 
GGSCI是GoldenGate Software Command Interface
的缩写,它提供了十分丰富的命令来对Goldengate进行各种操作,如创建、修改、监控GoldenGate进程等等。
Commit
Sequence Number
前文已经多次提到,Goldengate是以事务为单位来保证数据的完整性的,那么
 GoldenGate又是怎么识别事务的呢? 这里用到的是Commit
Sequence
Number(CSN)。CSN存储在事务日志中和trail文件中
 ,用于数据的抽取和复制。CSN作为事务开始的标志被记录在trail文件中,可以通过@GETENV字段转换函数或者logdump工具来查看。不同的数据库平台的CSN显示如下

澳门新葡亰登录 10

澳门新葡亰登录 11

GoldenGate对不同数据库的支持情况

 

 

澳门新葡亰登录 12

*只能作为目标端,不能作为源端。但Goldengate可以从mysql直接装载的原表中抽取数据。(由于笔者不了解mysql,这里只是在字面意思翻译,原文如下
the exception being that GoldenGate can extract records from MySQL
source tables as part of a GoldenGate direct load.
** GoldenGate进行事务数据管理的API工具
*** 只支持镜像复制,不支持数据操作、过滤,字段映射等。 

参考至:《Oracle GoldenGate Administrator Guide》
           《企业级IT运维宝典之GoldenGate实战_第1章》联动北方著



2.1 创建 GoldenGate 操作系统用户

  两台服务器都需要创建 ogg
操作系统用户(此步骤非必须,也可以使用ORACLE用户安装)。

useradd -u 1003 -g oinstall -G dba oggpasswd ogg

1.1 OGG用户和权限分配

  GoldenGate需要从在线日子或归档日志抽取捕获系统的变更数据信息,这些信息可能来源于业务用户,可能来源于系统用户,为了使GoldenGate能够抽取这些数据应为GoldenGate创建独立的用户和分配必要的权限以满足系统运行需求,这些权限包括读取业务用户表数据的权限、读取系统表的权限、执行某个系统包的权限等,以下脚步创建GoldenGate用户ogg_owner(源用户)、ogg_trg(目标用户)和GoldenGate角色ogg_role:

[oracle@sywu ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 21 14:11:04 2015Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, Automatic Storage Management, OLAP, Data Miningand Real Application Testing optionsSYS@sydb>create tablespace tbs01  datafile '+oradata'  size 10m  autoextend on  uniform size 2m/create user ogg_owner identified by ogg_owner default tablespace tbs01 quota unlimited on tbs01/create user ogg_trg identified by ogg_trg default tablespace tbs01 quota unlimited on tbs01/create role ogg_role/

为易管理和维护统一将权限赋予角色ogg_role:

grant CREATE SESSION,ALTER SESSION,ALTER SYSTEM,RESOURCE,SELECT ANY DICTIONARY,FLASHBACK ANY TABLE,SELECT ANY TABLE,SELECT ANY TRANSACTION,insert any table,update any table,drop any table,CREATE TABLEto ogg_role;grant SELECT on dba_clusters to ogg_role;grant SELECT on V_$DATABASE to ogg_role;grant select on sys.logmnr_buildlog to ogg_role;grant EXECUTE on DBMS_FLASHBACK to ogg_role;grant execute on DBMS_CAPTURE_ADM to ogg_role;grant execute on DBMS_STREAMS to ogg_role; grant EXECUTE_CATALOG_ROLE to ogg_role;

然后再将ogg_role 角色赋予ogg_owner(源用户)和ogg_trg(目标用户):

grant ogg_role to ogg_owner;grant ogg_role to ogg_trg;

源用户测试表和数据:

SYS@sydb>create table ogg_owner.togg(id primary key,name,type,CREATED,update_date) 2    as  3   select object_id,object_name,object_type,CREATED,sysdate from dba_objects 4    where rownum<1001 5   /Table created.Elapsed: 00:00:00.28

1.2.资源说明

  • 每个GoldenGate实例可支持5000个Extract和Replicat进程
  • 每个Extract和Replicat需要25-50M或更多的内存,这取决于系统的事物量和事物大小
  • GoldenGate实际使用的物理内存由操作系统控制和管理,GoladenGate
    缓存管理器利用操作系统内存管理功能的优势,确保GoladenGate进程持续和有效的工作

二、GoldenGate安装实施

2.2 修改 GoldenGate 系统用户环境变量

source /home/oracle/.bash_profile# orexport ORACLE_BASE=/u01/appexport ORACLE_HOME=$ORACLE_BASE/oracleexport ORACLE_SID=ora221export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin/data/oggexport NLS_LANG=AMERICAN_AMERICA.UTF8export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHalias sqlplus='rlwrap sqlplus'alias ggsci='rlwrap ggsci'

1.2 数据库附加日志

附加日志级别分为:

  • 数据库级别的附加日志(必须附加日志)
  • 用户级别的附加日志(当使用GoldenGate DDL抽取功能时要启用该级别)
  • 表级别的附加日志(必须附加日志,除非你启用了用户级别的附加日志)

1.3.组件说明

2.1创建GoldenGate软件安装目录

在数据库服务器上创建文件系统:/u01/gg,作为GoldenGate的安装目录。

2.3 创建 GoldenGate 安装目录

  两台服务器都需要做同样的操作。

mkdir -p /data/oggchown -R ogg:oinstall /data/ogg

1.2.1 数据库级别的附加日志

  因为GoldenGate需要抽取捕获变更数据信息和元数据信息,这些信息需要记录日志,并且因为日志总是持续增长的,这些日志增长的信息对于GoldenGate是必须记录的,所以必须在GoldenGate进程启动前开启数据库级别的附加日志;
检查数据库是否开启附加日志:

SYS@sydb>SELECT supplemental_log_data_min, force_logging FROM v$database;SUPPLEME FOR-------- ---NO    NO

开启数据库级别的附加日志:

SYS@sydb>alter database add supplemental log data;SYS@sydb>ALTER DATABASE FORCE LOGGING;SYS@sydb>SELECT supplemental_log_data_min, force_logging FROM v$database;SUPPLEME FOR-------- ---YES   YESElapsed: 00:00:00.00SYS@sydb>alter system switch logfile;System altered.Elapsed: 00:00:00.09

1.3.1.Manager

  Manager进程必须在源端和目标端运行,并且在Extract和Replicat进程之前启动,没有该进程OGG无法做其它的操作,它管理启动Oracle
GoldenGate进程、启动动态进程、分配端口给GoldenGate进程、管理trail
file、创建事件,错误和诊断报告工作;

2.2 GoldenGate的管理用户

安装GoldenGate软件和维护GoldenGate软件时,可以使用系统上的oracle用户。GoldenGate安装目录的所有者必须是GoldenGate管理用户,本次实施过程中使用oracle用户作为GoldenGate管理用户,添加oracle用户的环境变量(在生产端和容灾端均要进行以下操作):

export
GG_HOME=/u01/gg

export
LD_LIBRARY_PATH=$GG_HOME:$ORACLE_HOME/lib:/usr/bin:/lib

export
PATH=$GG_HOME:$PATH

2.4 安装 GoldenGate

  两台服务器都需要操作。

unzip fbo_ggs_Linux_x64_ora11g_64bit.tar.ziptar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /data/ogg

  登录 GoldenGate执行ggsci命令即可。

1.2.2 用户级别的附加日志

  开启用户级别的附加日志的管理用户必须具有执行DBMS_CAPTURE_ADM包的权限;可以在GoldenGate
GGSCI命令行下登录到数据库管理用户为其它的用户开启附加日志;
在GGSCI命令行下使用DBLOGIN命令登录到数据库管理用户

GGSCI (sywu) 1> dblogin userid ogg_owner,password ogg_ownerSuccessfully logged into database.

为用户启用附加日志

GGSCI (sywu as ogg_owner@sydb) 2> add schematrandata sywu2015-08-24 14:56:26 INFO  OGG-01788 SCHEMATRANDATA has been added on schema sywu.2015-08-24 14:56:27 INFO  OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema sywu.

取消用户附加日志

GGSCI (sywu as ogg_owner@sydb) 6> delete schematrandata sywu2015-08-25 20:14:49 INFO  OGG-01792 SCHEMATRANDATA has been deleted on schema sywu.2015-08-25 20:14:49 INFO  OGG-01979 SCHEMATRANDATA for scheduling columns has been deleted on schema sywu.

1.3.2.Extract

  Extract
运行在源端或者根据系统和业务的需求可以同时运行在两端,抽取捕获系变更统数据;它可以配置为初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据),它也可以在支持DDL变更的系统中抽取捕获DDL;
  当配置为数据同步时,extract进程抽取捕获extract配置文件里配置的对象的任何DML和DDL(需要额外配置)的操作,extract进程记录这些操作,直到用户提交或回滚事务;当收到回滚(rollback)时,extract撤销这些记录;当收到(commit)操作后,extract进程记录保存这些操作到一个或多个trail文件里并以队列的形式发送到目标端,以确保数据传输速度和数据的一致性。

2.3安装GoldenGate软件

切换到oracle用户,将GG软件的压缩包存放到GoldenGate安装目录下,即/u01/gg,将这个压缩包进行解压到GoldenGate安装目录下(在生产端和容灾端均要进行以下操作):

tar 
-zxvf  *.gz

  
进入到GoldenGate安装目录,运行GGSCI命令以进入GG界面(在生产端和容灾端均要进行以下操作):

cd 
/u01/gg

./ggsci

在GGSCI界面下创建子目录(在生产端和容灾端均要进行以下操作):

GGSCI>create 
subdirs

至此,GoldenGate软件安装完毕。

2.5 建立 GoldenGate表空间 

  两台服务器都需要操作: 建议使用单独的表空间存放 GoldenGate 数据

create tablespace tsp_ogg datafile '/data/oracle/data/ogg01.dbf' size 100M autoextend on;

1.2.3 表级别的附加日志

  在没有启用用户级别的附加日志的情况下表级别的主键或唯一索引附加日志对于GoldenGate是必须的;在某些情况下即使你启用了用户级别的附加日志,你也可以启用表级别的附加日志使主键附加日志替代每一个在用户级别为GoldenGate指定的键;必须在表没有主键或唯一索引的情况下启用表级别的附加日志。
在GGSCI命令行下使用dblogin登录到数据库管理用户

GGSCI (sywu) 1> dblogin userid ogg_owner,password ogg_ownerSuccessfully logged into database.

为表启用附加日志

GGSCI (sywu as ogg_owner@sydb) 3> add trandata ogg_owner.toggLogging of supplemental redo data enabled for table OGG_OWNER.TOGG.TRANDATA for scheduling columns has been added on table 'OGG_OWNER.TOGG'.

注意:仅当该表有主键或唯一索引时使用上面的命令启用表级别的附加日志,如果表中没有主键或唯一索引时则必须指定一个或多个或者全部列做为主键,在GoldenGate这些键的作用是过滤重复的数据。

SYS@sydb>create table ogg_owner.togg_nokey(id,name,type,CREATED,update_date)  2   as  3  select object_id,object_name,object_type,CREATED,sysdate from dba_objects  where rownum<1001 5 /Table created.Elapsed: 00:00:00.11

错误的启用没有主键的表级别附加日志:

GGSCI (sywu as ogg_owner@sydb) 4> add trandata ogg_owner.togg_nokey2015-08-24 16:05:01 WARNING OGG-06439 No unique key is defined for table TOGG_NOKEY. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.Logging of supplemental redo data enabled for table OGG_OWNER.TOGG_NOKEY.TRANDATA for scheduling columns has been added on table 'OGG_OWNER.TOGG_NOKEY'.

正确的启用没有主键的表级别附加日志:

GGSCI (sywu as ogg_owner@sydb) 26> add trandata ogg_owner.togg_nokey,cols (ID),nokey2015-08-24 16:33:19 WARNING OGG-06439 No unique key is defined for table TOGG_NOKEY. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.Logging of supplemental redo data enabled for table OGG_OWNER.TOGG_NOKEY.TRANDATA for scheduling columns has been added on table 'OGG_OWNER.TOGG_NOKEY'.

1.3.3.Data Pumps

  Data Pumps是第二种类型的GoldenGate extract配置,如果不使用Data
Pump,extract进程必须发送抽取捕获的操作数据到目标端trail;如果配置了Data
Pump,extract进程抽取捕获数据写入到trail,Data
pump读取trail并且通过网络发送trail到目标端trail,data pump
加强了源端和目标端抽取捕获数据的可用性,主要优点:1.保护网络传输失败和目标端失败;2.可以实现复杂的数据过滤和转换;3.可以结合多个数据源到目标端;4.可以同步一个源数据到多个目标端。

2.4设置数据库归档模式

查看数据库的归档模式:

SQL>archive
log list;

如果是非归档模式,需要开启归档模式:

shutdown
immediate;

startup
mount;

alter
database archivelog;

alter
database open;

2.6 创建 GoldenGate 用户并赋权

  两台服务器都需要操作

create user ogg identified by ogg default tablespace tsp_ogg;grant dba to ogg;GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;

2 配置GoldenGate

1.3.4.Replicats

  Replicat进程运行在目标端读取tail文件和重构DML、DDL并应用到目标数据库;Replicat编译SQL一次,当变量值不同时重复使用编译过的SQL;Replicat进程可以像extract进程配置初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据);

2.5打开数据库的附加日志

打开附加日志并切换日志(保证Online
redo log和Archive log一致)

alter database
add supplemental log data ;

alter
database
add supplemental log data (primary key, unique,foreign key)
columns;

alter
system switch logfile;

2.7 配置数据库

  由于 GoldenGate 的原理是根据 Oracle
的日志进行抽取复制。为了保证日志的完整性;需要打开 Oracle 数据库归档;

alter system set log_archive_dest_1 = 'LOCATION=/data/arch' scope = spfile;shutdown immediate;startup mountalter database archivelog;alter database open;

  还需要开启 force log 和 supplemental log

alter database force logging;alter database add SUPPLEMENTAL log data;

  最后查询结果如下:

SQL> select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;NAME OPEN_MODE  FOR SUPPLEME--------- -------------------- --- --------ORA235 READ WRITE  YES YES

2.1 GoldenGate MGR进程

  MGR进程管理启动Oracle
GoldenGate进程、启动动态进程、分配端口给GoldenGate进程、管理trail
file、创建事件,错误和诊断报告工作,必须在第一时间启动;当某些原因导致GoldenGate崩溃或重启机器时,默认情况MGR是没有启动的

[oracle@sywu ogg_src]$ tggsciOracle GoldenGate Command Interpreter for OracleVersion 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBOLinux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25Operating system character set identified as UTF-8.Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.GGSCI (sywu) 1> info mgrManager is DOWN!

1.3.5.Trails

  trail文件保存抽取捕获的变更数据信息,trail根据GoldenGate配置可能存在于源系统的磁盘上或者目标系统的磁盘上或者系统内部介质或者相关的系统中;使用trail文件存储抽取捕获的数据可以不依赖于extract或replicat进程,你可以有更多的选择处理数据和何时到达目标端,比如你可能配置抽取和保存在同一时刻,然后稍后发送数据到目标端。  trail文件可以在进程需要时使用ADD
RMTTRAIL or ADD
EXTTRAIL命令添加创建,文件名为8个字符,可以在创建时指定两个字符然后由GoldenGate填充另外六个序列字符,序列字符从000000到999999,比如创建时指定了两个字符为'tr',那么GoldenGate会创建tr000001的文件保存抽取捕获的数据;文件名是唯一的,保存在GoldenGate_homedirdat目录下。

2.6开启数据库强制日志模式

alter
database force logging;

2.8 运行 GoldenGate 支持 DDL 脚本 

  如果要让 GoldenGate
支持DDL操作,还需要额外运行几个脚本,这些脚本是OGG带的而不是 Oracle
带的,在 GoldenGate 的安装目录都可以找到,源端与目标端都需要运行,如下:

@marker_setup.sql@ddl_setup.sql@role_setup.sql@ddl_enable.sql

  在11.2.0.4.0版本;需要设置

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

2.1.1 配置GoldenGate MGR进程

  可以通过直接编辑GoldenGate_home/dirprm/mgr.prm文件或进入GGSCI命令行后键入edit
param mgr命令回车进入MGR配置文件vi编辑界面;

GGSCI (sywu as ogg_owner@sydb) 10> edit param mgrPORT 7809DYNAMICPORTLIST 7810-7820AUTOSTART ER E*AUTORESTART ER P*,RETRIES 4, WAITMINUTES 4STARTUPVALIDATIONDELAY 5
参数 说明
PORT 表示MGR进程端口号
DYNAMICPORTLIST 表示MGR进程动态为其它进程如Extract进程、Replicat进程分配的端口
AUTOSTART、AUTORESTART 表示当MGR进程启动后失败时自动启动或重启的GoldenGate进程

1.3.6.Checkpoints

  Checkpoint存储从文件读取和写入的检测点位置,用于还原和恢复数据,Checkpoint确保发生变化并提交(commit)的数据被extract抽取捕获和被replicat进程应用到目标端;保证在系统、网络或者GoldenGate需要重启进程时的发生错误不会导致数据丢失;在复杂的同步配置中checkpoints启用多个extract和replicat进程从同一个trail集中读取数据。

2.7创建GoldenGate管理用户

在生产端和容灾端均要进行以下操作:

--create
tablespace

SQL>create
tablespace  ogg  datafile '$ORACLE_BASE/oradata/test/ogg01.dbf'
size 300M
;

--
create
the user

SQL>create
user ogg
identified by ogg
default tablespace ogg;

--
grant
role privileges

SQL>grant 
resource, connect, dba to ogg;

三. GoldenGate单向复制流程配置

  现在就可以正式配置OGG了,在配置OGG之前,先看下OGG的复制流程,OGG和其他传统复制软件一样,也是通过源端捕获/挖掘ORACLE的日志信息,
目标端根据源端传送过来的日志信息进行重塑,实现源端-目标端数据同步,可以参考下图。

澳门新葡亰登录 13

  只有commit之后的日志信息才会被Capture进程捕获,未提交的事务OGG不会捕获。

2.1.2 启动mgr进程

GGSCI (sywu) 2> start mgrManager started.GGSCI (sywu) 3> info mgrManager is running (IP port sywu.7909, Process ID 17400).

启动原理:通过读取GoldenGate_home/dirprm/mgr.prm文件,然后根据该文件的配置信息启动进程分配端口号,如果该进程启动失败,首先请检查预使用的端口是否被占用:

netstat -lntup|grep 7809tcp    0   0 :::7809           :::*            LISTEN   32426/./mgr

然后检查相关的配置文件或重新配置MGR。

1.3.7.Collector

  collector是目标端后台进程,默认情况下,源端extract进程初始化TCP/IP连接到目标端的collector进程,但是因为GoldenGate是可配置的,所以有些时候可能需要在目标端配置和初始化collector,比如目标端同步时区,但是源端的时区小于目标端的情况下。collector的功能:1.根据源端extract进程的请求,扫描和绑定可用的端口给mgr主进程分配给请求的extract进程;2.接收源端extract抽取trail并写入到目标端的trail文件;mgr自动启动collector进程当源端发出网络请求时,所以GoldeGate用户是不可以与它交互的。collector只能同时接受一个extract进程信息(一对一)并且随着extract的终止而终止。  

2.8编辑GLOBALS参数文件

切换到GoldenGate安装目录下,执行命令:

cd
/u01/gg

./ggsci

GGSCI>EDIT
PARAMS ./GLOBALS

在文件中添加以下内容:

GGSCHEMA
ogg  --指定的进行DDL复制的数据库用户

利用默认的密钥,生成密文:

GGSCI>encrypt
password ogg encryptkey default

Encrypted
password:  AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB

    
记录这个密文,将在以下进程参数的配置中使用。

3.1 创建 GoldenGate 的工作目录 

  源端和目标端都需要创建,登录GoldenGate,只需要执行create
subdirs命令就可以了。

[ogg@oracle235 ogg]$ ggsciOracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBOLinux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.GGSCI (oracle235) 1> create subdirsCreating subdirectories under current directory /data/oggParameter files    /data/ogg/dirprm: already existsReport files     /data/ogg/dirrpt: createdCheckpoint files    /data/ogg/dirchk: createdProcess status files   /data/ogg/dirpcs: createdSQL script files    /data/ogg/dirsql: createdDatabase definitions files  /data/ogg/dirdef: createdExtract data files    /data/ogg/dirdat: createdTemporary files    /data/ogg/dirtmp: createdStdout files     /data/ogg/dirout: created

2.2 在源端创建和配置Extract进程

创建和配置Extract进程的工作有:

  • 创建和配置主抽取进程(Primary Extract)
  • 创建和配置Data Pump进程(Secondly Extract)

2.目录和环境变量设置

实验分别在同一台机器上的/u01/app/product/ogg_src目录下安装源端,/u01/app/product/ogg_trg目录下安装目标端为例;

[oracle@sywu ~]$ mkdir -p /u01/app/product/ogg_src[oracle@sywu ~]$ mkdir -p /u01/app/product/ogg_trg[oracle@sywu ~]$ ls /u01/app/product11.2.3 ogg_src ogg_trg

Linux下安装GoldenGate要配置ORACLE_SID、ORACLE_HOME和LD_LIBRARY_PATH;

export ORACLE_BASE=/u01export ORACLE_HOME=$ORACLE_BASE/app/product/11.2.3/db_1export ORACLE_SID=sydbexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32alias sqlplus='rlwrap sqlplus'alias rman='rlwrap rman'alias nmon='/usr/nmon/nmon_x86_centos6'alias bbed='rlwrap bbed'PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatchexport PATH

注意:数操作系统版本、据库版本和Oracle GoldenGate版本bit
type要一致,要么全是32bit要么全是64bit;

2.9管理进程MGR参数配置

PORT
7839

DYNAMICPORTLIST
7840-7860

--AUTOSTART
ER *

--AUTORESTART
EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS
./dirdat/*,usecheckpoints, minkeepdays 2

userid
ogg, password AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB, ENCRYPTKY
default

PURGEDDLHISTORY
MINKEEPDAYS 11,MAXKEEPDAYS 14

PURGEMARKERHISTORY
MINKEEPDAYS 11, MAXKEEPDAYS 14

3.2 添加 CheckPoint 表

  为了保证源和目标端在传数据的时候不会重复或者少传,在目标端添加checkpoin表。

操作如下:

GGSCI (oracle235) 2> EDIT PARAMS ./GLOBALSCHECKPOINTTABLE ogg.ggschkptGGSCI (oracle235) 3> exit[ogg@oracle235 ogg]$ ggsciOracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBOLinux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.GGSCI (oracle235) 1> DBLOGIN USERID ogg, PASSWORD oggSuccessfully logged into database.GGSCI (oracle235) 2> ADD CHECKPOINTTABLENo checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)...Successfully created checkpoint table ogg.ggschkpt.

2.2.1 创建主抽取进程(Primary Extract)

进入GGSCI命令行使用add extract 命令创建主抽取进程

[oracle@sywu ~]$ sggsciOracle GoldenGate Command Interpreter for OracleVersion 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBOLinux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25Operating system character set identified as UTF-8.Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.GGSCI (sywu as ogg_owner@sydb) 13> add extract esydb001,tranlog,begin nowEXTRACT added.

因为主进程的作用是抽取捕获系统变更数据并将这些数据保存到trail文件里,所以必须为其配置trail文件目录和trail文件名的两个字符名,trail文件名共8个字符,其余6个字符由GoldenGate系列填充;

GGSCI (sywu as ogg_owner@sydb) 14> ADD EXTTRAIL /u01/app/product/ogg_src/dirdat/es, EXTRACT esydb001EXTTRAIL added.

3.安装GoldenGate

2.10抽取进程EXTN参数配置

EXTRACT
extn

setenv
(NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252)

userid
ogg, password AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB, ENCRYPTKEY
default

REPORTCOUNT
EVERY 1 MINUTES, RATE

DISCARDFILE
./dirrpt/discard_extn.dsc,APPEND,MEGABYTES 1024

 

DBOPTIONS 
ALLOWUNUSEDCOLUMN

WARNLONGTRANS
2h,CHECKINTERVAL 3m

EXTTRAIL
./dirdat/na

 

TRANLOGOPTIONS
EXCLUDEUSER OGG

TRANLOGOPTIONS
ALTARCHIVEDLOGFORMAT %t_%s_%r.dbf

FETCHOPTIONS
NOUSESNAPSHOT

TRANLOGOPTIONS
CONVERTUCS2CLOBS

TRANLOGOPTIONS
altarchivelogdest primary instance test
/oradata/arch

--TRANLOGOPTIONS
RAWDEVICEOFFSET 0

DYNAMICRESOLUTION

 

DDL
INCLUDE ALL

DDLOPTIONS
addtrandata, NOCROSSRENAME,  REPORT

 

table
QQQ.*;

table
CUI.*;

3.3 配置 MGR 进程组

  在源端和目标端都必须运行一个MGR进程组;负责启动GoldenGate进程,以及启动动态进程,管理trail文件,错误信息。

  运行ggsci程序;输入 “EDIT PARAMS MGR” 编辑参数文件:

[ogg@oracle235 ogg]$ ggsciOracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBOLinux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.GGSCI (oracle235) 1> EDIT PARAMS MGR

  输入内容如下:

PORT 7809 DYNAMICPORTLIST 7800-8000AUTORESTART EXTRACT *, WAITMINUTES 2, RESETMINUTES 5PURGEOLDEXTRACTS /data/ogg/dirdat, USECHECKPOINTS, MINKEEPDAYS 3
  • PORT:指定服务监听端口;默认端口为7809
  • DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口
  • AUTORESTART:自动重启参数设置:本处设置表示每2分钟尝试重新启动所有EXTRACT进程;以后5分钟清零。
  • PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除

   启动MGR进程

GGSCI (oracle235) 2> start mgrManager started.GGSCI (oracle235) 3> info mgrManager is running (IP port oracle235.7809).

2.2.1.1 配置主抽取进程(Primary Extract)参数

GGSCI (sywu as ogg_owner@sydb) 15> edit param esydb001extract esydb001SETENV(ORACLE_SID="sydb")SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)userid ogg_owner, password ogg_ownerEXTTRAIL /u01/app/product/ogg_src/dirdat/estable ogg_owner.togg;

userid指定GoldenGate 抽取用户的用户名和密码;
SETENV 设置环境变量,如实例名、数据库字符集;
table
指定抽取的用户和表名,如果指定多个以相同字符开头或结尾的表名,可以使用“前缀*
”的方式代替,这里仅以ogg_owner.togg表为测试案例;

3.1.安装源端GoldenGate

[oracle@sywu ~]$ unzip 121210_fbo_ggs_Linux_x64_shiphome.zip -d /tmp[oracle@sywu ~]$ /tmp/fbo_ggs_Linux_x64_shiphome/Disk1/runInstaller 

澳门新葡亰登录 14
根据数据库版本选择对应的GoldenGate选项;
澳门新葡亰登录 15
更改GoldenGate Software
安装位置,将其安装到/u01/app/product/ogg_src目录下,检查数据库安装位置是否正确,并配置端口;
澳门新葡亰登录 16
检查安装信息,确认无误后开始安装;
澳门新葡亰登录 17
澳门新葡亰登录 18
这样源端的安装就完成了。

2.11 传输进程DPEN参数配置

EXTRACT
dpen

RMTHOST
192.168.4.171 , MGRPORT 7839, compress

PASSTHRU

numfiles
50000

RMTTRAIL
./dirdat/na

TABLE
QQQ.*;

TABLE
CUI.*;

3.4 源端配置 Extract 进程

  负责抓取需要传输数据;下面在源端配置抽取进程。

GGSCI (oracle235) 1> EDIT PARAMS EORA_1EXTRACT EORA_1SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)USERID ogg, PASSWORD ogg EXTTRAIL /data/ogg/dirdat/aa TABLE lottu.*;

  在源端用 add extract 命令创建 extract 组;用add exttrail
命令创建本地 trail 文件

GGSCI (oracle235) 2> ADD EXTRACT EORA_1, TRANLOG, BEGIN NOWEXTRACT added.GGSCI (oracle235) 3> ADD EXTTRAIL /data/ogg/dirdat/aa, EXTRACT EORA_1, MEGABYTES 5EXTTRAIL added.

  启动 extract 进程;在 ggsci 中:可以使用 add, alter, cleanup,
delete, info, kill命令管理extract进程

GGSCI (oracle235) 4> start extract eora_1Sending START request to MANAGER ...EXTRACT EORA_1 startingGGSCI (oracle235) 5> info eora_1EXTRACT EORA_1 Last Started 2018-08-23 00:52 Status RUNNINGCheckpoint Lag  00:06:20 (updated 00:00:04 ago)Log Read Checkpoint Oracle Redo Logs      2018-08-23 00:46:36 Seqno 12, RBA 34652672      SCN 0.0 (0)

2.2.2 创建和配置Data Pump进程(Secondly Extract)

添加Data Pump
Extract进程时要注意,如果源端和目标端OGG物理路径都相同,可以按照常规方式处理,但是如果不相同,就像我本例的一样源端和目标端都在同一台机器上,但GoldenGate物理路径不相同,请按如下方式处理

3.2.安装目标端GoldenGate

目标端的配置和安装与源端的安装步骤上都相同,唯一不同的地方是如果在同一台机器上安装源端和目标端,则要将其安装在不同的目录下(此处是/u01/app/product/ogg_trg),并且配置不同的端口(此处是7909);
澳门新葡亰登录 19
澳门新葡亰登录 20
安装完成后配置OGG命令行快捷命令和回写功能,在.bash_profile配置文件中添加如下内容:

alias tggsci='rlwrap /u01/app/product/ogg_trg/ggsci'alias sggsci='rlwrap /u01/app/product/ogg_src/ggsci'

上面通过别名的方式配置了源端的OGG ggsci命令sggsci,目标端的OGG
ggsci命令tggsci并通过rlwrap
使其支持回写功能,这样在任何位置都可以使用OGG ggsci命令;

[oracle@sywu ~]$ which tggscialias tggsci='rlwrap /u01/app/product/ogg_trg/ggsci'    /usr/local/bin/rlwrap[oracle@sywu ~]$ which sggscialias sggsci='rlwrap /u01/app/product/ogg_src/ggsci'    /usr/local/bin/rlwrap[oracle@sywu ~]$ sggsciOracle GoldenGate Command Interpreter for OracleVersion 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBOLinux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25Operating system character set identified as UTF-8.Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.GGSCI (sywu) 1> exit[oracle@sywu ~]$ tggsciOracle GoldenGate Command Interpreter for OracleVersion 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBOLinux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25Operating system character set identified as UTF-8.Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved.GGSCI (sywu) 1> exit[oracle@sywu ~]$ 

该版本默认已经自动建立子目录,安装完成后查看mgr进程应为running状态;

GGSCI (sywu) 1> view param mgrPORT 7909GGSCI (sywu) 2> info mgrManager is running (IP port sywu.7909, Process ID 16870).

2.12建立OGG的DDL对象

$ cd
/u01/gg 

$
sqlplus "/ as sysdba"

 

SQL>
@marker_setup.sql

Enter
GoldenGate schema name:ogg

alter
system set recyclebin=off;

SQL>
@ddl_setup.sql

Enter
GoldenGate schema name: ogg

 

SQL>
@role_setup.sql

 

Grant
this role to each user assigned to the Extract, Replicat, GGSCI, and
Manager processes, by using the following SQL
command:

 

SQL>GRANT
GGS_GGSUSER_ROLE TO

 

where
is the user assigned to the GoldenGate processes.

注意这里的提示:需要手工将这个GGS_GGSUSER_ROLE指定给extract所使用的数据库用户(即参数文件里面通过userid指定的用户),可以到sqlplus下执行类似的sql:

SQL>GRANT
GGS_GGSUSER_ROLE TO ogg;

注:这里的ogg是extract使用的用户。如果你有多个extract,使用不同的数据库用户,则需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。

运行以下脚本,使触发器生效:

SQL>
@ ddl_enable.sql

注:在生产端开启抽取前,先禁用DDL捕获触发器,调用ddl_disable.sql。

3.5 配置 Pump 进程

  extract进程负责将抓取的数据写入本地trail文件;而需要Pump进程把trail文件传输到目标端。使用
EDIT PARAMS PORA_1 添加配置文件

GGSCI (oracle235) 6> EDIT PARAMS PORA_1EXTRACT PORA_1SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)PASSTHRURMTHOST 192.168.1.221, MGRPORT 7809RMTTRAIL /data/ogg/dirdat/paTABLE lottu.*;

  用 add extract 指定本地 trail 文件

GGSCI (oracle235) 7> ADD EXTRACT PORA_1, EXTTRAILSOURCE /data/ogg/dirdat/aaEXTRACT added.

  用 add rmttrail 指定远程 trail 文件

GGSCI (oracle235) 8> ADD RMTTRAIL /data/ogg/dirdat/pa, EXTRACT PORA_1, MEGABYTES 5RMTTRAIL added.

  启动 pump 进程

GGSCI (oracle235) 9> START EXTRACT PORA_1Sending START request to MANAGER ...EXTRACT PORA_1 startingGGSCI (oracle235) 11> info allProgram  Status  Group  Lag at Chkpt Time Since ChkptMANAGER  RUNNING           EXTRACT  RUNNING  EORA_1  00:00:00  00:00:07 EXTRACT  RUNNING  PORA_1  00:00:00  00:00:02 

2.2.2.1 创建Data Pump Extract进程:

GGSCI (sywu) 26> ADD EXTRACT PSYDB001, EXTTRAILSOURCE /u01/app/product/ogg_src/dirdat/esEXTRACT added.

EXTTRAILSOUCE
指定源端的trail路径,必须包含两个字符,这个路径和主抽取进程(Primary
Extract)中指定的trail目录和trail文件命名必须相同,因为Data
Pump进程要读取主抽取进程生成的trail文件;

4.GoldenGate目录结构

说明 后缀名 目录路径
Parameter files .prm /u01/app/product/ogg_src/dirprm
Report files .rpt /u01/app/product/ogg_src/dirrpt
Checkpoint files .cpr /u01/app/product/ogg_src/dirchk
Process status files .pcs /u01/app/product/ogg_src/dirpcs
SQL script files .sql /u01/app/product/ogg_src/dirsql
Database definitions files .def /u01/app/product/ogg_src/dirdef
Extract data files   /u01/app/product/ogg_src/dirdat
Temporary files   /u01/app/product/ogg_src/dirtmp
Credential store files .crd /u01/app/product/ogg_src/dircrd
Masterkey wallet files .wlt /u01/app/product/ogg_src/dirwlt
Dump files .dmp /u01/app/product/ogg_src/dirdmp

2.13 数据初始化

在初始化过程中,源数据库不需要停机,初始化过程分为三个部分:

生产端开启抽取进程;

生产端导出数据;

容灾端导入数据;

在生产端添加抽取进程、传输进程以及相应的队列文件,执行命令如下:

//创建进程
EXTN

GGSCI>add
extract extn,tranlog,begin now

GGSCI>add
exttrail ./dirdat/na,extract extn,megabytes 500

 

//创建进程
DPEN

GGSCI>add
extract dpen,exttrailsource ./dirdat/na

GGSCI>add
rmttrail ./dirdat/na,extract dpen,megabytes 500

在生产端启动管理进程:

GGSCI>
start mgr

启用DDL
捕获trigger:

$ cd
/u01/gg

$
sqlplus “/as sysdba”

SQL>
@ddl_enable.sql

在生产端启动抽取进程:

GGSCI>
start EXTN

在数据库中,获取当前的SCN号,并且记录这个SCN号:

SQL>select
to_char(dbms_flashback.get_system_change_number) from
dual;

 

603809

在数据库中,创建数据泵所需目录并赋予权限:

SQL>CREATE
OR REPLACE DIRECTORY DATA_PUMP AS '/u01';

SQL>grant
read ,write on DIRECTORY DATA_PUMP 
to
ogg;

在生产端利用数据泵导出数据:

expdp
ogg/ogg
schemas='QQQ'
directory=DATA_PUMP dumpfile=QQQ_bak_%U flashback_scn=123456789
logfile=expdp_QQQ.log
filesize=4096m

 

expdp
ogg/ogg
schemas='CUI'
directory=DATA_PUMP dumpfile=CUI_bak_%U flashback_scn=123456789
logfile=expdp_
CUI.log
filesize=4096m

 

expdp
ogg/ogg schemas='test1' directory=DATA_PUMP dumpfile=test1_bak_%U
flashback_scn=603809 logfile=expdp_QQQ.log
filesize=4096m

把导出的文件传输到容灾端,利用数据泵将数据导入:

Impdp
ogg/ogg 
DIRECTORY=DATA_PUMP DUMPFILE=QQQ_bak_%U
logfile=impdp_
QQQ.log

 

Impdp
ogg/ogg 
DIRECTORY=DATA_PUMP DUMPFILE=CUI_bak_%U
logfile=impdp_CUI.log

转载本站文章请注明出处:澳门新葡亰官方网站 http://www.radioritmo-bl.com/?p=1361

上一篇:

下一篇:

相关文章