Oracle goldengate Windows平台oracle-oracle单向复制试验

时间:2021-11-01 08:15:22

Oracle goldengate Windows平台oracle-oracle单向复制

 

试验环境:

试验环境

源端软件版本

目标端软件版本

操作系统

Windows 2008 R2 Enterprise 64bit

Windows 2003 Enterprise 32bit

数据库

Oracle 10.2.0.3.0 32bit

Oracle 11.2.0.3.0 32bit

GoldenGate

V11.1.1.1.2 Win_x86_ora10g_32bit

V11.1.1.1.2 Win_x86_ora11g_32bit

 

目标概述

Goldengate最基本的从源端一对一的单向复制,注意其中goldengate版本取决于oracle的版本。

这种场景一般适用于保持目标数据库的实时更新,且目标数据库用来检索,如报表或者分析使用。

 

GoldengateWindows平台安装

软件下载

1.       https://edelivery.oracle.com/下载,目前必须要有足够权限的账号才能下载

2.       https://support.oracle.com/下载,要有oracle服务账号下载最新的补丁,即可直接使用

3.       http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html下载最新版本,同样要有oracle服务账号,登录后用搜狗等下载工具下载。

 

安装条件

1.       administrator身份登录系统进行安装,只要安装者属于系统的administrator组就行。

2.       安装Microsoft Visual C ++ 2005 SP1 Redistributable Package,这个是必须的。

 

安装Goldengate软件

安装方法很简单,只需要把压缩包解压后,把文件放到指定文件夹即可,如c:/gg目录。

源和目标端同样。

1.      设置环境变量

在系统属性-高级-环境变量里面设置如下两个环境变量的值,如

ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1

ORACLE_SID=oratask

 Oracle goldengate Windows平台oracle-oracle单向复制试验

2.      安装goldengate文件

解压缩到c:/gg目录下,然后cdc:/gg目录,运行ggsci命令,创建子目录。

 

c:\gg>ggsci

 

Oracle GoldenGate Command Interpreter for Oracle

Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100

Windows (optimized), Oracle 10g on Oct  5 2011 00:50:35

 

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

 

GGSCI (WIN-VRO8RDT77CE) 1>create subdirs

……

 

主要目录介绍:

dirchk:存放检查点(Checkpoint)文件

dirdat:存放TrailExtract文件,以后详述

dirdef:通过DEFGEN工具生成的源或目标的数据定义文件

dirpcs:存放进程状态文件

dirprm:存放参数文件

dirrpt:存放进程报告文件

dirsql:存放SQL脚本文件

dirtmp:当事务所需要的内存超过已分配内存时,缺省存储于此。

 

3.      添加manager进行到windows服务

手动指定服务名GGMGR(默认就是GGMGR)。

edit params ./GLOBALS命令(注意./GLOBALS为大写),进入编辑文件,输入下面内容。

 

MGRSERVNAME GGMGR

 

保存退出后,用install addservice命令添加服务

c:\gg>install addservice

Service 'GGMGR' created.

Install program terminated normally.

 

4.      Goldengate实用程序

运行GGSCI(GoldenGate Software Command Interface)命令可以进入Goldengate交互界面,提供多种管理Goldengate的命令,用help命令查看命令使用方法。

 

GGSCI (WIN-VRO8RDT77CE) 1> help

 

GGSCI Command Summary:

Object:          Command:

SUBDIRS          CREATE

ER               INFO, KILL, LAG, SEND, STATUS, START, STATS, STOP

EXTRACT          ADD, ALTER, CLEANUP, DELETE, INFO, KILL,

                 LAG, REGISTER, SEND, START, STATS, STATUS, STOP

                 UNREGISTER

EXTTRAIL         ADD, ALTER, DELETE, INFO

GGSEVT           VIEW

MANAGER          INFO, SEND, START, STOP, STATUS

MARKER           INFO

PARAMS           EDIT, VIEW

REPLICAT         ADD, ALTER, CLEANUP, DELETE, INFO, KILL, LAG, SEND,

                 START, STATS, STATUS, STOP

REPORT           VIEW

RMTTRAIL         ADD, ALTER, DELETE, INFO

TRACETABLE       ADD, DELETE, INFO

TRANDATA         ADD, DELETE, INFO

SCHEMATRANDATA   ADD, DELETE, INFO

CHECKPOINTTABLE  ADD, DELETE, CLEANUP, INFO

 

Commands without an object:

(Database)       DBLOGIN, LIST TABLES, ENCRYPT PASSWORD, FLUSH SEQUENCE

(DDL)            DUMPDDL

(Miscellaneous)  FC, HELP, HISTORY, INFO ALL, OBEY, SET EDITOR, SHELL,

                 SHOW, VERSIONS, ! (note: you must type the word

                 COMMAND after the ! to display the ! help topic.)

                 i.e.: GGSCI (sys1)> help ! command

 

