Oracle Goldengate Windows平台Oracle-Oracle单向复制

实验目的

Goldengate最基本的从源端一对一的单向复制,注意其中Goldengate版本取决于Oracle的版本。单向复制一般适用于保持目标数据库的实时更新,且目标数据库用来检索,如报表或者分析使用。

Source DB

操作系统:Windows 10 64
Oracle版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
GoldenGate版本:Version 11.2.1.0.1

Target DB

操作系统:Windows 7 64
Oracle版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
GoldenGate:Version 11.2.1.0.1

配置GoldenGate软件

分两种,一种是免安装,一种是通过exe文件进行安装;这里我使用的是免安装,把压缩包解压到c:\ggs目录即可,目标端和源端路径一致。

1.设置环境变量

我的电脑右键属性,选择高级系统设置,高级里面找到环境变量,添加系统变量

完成后,进入DOS命令窗口(win+r)输入:echo %ORACLE_HOME%,echo %ORACLE_SID%

Microsoft Windows [版本 10.0.16299.726]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>echo %ORACLE_HOME%
D:\app\Administrator\product\11.2.0\dbhome_1

C:\Users\Administrator>echo %ORACLE_SID%
orcl

C:\Users\Administrator>

2.开始配置GoldenGate

将GoldenGate解压至c:\ggs,进入ggs目录,运行ggsci,随后创建子目录

Microsoft Windows [版本 10.0.16299.726]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd \ggs

C:\ggs>ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Windows x64 (optimized), Oracle 11g on Apr 23 2012 04:55:02

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



GGSCI (DESKTOP-8NP7VO0) 1> Create subdirs

Creating subdirectories under current directory C:\ggs

Parameter files                C:\ggs\dirprm: already exists
Report files                   C:\ggs\dirrpt: created
Checkpoint files               C:\ggs\dirchk: created
Process status files           C:\ggs\dirpcs: created
SQL script files               C:\ggs\dirsql: created
Database definitions files     C:\ggs\dirdef: created
Extract data files             C:\ggs\dirdat: created
Temporary files                C:\ggs\dirtmp: created
Stdout files                   C:\ggs\dirout: created

主目录介绍

dirchk:存放检查点(Checkpoint)文件
dirdat:存放Trail与Extract文件,以后详述
dirdef:通过DEFGEN工具生成的源或目标的数据定义文件
dirpcs:存放进程状态文件
dirprm:存放参数文件
dirrpt:存放进程报告文件
dirsql:存放SQL脚本文件
dirtmp:当事务所需要的内存超过已分配内存时,缺省存储于此。

3.添加manager进程到Windows系统服务

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

MGRSERVNAME GGMGR

保存退出后,用install addservice命令添加服务,如下所示

GGSCI (DESKTOP-8NP7VO0) 2> edit params ./GLOBALS


GGSCI (DESKTOP-8NP7VO0) 3> exit

C:\ggs>install addservice

Service 'GGMGR' created.


Install program terminated normally.

4.命令解释

GGSCI (DESKTOP-8NP7VO0) 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
                 MININGDBLOGIN
