goldengate for oracle10g,在linux下实施goldengate11.2for oracle 11gR2安装配置文档

这个文档原本我也是在网上下载的,感觉写的比较详细,在参考的过程中我修正了里面的几处错误,做了一点补充,发在这儿供大家参考:

Oracle GoldenGate主要由如下一些组件组成

● Extract

● Data pump

● Replicat

● Trails or extract files

● Checkpoints

● Manager

● Collector

1、Data Pump是一个次级的Extract Group,如果你的GG环境中不使用Data Pump的话,那么Primary Extract Group必须直接将trail通过网络写到Target系统上.参见后面的示例6:配置Data Pump实现一对多拓扑方案.

2、默认情况下,Replicat是实时复制的,如果因为某种需要需要延迟复制的话,那么可以通过Replicat Group的如下DEFERAPPLYINTERVAL参数来控制,该参数允许delay的最大时间是7天。

按照Oracle GoldenGate的工作原理和体系结构,在每个复制数据源和目标端都需要安装一套GoldenGate软件,同时需要分别启动一个GoldenGate实例,一个GoldenGate实例就是一个管理进程(Manager process),这个管理进程也是整个GoldenGate实例运行时最主要的控制进程。

GoldenGate操作系统内存的使用是通过操作系统来控制的,而不是通过GoldenGate程序控制的,GoldenGate进程会根据需要从OS那里分配相应的virtual memory.

lGoldenGate GGSCI命令接口工具对于每个GoldenGate实例可以支持并发300个Extract和Replicat进程。

l每个Extract和Replicat进程需要大约25-55 MB内存,这主要取决于transaction的大小和并发的transaction数量。

所以,根据上面2个条件,GoldenGate对操作系统内存的需求主要取决于Extract和Replicat进程数。

工作目录

每个GoldenGate实例的工作目录(working directories and binaries),大约需要40M的空间,如果你要同一台Server安装多个GoldenGate实例到不同的目录/文件系统下话,那么就需要多倍的空间分配,在考虑空间分配的时候,也需要考虑这个因数。

辅助空间

这部分空间主要用于存放GoldenGate Trails,它包含了工作数据。这部分空间的消耗取决于Trail,依赖于将要处理的数据量。

根据实际的数据库系统的规模,每天产生的日志量的大小,建议这部分空间从1GB-100G不等,可以保存7-10天的GoldenGate队列文件即可。

对于RAC环境

对于RAC环境,GoldenGate的相关软件和工作目录需要配置在shared disk环境中,从而保证对所有node都是可用的,从任何一个node都可以启动GoldenGate的进程,当其中一个node出现异常时,可以在剩余的node启动而无须修改任何配置参数.否则如果运行在单个node上的话,需要将剩余node中的归档日志通过一定的技术共享出来并加载到GoldenGate运行节点.

对于RAC环境,GoldenGate要求所有node必须保持时钟同步,同时必须保持所有RAC node和运行extract进程的node节点保持时钟同步.因为GoldenGate会比较本地的系统时间和commit的时间戳.所以不能忽略这个设置.否则可能导致数据复制的紊乱.

网络要求

lConfigure the system to use TCP/IP services, including DNS

lGoldenGate使用主机名或者IP地址进行连接,主机名的方式更容易使用

lGoldenGate需要无限制的和自由的TCP/IP端口:

一个port用于两个GoldenGate的Manager process之间通信(比如Source的Manager process和Target的Manager process)本地GoldenGate进程间通信使用的端口范围:缺省的端口范围从7840开始,或者可以定义一个从7840+256的端口

l建议保存一份分配给GoldenGate的端口使用记录

l配置防火墙允许接受来自GoldenGate端口的请求

l如果可能的话,可以设置FTP端口用于GoldenGate传输数据、参数和来自Source和Target的report.否则的话,需要提供其他的传输方法。

GoldenGate for Oracle

1.支持的平台

支持的Oracle Database版本

在当前的Oracle GoldenGate 10.4版本中,支持如下Oracle Database版本

√Oracle 8i (DML support only)

√Oracle 9.1 and 9.2 (DML and DDL support)

√Oracle 10.1 and 10.2 (DML and DDL support)

√Oracle 11g (DML and DDL support)

支持的操作系统平台

几乎所有主流的操作系统,GoldenGate都支持

√Windows 2000, 2003, XP

√Linux

√Sun Solaris

√HP NonStop

√HP-UX

√HP TRU64

√IBM AIX

√IBM z/OS

2.操作系统需求

内存要求

按 照Oracle GoldenGate的工作原理和体系结构,在每个复制数据源和目标端都需要安装一套GoldenGate软件,同时需要分别启动一个GoldenGate实例,一个GoldenGate实例就是一个管理进程(Manager process),这个管理进程也是整个GoldenGate实例运行时最主要的控制进程.

?GoldenGate是操作系统内存的使用是通过操作系统来控制的,而不是通过GoldenGate程序控制的,GoldenGate进程会根据需要从OS那里分配相应的virtual memory.

?GoldenGate GGSCI命令接口工具对于每个GoldenGate实例可以支持并发300个Extract和Replicat进程.