For help on a specific command, type HELP <command> <object>.

 

Example: HELP ADD REPLICAT

 

配置oracle数据库

1.      在源端打开归档模式

SQL> archive log list

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database open

 

2.      在源端库中打开force logging

SQL> select force_logging from v$database;

 

FOR

---

NO

 

SQL> alter database force logging;

 

Database altered.

 

SQL> select force_logging from v$database;

 

FOR

---

YES

 

 

3.      在源端库中打开supplemental log

SQL> select supplemental_log_data_min from v$database;

 

SUPPLEME

--------

NO

 

SQL> alter database add supplemental log data;

 

Database altered.

 

--切换日志,使更改生效

SQL> alter system switch logfile;

 

System altered.

 

SQL> select supplemental_log_data_min from v$database;

 

SUPPLEME

--------

YES

 

4.      在源端库中关闭回收站

SQL> show parameter recyclebin

 

NAME TYPE VALUE

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

recyclebin string on

 

SQL> alter system set recyclebin=off;

 

System altered.

注:如果是oracle 10.1版本使用alter system set “_recyclebin=off”;命令

 

5.      创建goldengate管理用户

--在源端创建ggs用户

SQL> create user ggs identified by ggs default tablespace users temporary tablespace temp;

SQL> grant connect ,resource,unlimited tablespace to ggs;

SQL> grant execute on utl_file to ggs;

SQL> grant select any dictionary,select any table to ggs;

SQL> grant alter any table to ggs;

SQL> grant flashback any table to ggs;

SQL> grant execute on dbms_flashback to ggs;

 

--在源和目标端创建测试表

SQL> create table demo(id number primary key,ename varchar2(10));

 

--在目标端创建ggs用户

SQL> create user ggs identified by ggs default tablespace users temporary tablespace temp;

SQL> grant dba to ggs;

 

 

6.      在源端添加表级的trandata

GGSCI (WIN-VRO8RDT77CE) 1> dblogin userid ggs,password ggs

Successfully logged into database.

 

GGSCI (WIN-VRO8RDT77CE) 2>add trandata scott.demo

 

Logging of supplemental redo data enabled for table SCOTT.DEMO.

注:表名可以使用通配符,如add trandata scott.*

 

 

7.      在目标端添加checkpoint

--在目标机器上编辑GLOBALS文件,添加一行,checkpointtable ggs.checkpoint

GGSCI (www-7d194fc9aa8) 33> view params ./GLOBALS

MGRSERVNAME GGMGR

checkpointtable ggs.checkpoint

 

GGSCI (www-7d194fc9aa8) 6>dblogin userid ggs,password ggs

Successfully logged into database.

 

GGSCI (www-7d194fc9aa8) 7>add checkpointtable ggs.checkpoint

Successfully created checkpoint table GGS.CHECKPOINT.

 

配置goldengate进程组

一般常用的进程组:

在源端:mgr进程,extract(抽取)进程,pump进程

在目标端:mgr进程,replicat(复制)

拓扑图:Configuration elements for replication to one target

配置源端MGR管理进程

--设置编辑器(可能忽略)

GGSCI> set editor emacs

 

--配置参数文件

GGSCI (WIN-VRO8RDT77CE) 3>edit params mgr

 

--添加以下内容保存退出

port 7500 --必须存在的参数

dynamicportlist 7501-7505

autorestart extract *,waitminutes 2,retries 5

 

GGSCI (WIN-VRO8RDT77CE) 3> start mgr

Starting Manager as service ('GGMGR')...

Service started.

 

GGSCI (WIN-VRO8RDT77CE) 3>view params mgr

port 7500

dynamicportlist 7501-7505

autorestart extract *,waitminutes 2,retries 5

 

配置源端Extract抽取进行组

 

--编辑添加extract进程配置文件

GGSCI (WIN-VRO8RDT77CE) 3>edit params eora

 

GGSCI (WIN-VRO8RDT77CE) 2>view params eora

extract eora

dynamicresolution

userid ggs,password ggs

--setenv(ORACLE_SID=ORCL)

exttrail c:\gg\dirdat\et

table scott.*;

 

--添加extract进程

GGSCI (WIN-VRO8RDT77CE) 4> add extract eora,tranlog,begin now

EXTRACT added.

 

--创建本地trail文件,extract进程组负责写这部分文件,pump进程负责读它:

GGSCI (WIN-VRO8RDT77CE) 5>add exttrail c:\gg\dirdat\et,extract eora

EXTTRAIL added.

 

--启动extract进程,使用start eorastart ext eorastart extract eora

