安装oracle和db2,安装配置Oracle GoldenGate for DB2(单向)

本文的配置只支持source端到target端的同步,不支持双向同步,也不支持DDL操作和truncate table。

一、环境介绍

source端:

OS:WindowsXP 32bit

Database:DB2 v9.7.100.177

Fix Pack 1

OGG:Oracle GoldenGate

V11.2.1.0.1 for DB2 9.7 on Windows

2003, 2008

ip:192.168.3.168

target端:

OS:RHEL Server

release 5.8 64bit

Database:DB2 v9.7.0.3

Fix Pack 3

OGG:GG_V11.2.1.0.1

for DB2_9.7 on Linux x86_64

ip:192.168.3.239

二、数据库准备

source端和target端数据库为test。由于DB2的用户机制使用的是操作系统用户,我这里不创建新用户。source端的ogg安装、Extract用户都使用当前域用户liuxiaohui(官方文档建议ogg安装使用administrator用户);target端的ogg安装、Replicat用户都使用db2inst1。

1、创建测试表

在source端创建db2inst1.t1表,并插入数据:

D:\>db2

connect to test user db2inst1 using system

数据库连接信息

数据库服务器= DB2/NT 9.7.1

SQL授权标识= DB2INST1

本地数据库别名= TEST

D:\>db2 create

table t1(id integer,name varchar(10))

DB20000I  SQL命令成功完成。

D:\>db2 insert

into t1 values(1,'a')

DB20000I  SQL命令成功完成。

D:\>db2 insert

into t1 values(2,'b')

DB20000I  SQL命令成功完成。

在target端创建相同结构的db2inst1.t1表,不插入数据:

[db2inst1@localhost

~]$ db2 connect to test

Database Connection Information

Database server        = DB2/LINUXX8664 9.7.3

SQL authorization ID   = DB2INST1

Local database alias   = TEST

[db2inst1@localhost

~]$ db2 "create table t1(id integer,name varchar(10))"

DB20000I  The SQL command completed successfully.

2、配置数据库归档模式:

C:\Documents and Settings\liuxiaohui>db2 connect to test

数据库连接信息

数据库服务器= DB2/NT 9.7.1

SQL授权标识= LIUXIAOH...

本地数据库别名= TEST

C:\Documents and Settings\liuxiaohui>db2 get db cfg | findstr

LOGARCHMETH1

第一个日志归档方法(LOGARCHMETH1) = DISK:d:\db2\

三、安装ogg软件,启动mgr管理进程

1、source端:

在D:下创建目录D:\Oracle_GoldenGate

将安装包解压至D:\Oracle_GoldenGate目录下

双击运行ggsci,

GGSCI (liuxiaohui) 1> create subdirs

GGSCI (liuxiaohui) 2> edit params mgr

GGSCI (liuxiaohui) 3> view params mgr

PORT 7809

GGSCI (liuxiaohui) 4> start mgr

Manager started.

Windows下,默认情况下,manager不作为service安装,可以使用本地或域用户运行。这样,用户log out后,manager就会stop。如果将manager作为service安装,就可以使它和用户的连接独立开运行,可以配置它手动启动或者随系统启动:

在cmd中,切换目录至D:\Oracle_GoldenGate,运行如下命令:

D:\>cd Oracle_GoldenGate

D:\Oracle_GoldenGate>install

addservice

Service 'GGSMGR'

created.

Install program

terminated normally.

这时,在“服务”中,就多了GGSMGR项。

此时,再开启manager:

GGSCI

(liuxiaohui) 5> start mgr

Starting Manager

as service ('GGSMGR')...

Service started.

GGSCI (liuxiaohui)

6> info mgr

Manager is

running (IP port liuxiaohui.7809).

2、target端:

[db2inst1@localhost ~]$ cd /opt

[db2inst1@localhost opt]$ mkdir ggs

[db2inst1@localhost opt]$ cd ggs

[db2inst1@localhost ggs]$ tar -xvf

/opt/ggs_Linux_x64_db297_64bit.tar