?每个Extract和Replicat进程需要大约25-55 MB内存,这主要取决于transaction的大小和并发的transaction数量.

所以,根据上面2个条件,GoldenGate对操作系统内存的需求主要取决于Extract和Replicat进程数.

DISK空间需求

安装文件

从Oracle官方网站上download下来的GoldenGate压缩软件包大约是50M,所以在分配磁盘空间前你需要提高考虑到这些额外的资源开销,当然了,安装完毕后,你就可以把这个压缩软件包删除了.

工作目录

每 个GoldenGate实例的工作目录(working directories and binaries),大约需要40M的空间,如果你要同一台Server安装多个GoldenGate实例到不同的目录/文件系统下话,那么就需要多倍的空间分配,在考虑空间分配的时候,也需要考虑这个因数.

辅助空间

这部分空间主要用于存放GoldenGate Trails,它包含了工作数据。这部分空间的消耗取决于Trail,依赖于将要处理的数据量。

根据实际的数据库系统的规模,每天产生的日志量的大小,建议这部分空间从1GB-100G不等,可以保存7-10天的GoldenGate队列文件即可.

对于RAC环境

对于RAC环境,GoldenGate的相关软件和工作目录需要配置在shared disk环境中,从而保证对所有node都是可用的,从任何一个node都可以启动GoldenGate的进程,当其中一个node出现异常时,可以在剩 余的node启动而无须修改任何配置参数.否则如果运行在单个node上的话,需要将剩余node中的归档日志通过一定的技术共享出来并加载到GoldenGate运行节点。

对 于RAC环境,GoldenGate要求所有node必须保持时钟同步,同时必须保持所有RAC node和运行extract进程的node节点保持时钟同步.因为GoldenGate会比较本地的系统时间和commit的时间戳.所以不能忽略这个设置,否则可能导致数据复制的紊乱。

网络要求

?Configure the system to use TCP/IP services, including DNS

?GoldenGate使用主机名或者IP地址进行连接,主机名的方式更容易使用

?GoldenGate需要无限制的和自由的TCP/IP端口:

一个port用于两个GoldenGate的Manager process之间通信(比如Source的Manager process和Target的Manager process)

本地GoldenGate进程间通信使用的端口范围:缺省的端口范围从7840开始,或者可以定义一个从7840+256的端口

?建议保存一份分配给GoldenGate的端口使用记录

?配置防火墙允许接受来自GoldenGate端口的请求

?如果可能的话,可以设置FTP端口用于GoldenGate传输数据、参数和来自Source和Target的report.否则的话,需要提供其他的传输方法.

Database user

在数据库中创建一个供GoldenGate使用的专用用,GoldenGate的所有进程可以使用这个用户连接到数据库中:

⊙Extract (source database)

⊙Replicat (target database)

⊙Manager (source database, if using DDL support)

⊙DEFGEN (source or target database)

从系统安全的角度出发,这个GoldenGate用户建议不给任何其他应用使用,仅供GoldenGate使用。

对于Oracle 10g及以后的版本,如果使用了Automatic Storage Management (ASM),GoldenGate的Extract进程需要一个用户来访问ASM实例,但GoldenGate不支持O/S认证的授权方式,所以你可以使 用sys或任何其他具有sysdba/sysasm权限的用户来连接到ASM实例.

建议保留一份数据库用户的记录

这些用户信息需要在GoldenGate参数文件中使用.

USERID是用户名,PASSWORD是口令

对于ASM user,可以通过TRANLOGOPTIONS (带有ASMUSER和ASMPASSWORD选项)参数来配置。

Database Configuration

对于Source Oracle Database要求

?数据库处于归档模式下

?打开补充日志

?打开force logging

GoldenGate的安装非常的简单,我以linux平台下的install为例简单的说一下步骤,详细的说明在对应的document上都有介绍

1.将软件ftp(二进制模式上传)到目标服务器上的指定目录下

2.解压缩安装文件到指定目录

gzip -dc .tar.gz | tar -xvof –

3.进入到GoldenGate的安装目录.

4.运行GGSCI

5. In GGSCI, issue the following command to create the GoldenGate working directories.

CREATE SUBDIRS

6. Issue the following command to exit GGSCI.

EXIT

就这么简单,就装完了

在配置GoldenGate环境时,刚开始的时候,我们总是需要先初始化把Source Database中需要复制的表的数据先load到目标库中,除非Source Database是一个新建的库或需要复制的对象中还没有任何数据。

目标:为了实现oragg1中的study.zrp到oragg2的实时数据同步,在配置OGG实现同步前,先把两个系统中的zrp表中的数据完成初始化同步。

说明:完成这个数据同步的技术很多,我这里仅仅是为了说明如何利用GoldenGate的Direct Load的方法实现数据的同步。

把源端数据库的数据同步到目标数据库

初始环境:利用系统的测试脚本(demo_ora_create.sql、demo_ora_insert.sql)完成源端建表和数据插入,目标端的建表工作。

1、在源库上为gate01建立专用的表空间

SQL> create tablespace ggs

2datafile '/oracle/oradata/hrss2/ggs01.dbf' size 50M,

3'/oracle/oradata/hrss2/ggs02.dbf' size 50m;

Tablespace created.