GGSCI (WIN-VRO8RDT77CE) 5> start eora

 

 

 

 

配置源端pump进程组

--编辑添加pump进程配置文件

GGSCI (WIN-VRO8RDT77CE) 3>edit params pump_so

 

GGSCI (WIN-VRO8RDT77CE) 2>view params pump_so

extract Pump_so

Dynamicresolution

Userid ggs,password ggs

rmthost 10.1.5.107, mgrport 7500

--Setenv(ORACLE_SID=ORCL)

rmttrail c:\gg\dirdat\et

Table scott.*;

 

 

--添加pump进程

GGSCI (WIN-VRO8RDT77CE) 32>add extract pump_so,exttrailsource c:\gg\dirdat\et

EXTTRAIL added.

 

--添加该rmttrail

GGSCI (WIN-VRO8RDT77CE) 49>add rmttrail c:\gg\dirdat\et,extract pump_so

RMTTRAIL added.

 

--启动pump进程

GGSCI (WIN-VRO8RDT77CE) 51>start pump_so

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

EXTRACT PUMP_SO starting

 

GGSCI (WIN-VRO8RDT77CE) 4>info all

 

Program     Status      Group       Lag           Time Since Chkpt

 

MANAGER     RUNNING

EXTRACT     RUNNING     EORA        00:00:00      00:00:06

EXTRACT     RUNNING     PUMP_SO     00:00:00      00:00:07

 

注意:如果目标端的mgr进程没有启动,此时启动pump进程ggserr.log日志会报如下错误,pump进程也就无法启动。

pture for Oracle, PUMP_SO.prm:  EXTRACT PUMP_SO starting.

2012-04-20 11:21:41  INFO    OGG-00993  Oracle GoldenGate Capture for Oracle, PUMP_SO.prm:  EXTRACT PUMP_SO started.

2012-04-20 11:21:42  WARNING OGG-01223  Oracle GoldenGate Capture for Oracle, PUMP_SO.prm:  TCP/IP error 10061 (由于目标计算机积极拒绝,无法连接。).

2012-04-20 11:21:53  WARNING OGG-01223  Oracle GoldenGate Capture for Oracle, PUMP_SO.prm:  TCP/IP error 10061 (由于目标计算机积极拒绝,无法连接。).

 

 

配置目标端MGR管理进程

--依据源端的配置,配置目标端mgr进程

GGSCI (www-7d194fc9aa8) 1> edit params mgr

 

GGSCI (www-7d194fc9aa8) 1>view params mgr

port 7500

dynamicportlist 7501-7505

autostart er *

autorestart extract *,waitminutes 2,retries 5

lagreporthours 1

laginfominutes 3

lagcriticalminutes 5

purgeoldextracts c:\gg\dirdat\et*,usecheckpoints,minkeepdays 3

 

配置目标端Replicat复制进程组

 

--编辑添加Replicat进程配置文件

GGSCI (www-7d194fc9aa8) 2> view params repl

replicat repl

userid ggs,password ggs

assumetargetdefs

reperror default,discard

discardfile ./dirrpt/repl.dsc,append,megabytes 50

dynamicresolution

MAP scott.*, target scott.*;

 

--添加replicat进程

GGSCI (www-7d194fc9aa8) 23>add replicat repl,exttrail c:\gg\dirdat\et,checkpointtable ggs.checkpoint

REPLICAT added.

 

GGSCI (www-7d194fc9aa8) 25>start repl

 

Sending START request to MANAGER ...

REPLICAT REPL starting

 

GGSCI (www-7d194fc9aa8) 26> info repl

 

REPLICAT   REPL      Last Started 2012-04-20 13:24   Status ABENDED

Checkpoint Lag       00:00:00 (updated 00:00:29 ago)

Log Read Checkpoint  File c:\gg\dirdat\et000000

                     First Record  RBA 0

 

验证DML复制结果

在源库的scott.demo表上做DML操作,在目标库检查同步结果。

 

--源库

SQL> conn scott/tiger

已连接。

SQL> insert into demo select 1,'aaa' from dual;

 

已创建 1行。

 

SQL> commit;

 

提交完成。

 

SQL> insert into demo select 2,'bbb' from dual;

 

已创建 1行。

 

SQL> commit;

 

提交完成。

 

SQL> Select * From scott.demo;

 

        ID ENAME

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

         1 aaa

         2 bbb

 

--目标库,过几秒钟后检查

 

SQL> Select * From scott.demo;

 

        ID ENAME

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

         1 aaa

         2 bbb

 

 

配置另一组分发目标进程

下面的实验是在上面的实验的基础上,再增加一个分发目标进程

 

 

详细拓扑图:

 

 

目标环境:

试验环境

目标端软件版本

操作系统