此时运行GGSCI可能会提示lidb2.so.1共享库相关错误:

“./ggsci: error while loading shared libraries:

libdb2.so.1: cannot open shared object file: No such file or directory”

需要先设置共享库路径:

[db2inst1@localhost ggs]$ export

LD_LIBRARY_PATH=/opt/ibm/db2/V9.7/lib64

[db2inst1@localhost ggs]$ echo $LD_LIBRARY_PATH

/opt/ibm/db2/V9.7/lib64

[db2inst1@localhost ggs]$ ./ggsci

GGSCI (localhost.localdomain) 1> create subdirs

GGSCI (localhost.localdomain) 2> edit

params mgr

GGSCI (localhost.localdomain) 3> view

params mgr

PORT 7809

GGSCI (localhost.localdomain) 4> start mgr

Manager started.

GGSCI (localhost.localdomain) 5> info mgr

Manager is running (IP port

localhost.localdomain.7809).

四、初始化加载数据

在异构平台(例如oracle-mysql),这个功能显得非常有用。而在DB2-DB2或oracle-oracle的数据复制条件下,可以使用数据库本身的导入导出和迁移工具。

1、source端添加extract进程

GGSCI (liuxiaohui) 7> add extract

einig1,sourceistable

EXTRACT added.

//sourceistable代表直接从表中读取数据

//einig1代表extract initial load group 1缩写

GGSCI (liuxiaohui) 8> edit params einig1

GGSCI (liuxiaohui) 9> view params einig1

extract einig1

sourcedb test userid liuxiaohui,password liu@123456

rmthost 192.168.3.239,mgrport 7809

rmttask replicat,group rinig1

table db2inst1.t1;

2、target端添加replicat进程

GGSCI (localhost.localdomain) 1> add replicat

rinig1,specialrun

REPLICAT added.

//specialrun代表只运行一次

GGSCI (localhost.localdomain) 6> edit params rinig1

//rinig1代表replicat initial load group 1缩写

//rinig1的名字必须同source端定义的group名字相同

GGSCI (localhost.localdomain) 7> view params rinig1

replicat rinig1

assumetargetdefs

targetdb test userid db2inst1,password topnet

discardfile ./dirrpt/rinig1.dsc,purge

map db2inst1.*,target db2inst1.*;

3、source端启动extract进程,查看日志输出

GGSCI (liuxiaohui) 12> start extract einig1

Sending START request to MANAGER ('GGSMGR') ...

EXTRACT EINIG1 starting

GGSCI (liuxiaohui) 13> view report einig1

2013-01-15 16:03:04

INFO    OGG-01017  Wildcard resolution set to IMMEDIATE because

SOURC

EISTABLE is used.

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

Oracle

GoldenGate Capture for DB2

Version 11.2.1.0.1

OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230

Windows

(optimized), DB2 9.7 on Apr 23 2012 07:49:42

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All

rights reserved.

Starting at 2013-01-15 16:03:04

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

Operating System Version:

Microsoft Windows XP Professional, on x86

Version 5.1 (Build 2600: Service Pack 3)

Process id: 4708

Description:

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

**            Running with

the following parameters

**

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

2013-01-15 16:03:04

INFO    OGG-03035  Operating system character set identified as

GBK.

Locale: zh_Hans_CN, LC_ALL:.

extract einig1

sourcedb test userid liuxiaohui,password **********

2013-01-15 16:03:04

INFO    OGG-03036  Database character set identified as UTF-8.

Locale

: zh_Hans_CN.

2013-01-15 16:03:04

INFO    OGG-03037  Session character set identified as

windows-936.

rmthost 192.168.3.239,mgrport 7809

rmttask replicat,group rinig1

table db2inst1.t1;

Using the following key columns for source table DB2INST1.T1:

ID, NAME.

2013-01-15 16:03:04

INFO    OGG-01815  Virtual Memory Facilities for: COM

anon alloc:

MapViewOfFile  anon free: UnmapViewOfFile

file alloc:

MapViewOfFile  file free: UnmapViewOfFile

target directories:

D:\Oracle_GoldenGate\dirtmp.

CACHEMGR virtual memory values (may have been adjusted)

CACHESIZE:                                1G

CACHEPAGEOUTSIZE (normal):                4M

PROCESS VM AVAIL FROM OS (min):        1.50G

CACHESIZEMAX (strict force to disk):   1.37G

Database Version:

DB2/NT

Version 09.07.0001

ODBC Version 03.01.0000

Driver Information:

DB2CLI.DLL

Version 09.07.0001

ODBC Version 03.51

Database Language and Character Set:

Application Codepage  =

1386

Database Codepage     =

1208

Warning: Your Application codepage setting does not match

database codepage setting.

Please refer to user manual for more information.

Processing table DB2INST1.T1

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

*                   ** Run Time Statistics **                         *

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

Report at 2013-01-15 16:03:10 (activity since 2013-01-15

16:03:04)

Output to rinig1:

From Table DB2INST1.T1:

#                   inserts:         2

#                   updates:         0

#                   deletes:         0

#                  discards:         0

4、target端验证

[db2inst1@localhost ggs]$ db2 connect to test

Database Connection

Information

Database server        = DB2/LINUXX8664 9.7.3

SQL authorization ID   = DB2INST1

Local database alias   = TEST

[db2inst1@localhost ggs]$ db2 "select * from db2inst1.t1"

ID          NAME

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

1 a

2 b

2 record(s) selected.

五、配置实时同步

1、在source端配置extract进程

进程的名字不能超过8个字符

GGSCI (liuxiaohui) 14> edit params edb2_t1

GGSCI (liuxiaohui) 15> view params edb2_t1

extract edb2_t1

sourcedb test userid liuxiaohui,password liu@123456

exttrail .\dirdat\aa

table db2inst1.*;

2、添加trandata

GGSCI (liuxiaohui) 16> dblogin sourcedb test,userid

liuxiaohui,password liu@123456

2013-01-15 16:23:05

INFO    OGG-03036  Database character set identified as UTF-8.

Locale

: zh_Hans_CN.

2013-01-15 16:23:05

INFO    OGG-03037  Session character set identified as

windows-936.

Successfully logged into database.

GGSCI (liuxiaohui) 17> add trandata db2inst1.*

Logging of supplemental log data (include longvar) is enabled

for table DB2INST1.T1

3、添加extract进程,添加trail文件

trail文件名前缀不能超过2个字符

GGSCI (liuxiaohui) 18> add extract edb2_t1,tranlog,begin now

EXTRACT added.

GGSCI (liuxiaohui) 19> add exttrail .\dirdat\aa,extract

edb2_t1,megabytes 100

EXTTRAIL added.

GGSCI (liuxiaohui) 20> start extract edb2_t1

Sending START request to MANAGER ('GGSMGR') ...

EXTRACT EDB2_T1 starting

GGSCI (liuxiaohui) 21> info extract edb2_t1

EXTRACT    EDB2_T1   Last Started 2013-01-15 16:28   Status RUNNING

Checkpoint Lag

00:01:23 (updated 00:00:07 ago)

Log Read Checkpoint  DB2

Transaction Log

2013-01-15 16:26:50.000000  LSN

229816774

GGSCI (liuxiaohui) 22> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING     EDB2_T1

00:00:00      00:00:05

4、添加配置pump进程

GGSCI (liuxiaohui) 23> edit params pdb2_t1

GGSCI (liuxiaohui) 24> view params pdb2_t1

extract pdb2_t1

passthru

rmthost 192.168.3.239,mgrport 7809

rmttrail ./dirdat/pa

table db2inst1.*;

GGSCI (liuxiaohui) 25> add extract pdb2_t1,exttrailsource

.\dirdat\aa

EXTRACT added.

GGSCI (liuxiaohui) 26> add rmttrail ./dirdat/pa,extract

pdb2_t1,megabytes 100

RMTTRAIL added.