2、在源数据库上建数据库用户gate01

SQL> create user gate01 identified by gate01

2default tablespace ggs

3temporary tablespace TEMP

4quota unlimited on ggs;

User created.

SQL> grant connect,resource,dba to gate01;

Grant succeeded.

3、在源数据库上建数据库用户gate01的表TCUSTMER、TCUSTORD,并插入记录

>conn gate01/gate01

>@demo_ora_create.sql

>@demo_ora_insert.sql

4、在目标数据库上为gate02建立专用的表空间

SQL> create tablespace ggs

datafile '/oracle/oradata/hrss1/ggs01.dbf' size 50M,

'/oracle/oradata/hrss1/ggs02.dbf' size 50m;

Tablespace created.

5、在目标数据库上建数据库用户gate02

create user gate02 identified by gate02

default tablespace ggs

temporary tablespace TEMP

quota unlimited on ggs;

User created.

SQL> grant connect,resource,dba to gate02;

Grant succeeded.

6、在目标数据库上建数据库用户gate02的表TCUSTMER、TCUSTORD,不需要插入记录

>conn gate02/gate02

>@ SQL> @/oracle/ggs/demo_ora_create.sql

7、在源数据上配置管理进程MGR

GGSCI (source) 1> edit params mgr

port 7809

~

"dirprm/mgr.prm" [New] 2L, 11C written

GGSCI (source) 2> start mgr –启动管理进程

Manager started.

8、在目标数据库上配置管理进程MGR

GGSCI (target) 1> edit params mgr

port 7809

~

~

~

"dirprm/mgr.prm" [New] 1L, 10C written

GGSCI (target) 2> start mgr

Manager started.

9、在source和target端检查管理进程是否启动

GGSCI (source) 3> info mgr

Manager is running (IP port source.7809).

GGSCI (target) 3> info mgr

Manager is running (IP port target.7809).

10、在源数据库上增加需要传输的用户表

GGSCI (source) 4> dblogin userid gate01,password gate01

Successfully logged into database.

GGSCI (source) 5> add trandata gate01.tcustmer

Logging of supplemental redo data enabled for table GATE01.TCUSTMER.

GGSCI (source) 7> add trandata gate01.tcustord

Logging of supplemental redo data enabled for table GATE01.TCUSTORD.

GGSCI (source) 9> info trandata gate01.*

Logging of supplemental redo log data is enabled for table GATE01.TCUSTMER

Logging of supplemental redo log data is enabled for table GATE01.TCUSTORD

GGSCI (source) 10>

11、在源数据库上配置extract进程Eora01

GGSCI (source) 10> add extract eora01,sourceistable

EXTRACT added.

GGSCI (source) 11> info extract *, tasks

EXTRACTEORA01Initialized2011-02-22 20:17Status STOPPED

Checkpoint LagNot Available

Log Read CheckpointNot Available

First RecordRecord 0

TaskSOURCEISTABLE

GGSCI (source) 12> edit params eora01

extract eora01

userid gate01, password gate01

rmthost 192.168.1.20, mgrport 7809

rmttask replicat, group rora01

table gate01.*;

"dirprm/eora01.prm" [New] 5L, 127C written

12、在目标数据库上配置replicat进程Rora01

GGSCI (target) 4> ADD REPLICAT Rora01, SPECIALRUN

REPLICAT added.

GGSCI (target) 5> INFO REPLICAT *, TASKS

REPLICATRORA01Initialized2011-02-22 20:23Status STOPPED

Checkpoint Lag00:00:00 (updated 00:00:18 ago)

Log Read CheckpointNot Available

TaskSPECIALRUN

GGSCI (target) 6> EDIT PARAMS Rora01

REPLICAT Rora01

ASSUMETARGETDEFS

USERID gate02, PASSWORD "gate02"

DISCARDFILE ./dirrpt/Rora01.dsc, PURGE

MAP gate01.*, TARGET gate02.*;

~

~

"dirprm/rora01.prm" [New] 6L, 137C written

13、在源数据库上执行数据的初始化过程

START EXTRACT Eora01

VIEW REPORTEORA01(在源数据上查看是否有报错)

GGSCI (source) 6> VIEW REPORT EORA01

2011-02-22 21:12:57INFOOGG-01017Wildcard resolution set to IMMEDIATE because SOURCEISTABLE is us

ed.

***********************************************************************

Oracle GoldenGate Capture for Oracle

Version 11.1.1.0.0 Build 078

Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2010 16:16:35

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

Starting at 2011-02-22 21:12:57

***********************************************************************

Operating System Version:

Linux

Version #1 SMP Fri Jul 25 14:41:56 EDT 2008, Release2.6.9-78.0.0.0.1.ELsmp

Node: source

Machine: i686

soft limithard limit

Address Space Size:unlimitedunlimited

Heap Size:unlimitedunlimited

File Size:unlimitedunlimited

CPU Time: unlimitedunlimited

Process id: 6305

Description:

***********************************************************************

**Running with the following parameters**

***********************************************************************

extract eora01

userid gate01, password ******

rmthost 192.168.1.20, mgrport 7809

rmttask replicat, group rora01

table gate01.*;

TABLEWildcardresolved (entry GATE01.*):