(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

GGSCI (DESKTOP-8NP7VO0) 2>

配置Oracle数据库

1.进入数据库SYS用户创建GoldenGate管理用户,并授予相应的权限,测试环境直接给DBA即可,生产环境请严格控制

CREATE USER GGS IDENTIFIED BY "ggs" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
GRANT DBA TO GGS_SOURCE;

2.在源端打开归档模式,我这里已经配置好了,按照下面的命令执行即可

SQL>archive log list;
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>startup force;

3.查看是否打开数据库级别的补充日志,返回结果为Y即可

SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;

如果查询结果不是Y,需要打开数据库级别的补充日志

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

4.增加表级最小日志

AlTER TABLE BJXXJGXT.RYJBXXB ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
AlTER TABLE BJXXJGXT.KSSZPB ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

5.在源端库中关闭回收站,如果是oracle 10.1版本使用alter system set "_recyclebin=off"

SQL> show parameter recyclebin
 
NAME TYPE VALUE
------------- ----------- ------------------------------
recyclebin string on
 
SQL> alter system set recyclebin=off;
 
System altered.

6.在源端添加表级的Trandata,表名可以使用通配符,如add trandata bjxxjgxt.*

GGSCI (DESKTOP-8NP7VO0) 1> dblogin userid ggs_test,password 123456
Successfully logged into database.

GGSCI (DESKTOP-8NP7VO0) 2> add trandata bjxxjgxt.ryjbxxb

Logging of supplemental redo log data is already enabled for table BJXXJGXT.RYJBXXB.

配置goldengate进程组-目标端

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

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

1.配置源端mgr管理进程

GGSCI (DESKTOP-8NP7VO0) 3> edit params mgr


GGSCI (DESKTOP-8NP7VO0) 4> view params mgr
port 7500  #MGR进程通信端口
dynamicportlist 7501-7505 #Manager进程可以为源端和目标端的动态的指定端口
autorestart extract *,waitminutes 2,retries 5 #autorestart extract表示自动重启Extract进程组,每次尝试的时间间隔为2秒,最多尝试5次,如果没有成功则放弃

启动mgr

GGSCI (DESKTOP-8NP7VO0) 5> start mgr

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


GGSCI (DESKTOP-8NP7VO0) 6> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

2.配置源端Extract抽取进程组

编辑添加extract进程配置文件

GGSCI (DESKTOP-8NP7VO0) 7> edit params eora

添加如下内容

extract eora #表一个名为eora的extract进程
dynamicresolution #GoldenGatex动态解析源端表名
userid ggs_test,password 123456 #ogg专用用户密码
--setenv(ORACLE_SID=ORCL) #设置环境变量
exttrail c:\ggs\dirdat\et #文件目录和标识(类似于et*这样文件),命名只能是2个字符。
table bjxxjgxt.ryjbxxb; #同步那些表,表名可以用通配符*代替,*代表该用户下所有表

添加extract进程

GGSCI (DESKTOP-8NP7VO0) 8> add extract eora,tranlog,begin now
EXTRACT added.

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

GGSCI (DESKTOP-8NP7VO0) 9> add exttrail c:\ggs\dirdat\et,extract eora
EXTTRAIL added.

启动eora进程,使用start eora或start ext eora或start extract eora

GGSCI (DESKTOP-8NP7VO0) 10> start eora

Sending START request to MANAGER ('GGMGR') ...
EXTRACT EORA starting

GGSCI (DESKTOP-8NP7VO0) 11> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     EORA        00:00:25      00:00:01

3.配置源端pump进程组

编辑添加pump进程配置文件

GGSCI (DESKTOP-8NP7VO0) 12> edit params pump

添加如下内容

extract pump #一个名为pump的extract进程
Dynamicresolution #GoldenGatex动态解析源端表名
userid ggs_test,password 123456 #ogg用户和密码
rmthost 192.168.11.91, mgrport 7500 #指定目标端IP和mgr端口
--Setenv(ORACLE_SID=ORCL) #设置环境变量
rmttrail c:\ggs\dirdat\et #
table bjxxjgxt.ryjbxxb;

添加pump进程

GGSCI (DESKTOP-8NP7VO0) 13> add extract pump,exttrailsource c:\ggs\dirdat\et
EXTRACT added. 

添加该rmttrail

GGSCI (DESKTOP-8NP7VO0) 14> add rmttrail c:\ggs\dirdat\et,extract pump
RMTTRAIL added.

启动pump进程,最终结果如下图所示,如有异常请查看进程组日志

GGSCI (DESKTOP-8NP7VO0) 15> start pump

Sending START request to MANAGER ('GGMGR') ...
EXTRACT PUMP starting

GGSCI (DESKTOP-8NP7VO0) 16> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     EORA        00:00:00      00:00:03
EXTRACT     RUNNING     PUMP        00:00:00      00:00:24

配置目标端MGR管理进程

1.依据源端的配置,配置目标端mgr进程;在目标机器上编辑GLOBALS文件,添加一行,checkpointtable ggs.checkpoint

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd \ggs

C:\ggs>ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Windows x64 (optimized), Oracle 11g on Apr 23 2012 04:55:02

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

GGSCI (Roobbin-PC) 1> create subdirs

Creating subdirectories under current directory C:\ggs

Parameter files                C:\ggs\dirprm: already exists
Report files                   C:\ggs\dirrpt: created
Checkpoint files               C:\ggs\dirchk: created
Process status files           C:\ggs\dirpcs: created
SQL script files               C:\ggs\dirsql: created
Database definitions files     C:\ggs\dirdef: created
Extract data files             C:\ggs\dirdat: created
Temporary files                C:\ggs\dirtmp: created
Stdout files                   C:\ggs\dirout: created

GGSCI (Roobbin-PC) 2> edit params ./GLOBAL

添加如下内容

MGRSERVNAME GGMGR

checkpointtable ggs.checkpoint

添加系统服务

GGSCI (Roobbin-PC) 3> exit

C:\ggs>install addservice

Service 'GGMGR' created.

Install program terminated normally.

增加检测机制

GGSCI (Roobbin-PC) 1> dblogin userid ggs_test,password 123456
Successfully logged into database.

GGSCI (Roobbin-PC) 2> add checkpointtable ggs_test.checkpoint

Successfully created checkpoint table ggs_test.checkpoint.

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

GGSCI (Roobbin-PC) 3> edit 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

3.配置目标端Replicat复制进程组

编辑添加Replicat进程配置文件

GGSCI (Roobbin-PC) 5> edit params repl

添加如下内容

replicat repl
userid ggs_test,password 123456
assumetargetdefs
reperror default,discard
discardfile ./dirrpt/repl.dsc,append,megabytes 50
dynamicresolution
MAP bjxxjgxt.ryjbxxb, target bjxxjgxt.ryjbxxb;

添加replicat进程

GGSCI (Roobbin-PC) 6> add replicat repl,exttrail c:\ggs\dirdat\et,checkpointtable ggs_test.checkpoint
REPLICAT added.

启动mgr,repl

GGSCI (Roobbin-PC) 19> start mgr

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

GGSCI (Roobbin-PC) 20> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REPL        00:00:00      00:00:08

随后就是验证DDL操作结果。这个就自行去操作把,这里不多讲了,有问题就查日志

 

转载于:https://www.cnblogs.com/Roobbin/p/9875813.html

第1章 GoldenGate概述 5 1.1 GoldenGate技术原理 5 1.2 GoldenGate可靠的复制 8 1.3 GoldenGate支持操作系统数据库类型 8 第2章 安装GoldenGate 9 2.1 安装GoldenGate环境 9 2.2 分别在源数据库,目标数据库安装GoldenGate 9 2.2.1 下载GoldenGate 9 2.2.2 解压 10 2.2.3 安装GoldenGate 10 2.2.4 同时在目标数据库安装GoldenGate 11 第3章 把源数据库的数据同步到目标数据库中 11 3.1 设置ORACLE_HOME,ORACLE_SID环境变量 11 3.2 在源数据库ora01上打开归档日志及其辅助日志 12 3.3 在源数据库,目标数据库创建GoldenGate GLOBALS参数文件 13 3.3.1 在源数据库创建 13 3.3.2 创建Goldengate manager服务 13 3.3.3 在目标数据库安装上面步骤创建manager 14 3.4 在源数据库,目标数据库配置mgr,启动manager进程 14 3.4.1 配置manager服务的mgr配置文件 14 3.4.2 启动mgr 15 3.4.3 同样在目标数据库配置mgr文件 15 3.5 测试把源数据库数据同步到目标数据库数据库上 16 3.5.1 在源数据库创建test01数据库用户 16 3.5.2 执行GoldenGate的测试脚本,创建表 16 3.5.3 插入数据脚本 17 3.5.4 在goldengate中用oracle用户登陆数据库 17 3.5.5 增加需要传输的用户表 18 3.5.6 在目标数据库创建用户及其表结构 18 3.6 用goldengate中的direct load方式导入数据到目标数据库的test02用户表上 19 3.6.1 在源数据库配置一个extract进程 eini01 19 3.6.2 在目标数据库端配置一个replicat进程 19 3.6.3 在源数据库执行初始化过程 20 3.6.4 验证目标数据库端的test02用户表数据是否和源数据库一样 20 第4章 把源数据库的修改数据同步到目标数据库中 21 4.1 在源数据库配置一个EXTRACT进程及配置其文件 21 4.1.1 配置EXTRACT文件 21 4.1.2 在GGSCI.exe增加一个EXTRACT进程 22 4.2 配置data pump 23 4.2.1 在源数据库端添加一个pump进程 23 4.2.2 在源数据库的ggsci中增加extract进程 24 4.2.3 在源数据库执行RMTTRAIL 24 4.3 启动data pump capture process 24 4.4 在目标数据库端配置change delivery 26 4.5 在目标数据库中创建goldengate专属用户及其表 26 4.6 在目标数据库配置replicat进程 27 4.6.1 在ggsci增加一个replicat进程 27 4.6.2 编辑配置replicat文件 27 4.7 启动replicat进程 28 4.8 测试检查同步结果 28 4.8.1 在源数据库执行插入数据 28 第5章 把源数据库的DDL(表结构)修改同步到目标数据库中 32 5.1 在源数据库端关闭数据库的回收站 32 5.2 编辑源数据库参数文件GLOBALS 32 5.3 在源数据库创建goldengate01用户,并创建goldengate所需要的表 33 5.4 检查源数据库上的表是否安装好 35 5.5 修改源数据库配置extract文件 35 5.6 重新启动extract进程 36 5.7 验证源数据库是否可以同步表结构到目标数据库中 36 第6章 配置源数据库、目标数据库的双向数据传输 36 6.1 关闭目标数据库回收站,打开数据库辅助日志 37 6.2 在源数据库端添加checkpoint表,实现一致性 37 6.3 在源数据库增加一个replicat进程 38 6.4 在源数据库创建一个checkpoint表 38 6.5 编辑配置replicat进程 39 6.6 在目标数据库端配置GLOBALS文件 39 6.7 在目标数据库安装goldengate用户需要的表 39 6.8 在目标数据库配置一个extract进程 40 6.9 在目标数据库端配置一个pump进程 40 6.10 在源数据库端启动replicat进程 42 6.11 在目标数据库中启动extract、replicat的进程 42 6.12 目标数据库可以把数据、表结构的修过同步到源数据库服务器上 42 第7章 备注: 44 7.1 Oracle官网的下载地址 44 7.2 GoldenGate的GLOBALS配置文件内容 44 7.3 GoldenGate的eiex01配置文件内容 44 7.4 GoldenGate的epmp01配置文件内容 44 7.5 GoldenGate的rora01配置文件内容 45 7.6 GoldenGate的eiexbb配置文件内容 45 7.7 GoldenGate的epmpbb配置文件内容 45 7.8 GoldenGate的rorabb配置文件内容 45 7.9 更改GoldenGate复制时间点 46 7.10 查看GoldenGate命令格式 46 7.11 查看manager,extract,replicat是否运行 47 7.12 查看goldengate进程的错误 48
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值