GGSCI (liuxiaohui) 27> start extract pdb2_t1

Sending START request to MANAGER ('GGSMGR') ...

EXTRACT PDB2_T1 starting

GGSCI (liuxiaohui) 28> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING     EDB2_T1

00:00:00      00:00:00

EXTRACT     RUNNING     PDB2_T1

00:00:00      00:00:58

5、在target端添加检查表

GGSCI (localhost.localdomain) 1> edit params ./GLOBALS

GGSCI (localhost.localdomain) 2> view params ./GLOBALS

checkpointtable db2inst1.ggschkpt

GGSCI (localhost.localdomain) 5> quit  //这里需要退出一下

[db2inst1@localhost ggs]$ ./ggsci

GGSCI (localhost.localdomain) 1> dblogin sourcedb test,userid

db2inst1,password topnet

2013-01-15 16:42:05

INFO    OGG-03036  Database character set identified as UTF-8.

Locale: zh_CN.

2013-01-15 16:42:05

INFO    OGG-03037  Session character set identified as EUC-CN.

Successfully logged into database.

GGSCI (localhost.localdomain) 2> add checkpointtable

No checkpoint table specified, using GLOBALS specification

(db2inst1.ggschkpt)...

Successfully created checkpoint table db2inst1.ggschkpt.

6、在target端添加配置replicat进程

GGSCI (localhost.localdomain) 3> edit params rdb2_t1

GGSCI (localhost.localdomain) 4> view params rdb2_t1

replicat rdb2_t1

targetdb test userid db2inst1,password topnet

handlecollisions

assumetargetdefs

discardfile ./dirrpt/rdb2_t1.dsc,purge

map db2inst1.*,target db2inst1.*;

GGSCI (localhost.localdomain) 5> add replicat

rdb2_t1,exttrail ./dirdat/pa

REPLICAT added.

GGSCI (localhost.localdomain) 6> start replicat rdb2_t1

Sending START request to MANAGER ...

REPLICAT RDB2_T1 starting

GGSCI (localhost.localdomain) 7> info replicat rdb2_t1

REPLICAT   RDB2_T1   Last Started 2013-01-15 16:50   Status RUNNING

Checkpoint Lag

00:00:00 (updated 00:00:07 ago)

Log Read Checkpoint  File

./dirdat/pa000000

First

Record  RBA 0

GGSCI (localhost.localdomain) 8> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    RUNNING     RDB2_T1

00:00:00      00:00:02

六、测试同步

1、插入测试

D:\Oracle_GoldenGate>db2 select * from db2inst1.t1

ID          NAME

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

1 a

2 b

2条记录已选择。

D:\Oracle_GoldenGate>db2 insert into db2inst1.t1

values(3,'c')

DB20000I  SQL命令成功完成。

D:\Oracle_GoldenGate>db2 select * from db2inst1.t1

ID          NAME

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

1 a

2 b

3 c

3条记录已选择。

[db2inst1@localhost ggs]$ db2 "select * from

db2inst1.t1"

ID          NAME

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

1 a

2 b

3 c

3 record(s) selected.

2、修改测试

D:\Oracle_GoldenGate>db2 update db2inst1.t1 set name='E'

where id=3

DB20000I  SQL命令成功完成。

D:\Oracle_GoldenGate>db2 select * from db2inst1.t1

ID          NAME

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

1 a

2 b

3 E

3条记录已选择。

[db2inst1@localhost ggs]$ db2 "select * from

db2inst1.t1"

ID          NAME

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

1 a

2 b

3 E

3 record(s) selected.

3、删除测试

D:\Oracle_GoldenGate>db2 delete from db2inst1.t1 where id=3

DB20000I  SQL命令成功完成。

D:\Oracle_GoldenGate>db2 select * from db2inst1.t1

ID          NAME

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

1 a

2 b

2条记录已选择。

[db2inst1@localhost ggs]$ db2 "select * from

db2inst1.t1"

ID          NAME

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

1 a

2 b

2 record(s) selected.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值