table GATE01.TCUSTMER;

Using the following key columns for source table GATE01.TCUSTMER: CUST_CODE.

TABLEWildcardresolved (entry GATE01.*):

table GATE01.TCUSTORD;

Using the following key columns for source table GATE01.TCUSTORD: CUST_CODE, ORDER_DATE, PRODUCT_CODE, O

RDER_ID.

CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:64K

CACHESIZE:2G

CACHEBUFFERSIZE (soft max):4M

CACHEPAGEOUTSIZE (normal):4M

PROCESS VM AVAIL FROM OS (min):2.89G

CACHESIZEMAX (strict force to disk):2.65G

Database Version:

Oracle Database 10gEnterpriseEdition Release10.2.0.1.0 - Prod

PL/SQL Release10.2.0.1.0 - Production

CORE10.2.0.1.0Production

TNS for Linux: Version10.2.0.1.0 - Production

NLSRTL Version10.2.0.1.0 - Production

Database Language and Character Set:

NLS_LANG environment variable specified has invalid format, default value will be used.

NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.

NLS_LANGUAGE= "AMERICAN"

NLS_TERRITORY= "AMERICA"

NLS_CHARACTERSET = "ZHS16GBK"

Warning: your NLS_LANG setting does not match database server language setting.

Please refer to user manual for more information.

Processing table GATE01.TCUSTMER

Processing table GATE01.TCUSTORD

***********************************************************************

*** Run Time Statistics ***

***********************************************************************

Report at 2011-02-22 21:13:10 (activity since 2011-02-22 21:12:57)

Output to rora01:

From Table GATE01.TCUSTMER:

#inserts:2

#updates:0

#deletes:0

#discards:0

From Table GATE01.TCUSTORD:

#inserts:2

#updates:0

#deletes:0

#discards:0

GGSCI (source) 7>

VIEW REPORT RORA01(在目标数据上查看是否有报错)

GGSCI (target) 11> VIEW REPORT RORA01

***********************************************************************

Oracle GoldenGate Delivery for Oracle

Version11.1.1.0.0 Build 078

Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2010 16:38:15

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

Starting at 2011-02-22 21:13:27

***********************************************************************

Operating System Version:

Linux

Version #1 SMP Fri Jul 25 14:41:56 EDT 2008, Release2.6.9-78.0.0.0.1.ELsmp

Node: target

Machine: i686

soft limithard limit

Address Space Size:unlimitedunlimited

Heap Size:unlimitedunlimited

File Size:unlimitedunlimited

CPU Time:unlimitedunlimited

Process id: 28268

Description:

***********************************************************************

**Running with the following parameters**

***********************************************************************

REPLICAT Rora01

ASSUMETARGETDEFS

USERID gate02, PASSWORD "******"

DISCARDFILE ./dirrpt/Rora01.dsc, PURGE

MAP gate01.*, TARGET gate02.*;

CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:64K

CACHESIZE:512M

CACHEBUFFERSIZE (soft max):4M

CACHEPAGEOUTSIZE (normal):4M

PROCESS VM AVAIL FROM OS (min):1G

CACHESIZEMAX (strict force to disk):881M

Database Version:

Oracle Database 10gEnterpriseEdition Release10.2.0.1.0 - Prod

PL/SQL Release10.2.0.1.0 - Production

CORE10.2.0.1.0Production

TNS for Linux: Version10.2.0.1.0 - Production

NLSRTL Version10.2.0.1.0 - Production

Database Language and Character Set:

NLS_LANG environment variable specified has invalid format, default value will be used.

NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.

NLS_LANGUAGE= "AMERICAN"

NLS_TERRITORY= "AMERICA"

NLS_CHARACTERSET = "ZHS16GBK"

Warning: your NLS_LANG setting does not match database server language setting.

Please refer to user manual for more information.

***********************************************************************

**Run Time Messages**

***********************************************************************

Wildcard MAP resolved (entry GATE01.*):

MAP GATE01.TCUSTMER, TARGET gate02.TCUSTMER;

Using following columns in default map by name:

CUST_CODE, NAME, CITY, STATE

Using the following key columns for target table GATE02.TCUSTMER: CUST_CODE.

Wildcard MAP resolved (entry GATE01.*):

MAP GATE01.TCUSTORD, TARGET gate02.TCUSTORD;

Using following columns in default map by name:

CUST_CODE, ORDER_DATE, PRODUCT_CODE, ORDER_ID, PRODUCT_PRICE,

PRODUCT_AMOUNT, TRANSACTION_ID

Using the following key columns for target table GATE02.TCUSTORD: CUST_CODE, ORDER_DATE, PRODUCT_CODE, O

RDER_ID.

***********************************************************************

*** Run Time Statistics ***

***********************************************************************

Report at 2011-02-22 21:13:44 (activity since 2011-02-22 21:13:38)

From Table GATE01.TCUSTMER to GATE02.TCUSTMER:

#inserts:2

#updates:0

#deletes:0

#discards:0

From Table GATE01.TCUSTORD to GATE02.TCUSTORD:

#inserts:2

#updates:0

#deletes:0

#discards:0

CACHE OBJECT MANAGER statistics