Redhad Linux 4.7 32bit

数据库

Oracle 10.2.0.1.0 32bit

GoldenGate

v11_1_1_0_11_001 linux_x86_ora10g_32bit

 

配置源端MGR管理进程

--上面的步骤源端已经配置完成,不需要再配置了。

 

配置源端Extract抽取进行组

 

--编辑添加extract进程配置文件

GGSCI (WIN-VRO8RDT77CE) 1>edit params eora2

 

GGSCI (WIN-VRO8RDT77CE) 2>view params eora2

extract eora

dynamicresolution

userid ggs,password ggs

--setenv(ORACLE_SID=ORCL)

exttrail c:\gg\dirdat\et

table scott.*;

 

--添加extract进程

GGSCI (WIN-VRO8RDT77CE) 4> add extract eora2,tranlog,begin now

EXTRACT added.

 

--创建本地trail文件,extract进程组负责写这部分文件,pump进程负责读它:

GGSCI (WIN-VRO8RDT77CE) 5>add exttrail c:\gg\dirdat\et,extract eora2

EXTTRAIL added.

 

--启动extract进程,使用start eorastart ext eorastart extract eora

GGSCI (WIN-VRO8RDT77CE) 5> start eora

 

 

 

 

配置源端pump进程组

--编辑添加pump进程配置文件

GGSCI (WIN-VRO8RDT77CE) 3>edit params pump_so2

 

GGSCI (WIN-VRO8RDT77CE) 2>view params pump_so2

extract Pump_so

Dynamicresolution

Userid ggs,password ggs

rmthost 192.168.1.100, mgrport 7500 –修改iphostname

rmttrail /opt/gg/trails/et

Table scott.*;

 

 

--添加pump进程

GGSCI (WIN-VRO8RDT77CE) 32>add extract pump_so2,exttrailsource c:\gg\dirdat\et

EXTTRAIL added.

 

--添加该rmttrail

GGSCI (WIN-VRO8RDT77CE) 49>add rmttrail /opt/gg/trails/et,extract pump_so2

RMTTRAIL added.

 

--启动pump进程

GGSCI (WIN-VRO8RDT77CE) 51>start pump_so

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

EXTRACT PUMP_SO starting

 

GGSCI (WIN-VRO8RDT77CE) 4>info all

 

Program     Status      Group       Lag           Time Since Chkpt

 

MANAGER     RUNNING

EXTRACT     RUNNING     EORA        00:00:00      00:00:04

EXTRACT     RUNNING     EORA2       00:00:00      00:00:04

EXTRACT     RUNNING     PUMP_SO     00:00:00      00:00:09

EXTRACT     RUNNING     PUMP_SO2    00:00:00      00:00:09

 

 

配置目标端MGR管理进程

--依据源端的配置,配置目标端mgr进程

GGSCI (DB1.lgcns.com) 3> edit params mgr

 

GGSCI (DB1.lgcns.com) 4>view params mgr

DYNAMICPORTLIST 7840-7914

PORT 7500--注意端口和源mgr一致

PURGEOLDEXTRACTS /opt/gg/trails/w1*, USECHECKPOINTS, MINKEEPFILES 10

PURGEOLDEXTRACTS /opt/gg/trails/w2*, USECHECKPOINTS, MINKEEPFILES 10

PURGEOLDEXTRACTS /opt/gg/trails/et*, USECHECKPOINTS, MINKEEPFILES 10

AUTORESTART ER *, RETRIES 3, WAITMINUTES 5

PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

 

配置目标端Replicat复制进程组

 

--编辑添加Replicat进程配置文件

GGSCI (DB1.lgcns.com) 3> edit params repl

 

GGSCI (DB1.lgcns.com) 4>view params repl

REPLICAT repl

ASSUMETARGETDEFS

USERID GOLDENGATE, PASSWORD GOLDENGATE

DISCARDFILE w1repdsc,APPEND,MEGABYTES 5

DDL INCLUDE MAPPED

DDLOPTIONS REPORT

BATCHSQL

DBOPTIONS DEFERREFCONST

DBOPTIONS LOBWRITESIZE 102400

DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20

MAP scott.* , TARGET scott.* ;

 

--添加replicat进程

GGSCI (DB1.lgcns.com) 4>add replicat repl,exttrail /opt/gg/trails/et

REPLICAT added.

 

GGSCI (DB1.lgcns.com) 5>start repl

 

Sending START request to MANAGER ...

REPLICAT REPL starting

 

GGSCI (DB1.lgcns.com) 6> info repl

 

初始化目标数据

1.如果自源端表创建以来没有,抽取进程没有一直停止,可以在目标端取数据时只导入空表即可,在复制进程开始后,源端的所有DML操作会自动应用到目标端。