CACHE MANAGER VM USAGE

vm current=0vm anon queues =0

vm anon in use =0vm file=0

vm used max=0==> CACHE BALANCED

CACHE CONFIGURATION

cache size= 512Mcache force paging = 881M

buffer min=64Kbuffer highwater=4M

pageout eligible size =4M

CACHE Transaction Stats

trans active=0max concurrent =0

non-zero total =0trans total=0

CACHE File Caching

disk current=0disk total=0

disk caching=0file cached =0

file retrieves =0

CACHE MANAGEMENT

buffer links=0anon gets=0

forced unmaps =0cnnbl try=0

cached out= 0force out=0

Allocation Request Distribution

< 128B:0

128B:00| 512B:00

2K:00|8K:00

32K:00| 128K:00

512K:00|2M:00

8M:00|32M:00

128M:00| 512M:00

2G:00|8G:0

Cached Transaction Size Distribution

0:0

< 4K:0

4K:00|16K:00

64K:00| 256K:00

1M:00|4M:00

16M:00|64M:00

256M:00|1G:00

4G:00|16G:00

64G:00| 256G:00

1T:00|4T:00

16T:00|64T:00

256T:00|1024T:00

QUEUE Statistics:

num queues=15default index =0

cur len=0max len=0

q vm current=0vm max=0

q hits=0q misses=0

queue sizeq hitscurlenmaxlencannibalized

064K0000

1128K0000

2256K0000

3 512K0000

41M0000

52M0000

64M0000

78M0000

816M0000

932M0000

1064M0000

11128M0000

12256M0000

13512M0000

141G0000

================================================================================

CACHE POOL #0

POOL INFOgroup: rora01id: p28268_BLOB

trans active=0trans concurrent (max) =0

trans total=0(0 )

flag= 0x00000000

last error= (0=)

Allocation Request Distribution

< 128B:0

128B:00| 512B:00

2K:00|8K:00

32K:00| 128K:00

512K:00|2M:00

8M:00|32M:00

128M:00| 512M:00

2G:00|8G:0

QUEUE Statistics:

num queues=15default index =0

cur len=0max len=0

q vm current=0vm max=0

q hits=0q misses=0

queue sizeq hitscurlenmaxlencannibalized

064K0000

1128K0000

2256K0000

3512K0000

41M0000

52M0000

64M0000

78M0000

816M0000

932M0000

1064M0000

11128M0000

12256M0000

13512M0000

141G0000

================================================================================

CACHE POOL #0

POOL INFOgroup: rora01id: p28268_BLOB

trans active=0trans concurrent (max) =0

trans total=0(0 )

flag= 0x00000000

last error= (0=)

Allocation Request Distribution

< 128B:0

128B:00| 512B:00

2K:00|8K:00

32K:00| 128K:00

512K:00|2M:00

8M:00|32M:00

128M:00| 512M:00

2G:00|8G:0

GGSCI (target) 12>

SQL> SELECT * FROM TCUSTMER;

CUST NAMECITYST

---- ------------------------------ -------------------- --

WILL BG SOFTWARE CO.SEATTLEWA

JANE ROCKY FLYER INC.DENVERCO

SQL> SELECT * FROM TCUSTORD;

CUST ORDER_DAT PRODUCT_ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID

---- --------- -------- ---------- ------------- -------------- --------------

WILL 30-SEP-94 CAR144175203100

JANE 11-NOV-95 PLANE2561333001100

SQL>

源数据库的修改实时同步到目标数据库

1、在源数据上配置extract捕获进程EXT01

----捕获进程EXT01配置参数文件

>EDIT PARAMS EXT01

EXTRACT EXT01

USERID gate01, password gate01

EXTTRAIL ./dirdat/wm

--DDL

TABLE gate01.*;

---添加捕获进程EXT01

>ADD EXTRACT EXT01, TRANLOG, BEGIN NOW (direct load方式:ADD EXTRACT EXT01, SOURCEISTABLE)

---添加队列文件,并将该队列文件指定给相应的捕获进程

>ADD EXTTRAIL ./dirdat/wm, EXTRACT EXT01, MEGABYTES 5

GGSCI (source) 10> INFO EXTRACT EXT01, DETAIL

EXTRACTEXT01Initialized2011-02-22 21:24Status STOPPED

Checkpoint Lag00:00:00 (updated 00:01:13 ago)

Log Read CheckpointOracle Redo Logs

2011-02-22 21:24:47Seqno 0, RBA 0

Target Extract Trails:

Remote Trail NameSeqnoRBAMax MB

./dirdat/wm005

Extract SourceBeginEnd

Not Available* Initialized *2011-02-22 21:24

Current directory/oracle/ggs

Report file/oracle/ggs/dirrpt/EXT01.rpt (does not yet exist)

Parameter file/oracle/ggs/dirprm/ext01.prm

Checkpoint file/oracle/ggs/dirchk/EXT01.cpe

Process file/oracle/ggs/dirpcs/EXT01.pce

Stdout file/oracle/ggs/dirout/EXT01.out

Error log/oracle/ggs/ggserr.log

2、在源数据上配置pump传输进程PUMP01

---传输进程PUMP01配置参数文件

>EDIT PARAMS PUMP01

EXTRACT PUMP01

PASSTHRU

RMTHOST 192.168.1.20, MGRPORT 7809

RMTTRAIL ./dirdat/wm

TABLE gate01.*;

---添加传输进程PUMP01,并指明它的源数据是刚才建立的队列文件./dirdat/et

>ADD EXTRACT PUMP01, EXTTRAILSOURCE ./dirdat/wm

----创建远程队列文件,并将其指定给传输进程PUMP01

>ADD RMTTRAIL ./dirdat/wm, EXTRACT PUMP01, MEGABYTES 5

3、在源数据库上启动data pump capture process

注意:在启动传输进程前,必须确保目标端的manager进程已经启动,否则会启动失败

>START EXTRACT EXT01

>START EXTRACT PUMP01

>INFO ALL

GGSCI (source) 14> START EXTRACT EXT01

Sending START request to MANAGER ...

EXTRACT EXT01 starting

GGSCI (source) 15> START EXTRACT PUMP01

Sending START request to MANAGER ...

EXTRACT PUMP01 starting

GGSCI (source) 16> INFO ALL

ProgramStatusGroupLagTime Since Chkpt

MANAGERRUNNING

EXTRACTRUNNINGEXT0100:00:0000:00:06

EXTRACTRUNNINGPUMP0100:00:0000:00:07

5、在目标数据库的全局文件中添加checkpoint表,用来实现一致性的

>EDIT PARAMS ./GLOBALS

CHECKPOINTTABLE GATE02.GGS_CHECKPOINT

注意:要退出GGSCI命令行,再进入GGSCI命令行,使得全局文件生效。

6、目标数据库配置replicat进程REP01

---配置复制进程REP01参数文件

>EDIT PARAMS REP01

REPLICAT REP01

USERID gate02, PASSWORD gate02

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/REP01.dsc, PURGE

MAP gate01.*, TARGET gate02.*;

---增加复制进程REP01,并指定存放的队列文件,CHECKPOINTTABLE实现一致性。

>DBLOGIN USERID gate02, PASSWORD gate02

GGSCI (target) 2> DBLOGIN USERIDgate02, PASSWORDgate02

Successfully logged into database.

>ADD CHECKPOINTTABLE

GGSCI (target) 3> ADD CHECKPOINTTABLE

No checkpoint table specified, using GLOBALS specification (GATE02.GGS_CHECKPOINT)...

Successfully created checkpoint table GATE02.GGS_CHECKPOINT.

>ADD REPLICAT REP01, EXTTRAIL ./dirdat/wm

GGSCI (target) 4> ADD REPLICAT REP01, EXTTRAIL ./dirdat/wm

REPLICAT added.

---启动目标数据库的复制进程

>START REPLICAT REP01

GGSCI (target) 5> START REPLICAT REP01

Sending START request to MANAGER ...

REPLICAT REP01 starting

>INFO ALL

GGSCI (target) 6> INFO ALL

ProgramStatusGroupLagTime Since Chkpt

MANAGERRUNNING

REPLICATRUNNINGREP0100:00:0000:00:01

>VIEW REPORT REP01

GGSCI (target) 7> VIEW REPORT REP01

***********************************************************************

Oracle GoldenGate Delivery for Oracle

Version11.1.1.0.0 Build 078

Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2010 16:38:15

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

Starting at 2011-02-22 21:39:05

***********************************************************************

Operating System Version:

Linux

Version #1 SMP Fri Jul 25 14:41:56 EDT 2008, Release2.6.9-78.0.0.0.1.ELsmp

Node: target

Machine: i686

soft limithard limit

Address Space Size:unlimitedunlimited

Heap Size:unlimitedunlimited

File Size:unlimitedunlimited

CPU Time:unlimitedunlimited

Process id: 28294

Description:

***********************************************************************

**Running with the following parameters**

***********************************************************************

REPLICAT REP01

USERIDgate02,PASSWORD ******

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/REP01.dsc, PURGE

MAP gate01.*, TARGET gate02.*;

CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:64K

CACHESIZE:512M

CACHEBUFFERSIZE (soft max):4M

CACHEPAGEOUTSIZE (normal):4M

PROCESS VM AVAIL FROM OS (min):1G

CACHESIZEMAX (strict force to disk):881M

Database Version:

Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Prod

PL/SQL Release10.2.0.1.0 - Production

CORE10.2.0.1.0Production

TNS for Linux: Version10.2.0.1.0 - Production

NLSRTL Version10.2.0.1.0 - Production

Database Language and Character Set:

NLS_LANG environment variable specified has invalid format, default value will be used.

NLS_LANG environment variable not set, using default value AMERICAN_AMERICA.US7ASCII.

NLS_LANGUAGE= "AMERICAN"

NLS_TERRITORY= "AMERICA"

NLS_CHARACTERSET = "ZHS16GBK"

Warning: your NLS_LANG setting does not match database server language setting.

Please refer to user manual for more information.

***********************************************************************

**Run Time Messages**

***********************************************************************

Opened trail file ./dirdat/wm000000 at 2011-02-22 21:39:07

GGSCI (target) 8>

6、检查同步结果

1在源数据库插入数据

>conn gate01 /gate01

>@demo_ora_misc.sql

2如果出错,可以查看源数据库EXT01、PUMP01,或者目标数据库上的REP01进程的错误。如:

VIEW REPORT EXT01

VIEW REPORT PUMP01

VIEW REPORT REP01

如果修改进程的配置文件,需要关闭进程,然后重新启动才有效。

把源数据库的DDL修改同步到目标数据库中

1、在源数据库端关闭数据库的回收站

>show parameter recycle

>alter system set recyclebin=off;

SQL> show parameter recycle

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

buffer_pool_recyclestring

db_recycle_cache_sizebig integer 0

recyclebinstringon

SQL> alter system set recyclebin=off;

System altered.

SQL> show parameter recycle

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

buffer_pool_recyclestring

db_recycle_cache_sizebig integer 0

recyclebinstringOFF

2、编辑源数据库参数文件GLOBALS

>EDIT PARAMS ./GLOBALS

GGSCHEMAgate01----gate01支持DDL同步的用户

注意:要退出GGSCI命令行,再进入GGSCI命令行,使得全局文件生效。

3、在源数据库上创建gate01所需要的表

>sqlplus "/ as sysdba"

>GRANT EXECUTE ON UTL_FILE TO gate01;

SQL> conn / as sysdba

Connected.

SQL> GRANT EXECUTE ON UTL_FILE TO gate01;

Grant succeeded.

>@marker_setup选择支持DDL同步的用户gate01

SQL> @marker_setup

Marker setup script

You will be prompted for the name of a schema for the GoldenGate database objects.

NOTE: The schema must be created prior to running this script.

NOTE: Stop all DDL replication before starting this installation.

Enter GoldenGate schema name:gate01

Marker setup table script complete, running verification script...

Please enter the name of a schema for the GoldenGate database objects:

Setting schema name to GATE01

MARKER TABLE

-------------------------------

OK

MARKER SEQUENCE

-------------------------------

OK

Script complete.

SQL>

>@ddl_setup选择支持DDL同步的用户gate01,选择INITIALSETUP,然后选择YES。

(注意安装的类型有两种:INITIALSETUP、NORMAL。当安装DDL复制操作或重新安装DDL复制操作选INITIALSETUP,当更新DDL复制操作选NORMAL。)

(如果之前ddl安装包安装在其它用户下,而现在又想安装到与之前不同的用户,需要使用@ddl_remove.sql删除安装在其它用户上的DDL包,再运行@ddl_setup安装包。)

SQL> @ddl_setup

GoldenGate DDL Replication setup script

Verifying that current user has privileges to install DDL Replication...

Checking user sessions...

There are 2 user sessions currently open (first 3 are shown):

PROGRAMOS_USERUSERNAME

---------------------------------------- ---------------- --------------------

SIDSER#PID

---------- ---------- ------------------

extract@source (TNSoracleGATE01

145346326

extract@source (TNSoracleGATE01

158476327

IMPORTANT: Oracle sessions that used or may use DDL must be disconnected. If you

continue, some of these sessions may cause DDL to fail with ORA-6508.

To proceed, enter yes. To stop installation, enter no.

Enter yes or no:yes

You will be prompted for the name of a schema for the GoldenGate database objects.

NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.

NOTE: The schema must be created prior to running this script.

NOTE: Stop all DDL replication before starting this installation.

Enter GoldenGate schema name:gate01

You will be prompted for the mode of installation.

To install or reinstall DDL replication, enter INITIALSETUP

To upgrade DDL replication, enter NORMAL

Enter mode of installation:INITIALSETUP

Working, please wait ...

Spooling to file ddl_setup_spool.txt

Using GATE01 as a GoldenGate schema name, INITIALSETUP as a mode of installation.

Working, please wait ...

RECYCLEBIN must be empty.

This installation will purge RECYCLEBIN for all users.

To proceed, enter yes. To stop installation, enter no.

Enter yes or no:no

BEGIN

*

ERROR at line 1:

ORA-20783:

GoldenGate DDL Replication setup:

*** Cannot proceed unless recyclebin is empty

ORA-06512: at line 3

Disconnected from Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

source-> sqlplus / as sysdba

SQL*Plus: Release10.2.0.1.0 - Production on Tue Feb 22 22:03:07 2011

Copyright (c) 1982, 2005, Oracle.All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> @ddl_setup

GoldenGate DDL Replication setup script

Verifying that current user has privileges to install DDL Replication...

Checking user sessions...

There are 2 user sessions currently open (first 3 are shown):

PROGRAMOS_USERUSERNAME

---------------------------------------- ---------------- --------------------

SIDSER#PID

---------- ---------- ------------------

extract@source (TNSoracleGATE01

145346326

extract@source (TNSoracleGATE01

158476327

IMPORTANT: Oracle sessions that used or may use DDL must be disconnected. If you

continue, some of these sessions may cause DDL to fail with ORA-6508.

To proceed, enter yes. To stop installation, enter no.

Enter yes or no:yes

You will be prompted for the name of a schema for the GoldenGate database objects.

NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.

NOTE: The schema must be created prior to running this script.

NOTE: Stop all DDL replication before starting this installation.

Enter GoldenGate schema name:gate01

You will be prompted for the mode of installation.

To install or reinstall DDL replication, enter INITIALSETUP

To upgrade DDL replication, enter NORMAL

Enter mode of installation:INITIALSETUP

Working, please wait ...

Spooling to file ddl_setup_spool.txt

Using GATE01 as a GoldenGate schema name, INITIALSETUP as a mode of installation.

Working, please wait ...

RECYCLEBIN must be empty.

This installation will purge RECYCLEBIN for all users.

To proceed, enter yes. To stop installation, enter no.

Enter yes or no:yes

DDL replication setup script complete, running verification script...

Please enter the name of a schema for the GoldenGate database objects:

Setting schema name to GATE01

DDLORA_GETTABLESPACESIZE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

CLEAR_TRACE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

CREATE_TRACE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

TRACE_PUT_LINE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

INITIAL_SETUP STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

DDLVERSIONSPECIFIC PACKAGE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

DDLREPLICATION PACKAGE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

DDLREPLICATION PACKAGE BODY STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

DDL HISTORY TABLE

-----------------------------------

OK

DDL HISTORY TABLE(1)

-----------------------------------

OK

DDL DUMP TABLES

-----------------------------------

OK

DDL DUMP COLUMNS

-----------------------------------

OK

DDL DUMP LOG GROUPS

-----------------------------------

OK

DDL DUMP PARTITIONS

-----------------------------------

OK

DDL DUMP PRIMARY KEYS

-----------------------------------

OK

DDL SEQUENCE

-----------------------------------

OK

GGS_TEMP_COLS

-----------------------------------

OK

GGS_TEMP_UK

-----------------------------------

OK

DDL TRIGGER CODE STATUS:

Line/pos

--------------------

Error

-----------------------------------------------------------------

No errors

No errors

DDL TRIGGER INSTALL STATUS

-----------------------------------

OK

DDL TRIGGER RUNNING STATUS

----------------------------------------------------------------------

ENABLED

STAYMETADATA IN TRIGGER

----------------------------------------------------------------------

OFF

DDL TRIGGER SQL TRACING

----------------------------------------------------------------------

0

DDL TRIGGER TRACE LEVEL

----------------------------------------------------------------------

0

LOCATION OF DDL TRACE FILE

--------------------------------------------------------------------------------

/oracle/admin/hrss2/udump/ggs_ddl_trace.log

Analyzing installation status...

STATUS OF DDL REPLICATION

--------------------------------------------------------------------------------

SUCCESSFUL installation of DDL Replication software components

Script complete.

SQL>

>@role_setup选择gate01

SQL> @role_setup

GGS Role setup script

This script will drop and recreate the role GGS_GGSUSER_ROLE

To use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)

You will be prompted for the name of a schema for the GoldenGate database objects.

NOTE: The schema must be created prior to running this script.

NOTE: Stop all DDL replication before starting this installation.

Enter GoldenGate schema name:gate01

Wrote file role_setup_set.txt

PL/SQL procedure successfully completed.

Role setup script complete

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

GRANT GGS_GGSUSER_ROLE TO

where is the user assigned to the GoldenGate processes.

SQL>

>GRANT GGS_GGSUSER_ROLE TO gate01 ;

SQL> GRANT GGS_GGSUSER_ROLE TO gate01 ;

Grant succeeded.

>@ddl_enable

SQL> @ddl_enable

Trigger altered.

检查支持DDL同步的用户gate01的表是否安装好

>conn gate01/gate01

>SELECT TABLE_NAME FROM USER_TABLES;

SQL> SELECT TABLE_NAME FROM USER_TABLES;

TABLE_NAME

------------------------------

TCUSTMER

TCUSTORD

GGS_MARKER

GGS_SETUP

GGS_DDL_HIST_ALT

GGS_DDL_HIST

GGS_DDL_COLUMNS

GGS_DDL_LOG_GROUPS

GGS_DDL_PARTITIONS

GGS_DDL_PRIMARY_KEYS

GGS_DDL_OBJECTS

TABLE_NAME

------------------------------

GGS_TEMP_UK

GGS_TEMP_COLS

13 rows selected.

SQL>

4、更新捕获进程EXT01

----捕获进程EXT01配置参数文件

>EDIT PARAMS EXT01

EXTRACT EXT01

USERID gate01, password "gate01"

EXTTRAIL ./dirdat/wm

---需要显式声明来打开DDL复制

DDL

TABLE gate01.*;

---重新启动EXT01

>STOP EXT01

>START EXT01

5、验证源数据库是否可以同步表结构到目标数据库中

在源数据上

>conn gate01/gate01

SQL> alter table tcustmer add AAA varchar(10);

Table altered.

SQL> commit ;

complete.

在目标数据上

>conn gate02/gate02

>DESC tcustmer

说明:在参考以上步骤测试DDL同步的时候最终发现报错了,目标库上的replicat进程异常停止了,通过view report rep01查看日志,提示目标库的gate02用户下没有GGS_SETUP这个表,不知道什么原因造成的。把源库上复制用户gate01下的GGS_SETUP的创建脚本复制下来在目标库的复制用户gate02下执行之后,重新启动replicat进程就ok了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值