oracle ogg端口,在Windows中 基于Oracle GoldenGate (OGG)进行Oracle->Oracle数据库同步配置(超详细)...

Oracle GoldenGate Windows平台oracle->oracle单向数据同步,试验环境:

试验环境

源端软件版本

目标端软件版本

操作系统

Windows 10 64位

Windows 10 64位

IP地址

192.168.2.100

192.168.2.200

数据库

Oracle 11.2.0.3.0 64bit

Oracle 11.2.0.3.0 64bit

数据库账号

ggs

ggs

数据库表

demo

demo

dirdat目录

D:\app\win10\OGG122\install\dirdat\et

E:\app\win10\OGG122\install\dirdat\et

一、Oracle环境安装

注意:因开启归档日志每天产生的日志会很大,所有需要做一个定时任务,定期进行清理归档日志。否则将空间占满,引起数据库报错:ORA-00257。相关资料:

(1)、设置Oracle的日志模式为:归档模式(源端和目标端都要修改):

276fede48835?from=singlemessage

image.png

cmd 中以sysdba身份连接数据库

> sqlplus "/as sysdba"

查看数据库当前归档模式

SQL> select log_mode from v$database;

276fede48835?from=singlemessage

image.png

archive log list;查看自动归档状态和归档进程,shutdown immediate;关闭数据库,startup mount;启动到mount状态,alter database archivelog;修改数据库为归档模式,alter database open;打开数据库

SQL> archive log list;

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;

设置完成结果查询:

276fede48835?from=singlemessage

image.png

(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.

(4)、在源端库切换日志,使更改生效

SQL> alter system switch logfile;

System altered.

SQL> select supplemental_log_data_min from v$database;

SUPPLEME

--------

YES

(5)、在源端库中关闭回收站

SQL> show parameter recyclebin

NAME TYPE VALUE

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

recyclebin string on

SQL> alter system set recyclebin=off;

System altered.

# ----------- 如果不成功,执行以下命令 -------------

SQL> alter system set recyclebin=off deferred;

(6)、创建goldengate管理用户

在源端创建ggs用户

SQL> create user ggs identified by 123456 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;

在源端和目标端创建测试表:demo

SQL> create table ggs.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;

二、Oracle GoldenGate介绍

三、Oracle GoldenGate安装(源端和目标端)

安装条件:

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

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

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

在使用12.3.0.1版本遇到WARNING OGG-01988 Could not find schematrandata function in source database: failed to find function.错误,需要安装修复补丁。

建议下载版本:12.2.0.2

276fede48835?from=singlemessage

image.png

(2)、解压122023_ggs_Windows_x64_shiphome.zip

276fede48835?from=singlemessage

点击setup.exe开始安装

276fede48835?from=singlemessage

选择数据库版本

276fede48835?from=singlemessage

选择安装位置及数据库位置

选择安装目录为刚才创建的安装目录其他都默认,接下来都步骤都默认直至安装完成。

安装错误:ggsci.exe 已停止工作。

关键错误内容详情:问题事件名称: APPCRASH,故障模块名称:ntdll.dll,异常代码:c000007b

276fede48835?from=singlemessage

错误截图

错误情况电脑环境

276fede48835?from=singlemessage

错误情况电脑环境

(3)、安装好了之后,设置环境变量,先查看services.msc的Oracle服务如图:

276fede48835?from=singlemessage

image

然后设置系统的环境变量:

ORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1

ORACLE_SID=ORCL

ORACLE_HOME oracle安装路径地址

ORACLE_SID 上图oracle服务名

如图:

276fede48835?from=singlemessage

image

注意:源端与目标端都需要进行安装Oracle GoldenGate

四、Oracle GoldenGate配置

====== 以下为Source(同步的数据源)Oracle GoldenGate配置 ======

1、Oracle GoldenGate(源端)

(1)、在源端服务器安装的OGG根目录按住SHift+右键或cmd进入OGG根目录的命令面板

(2)、执行ggsci.exe

c:\gg>ggsci.exe

Oracle GoldenGate Command Interpreter for Oracle

Version 12.2.0.2.3 OGGCORE_12.2.0.2.0_PLATFORMS_170727.1430

Windows x64 (optimized), Oracle 11g on Jul 27 2017 16:38:50

Operating system character set identified as GBK.

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

GGSCI (Win10) 1>

添加manager进行到windows服务,使之可以随windows开机自行启动

手动指定服务名GGMGR(默认就是GGMGR)。用edit params ./GLOBALS命令(注意./GLOBALS为大写),进入编辑文件,输入下面内容:

MGRSERVNAME GGMGR

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

c:\gg>install addservice

Service 'GGMGR' created.

Install program terminated normally.

(3)、输入create subdirs自动创建需要用到的文件夹

GGSCI (Win10) 1> create subdirs

主要目录介绍:

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

dirdat:存放Trail与Extract文件,以后详述

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

dirpcs:存放进程状态文件

dirprm:存放参数文件

dirrpt:存放进程报告文件

dirsql:存放SQL脚本文件

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

(4)、登录ggs账号,输入dblogin userid ggs,password 123456:

GGSCI (Win10) 1> dblogin userid ggs,password 123456

Successfully logged into database.

(5)、添加表级的trandata,输入add trandata ggs.demo:

GGSCI (Win10) 1> add trandata ggs.demo

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

TRANDATA for scheduling columns has been added on table 'GGS.DEMO'.

TRANDATA for instantiation CSN has been added on table 'GGS.DEMO'.

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

(5)、配置mgr管理进程,输入edit params mgr将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params mgr

以下是添加内容:

port 7500

dynamicportlist 7501-7505

autorestart extract *,waitminutes 2,retries 5

(6)、启动mgr进程,输入start mgr:

GGSCI (Win10) 1> start mgr

(7)、配置extract抽取进程,输入edit params eora将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params eora

以下是添加内容:

extract eora

userid ggs,password 123456

exttrail D:\app\win10\OGG122\install\dirdat\et

table ggs.demo;

注:表名可以使用通配符,如table ggs.*

exttrail的D:\app\win10\OGG122\install\dirdat\et为源端服务器的目录(自定义)地址。

保存后,添加并启动eora进程,输入add extract eora,tranlog,begin now、add exttrail D:\app\win10\OGG122\install\dirdat\et,extract eora、start eora:

GGSCI (Win10) 1> add extract eora,tranlog,begin now

GGSCI (Win10) 1> add exttrail D:\app\win10\OGG122\install\dirdat\et,extract eora

GGSCI (Win10) 1> start eora

add extract eora,tranlog,begin now //从当前时间开始同步

add extract eora, tranlog,begin 2019-02-11 13:00:00 //指定时间点开始同步

(8)、配置pump_so进程,输入edit params pump_so将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params pump_so

以下是添加内容:

extract Pump_so

Userid ggs,password 123456

rmthost 192.168.88.58, mgrport 7500

rmttrail E:\app\win10\ogg\install\dirdat\et

Table ggs.demo;

注:表名可以使用通配符,如Table ggs.*

特别注意:rmttrail的E:\app\win10\ogg\install\dirdat\et为目标端的缓存目录地址。

保存成功后,添加pump_so进程,输入(先不启动pump_so)add extract pump_so,exttrailsource D:\app\win10\OGG122\install\dirdat\et,add rmttrail E:\app\win10\ogg\install\dirdat\et,extract pump_so:

GGSCI (Win10) 1> add extract pump_so,exttrailsource D:\app\win10\OGG122\install\dirdat\et -- 注意`exttrailsource`的地址为`源端`服务器的目录

GGSCI (Win10) 1> add rmttrail E:\app\win10\ogg\install\dirdat\et,extract pump_so -- 注意`rmttrail`的地址为`目标端`服务器的目录

(8)、注意等待目标端安装完成后,启动start pump_so

源端所需要启动的服务有3个

> start mgr

> start eora

> start pump_so

> stop .. //停止服务

<< 到此源端的配置就结束了 >>

====== End Source(同步的数据源)Oracle GoldenGate配置 ======

====== 以下为Target(同步的目标数据库)Oracle GoldenGate配置 ======

2、Oracle GoldenGate(目标端)

(1)、在目标端服务器安装的OGG根目录按住SHift+右键或cmd进入OGG根目录的命令面板

(2)、执行ggsci.exe

c:\gg>ggsci.exe

Oracle GoldenGate Command Interpreter for Oracle

Version 12.2.0.2.3 OGGCORE_12.2.0.2.0_PLATFORMS_170727.1430

Windows x64 (optimized), Oracle 11g on Jul 27 2017 16:38:50

Operating system character set identified as GBK.

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

GGSCI (Win10) 1>

添加manager进行到windows服务,使之可以随windows开机自行启动

手动指定服务名GGMGR(默认就是GGMGR)。用edit params ./GLOBALS命令(注意./GLOBALS为大写),进入编辑文件,输入下面内容:

MGRSERVNAME GGMGR

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

c:\gg>install addservice

Service 'GGMGR' created.

Install program terminated normally.

(3)、输入create subdirs自动创建需要用到的文件夹

GGSCI (Win10) 1> create subdirs

(4)、登录ggs账号,输入dblogin userid ggs,password 123456:

GGSCI (Win10) 1> dblogin userid ggs,password 123456

Successfully logged into database.

(5)、添加表级的trandata,输入add trandata ggs.demo:

GGSCI (Win10) 1> add trandata ggs.demo

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

TRANDATA for scheduling columns has been added on table 'GGS.DEMO'.

TRANDATA for instantiation CSN has been added on table 'GGS.DEMO'.

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

(6)、编辑GLOBAL文件,输入edit params ./GLOBALS将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params ./GLOBALS

以下是添加内容:

checkpointtable ggs.checkpoint

ALLOWOUTPUTDIR E:\app\win10\ogg\install\dirdat

(7)、登陆,输入dblogin userid ggs,password 123456:

GGSCI (Win10) 1> dblogin userid ggs,password 123456

(8)、添加checkpoint,输入add checkpointtable ggs.checkpoint:

GGSCI (Win10) 1> add checkpointtable ggs.checkpoint

(9)、配置mgr管理进程,输入edit params mgr将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params mgr

以下是添加内容:

port 7500

dynamicportlist 7501-7505

autostart er *

autorestart extract *,waitminutes 2,retries 5

lagreporthours 1

laginfominutes 3

lagcriticalminutes 5

purgeoldextracts E:\app\win10\ogg\install\dirdat\et,usecheckpoints,minkeepdays 3

保存成功后,启动mgr管理进程start mgr:

GGSCI (Win10) 1> start mgr

(10)、配置的复制进程,输入edit params repl将会弹出文本编辑器并写入:

GGSCI (Win10) 1> edit params repl

以下是添加内容:

replicat repl

userid ggs,password 123456

assumetargetdefs

reperror default,discard

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

MAP ggs.demo, target ggs.demo;

注:表名可以使用通配符,如MAP ggs.*, target ggs.*

保存成功后,添加并且启动复制进程,输入add replicat repl,exttrail E:\app\win10\OGG122\install\dirdat\et,checkpointtable ggs.checkpoint,start repl:

GGSCI (Win10) 1> add replicat repl,exttrail E:\app\win10\ogg\install\dirdat\et,checkpointtable ggs.checkpoint

GGSCI (Win10) 1> start repl

(11)、打开目标端的7500-7505的端口,如图:

276fede48835?from=singlemessage

image.png

目标端所需要启动的服务有2个

> start mgr

> start repl

<< 到此目标端的配置就结束了 >>

====== End target(同步的目标数据库)Oracle GoldenGate配置 ======

四、GoldenGate 测试

(1)、启动源端的start pump_so:

GGSCI (Win10) 1> start pump_so

目标端显示了这个info,如图:

276fede48835?from=singlemessage

image.png

源端的sqlplus.exe输入:

SQL> INSERT INTO "GGS"."DEMO"("ID", "ENAME") VALUES ('1', '测试1');

已创建 1 行。

SQL> INSERT INTO "GGS"."DEMO"("ID", "ENAME") VALUES ('2', '测试2');

已创建 1 行。

SQL> commit;

然后再去目标端看看效果如何,如图(我插入了2条):

276fede48835?from=singlemessage

image.png

注:可以到安装ogg的根目录中找到ggserr.log文件,查看错误日志。

五、GoldenGate 错误解决方案

1、 问题:ERROR OGG-01031 Oracle GoldenGate Capture for Oracle, PUMP_SO.prm: There is a problem in network communication, a remote file problem, encryption keys for target and source do not match (if using ENCRYPT) or an unknown error. (Reply received is Failed resolving output file D:\app\win10\OGG122\dirdat\et000000 (error: 3, 系统找不到指定的路径。)).

原因:配置抽取进程的rmttrail路径错误(配成了源端的地址,应该是目标端的地址),执行:

GGSCI (Win10 as ggs@orcl) 30> edit params pump_so

在弹出的文本编辑器中添加以下配置:

extract Pump_so

Userid ggs,password 123456

rmthost 目标端IP, mgrport 目标端端口

rmttrail 目标端存放文件地址

Table ggs.demo;

2、问题:ERROR OGG-01044 Oracle GoldenGate Capture for Oracle, PUMP_SO.prm: The trail 'D:\app\win10\ogg\install\dirdat\et' is not assigned to extract 'PUMP_SO'. Assign the trail to the extract with the command "ADD EXTTRAIL/RMTTRAIL D:\app\win10\ogg\install\dirdat\et, EXTRACT PUMP_SO".

原因:修改了rmttrail 目标端存放文件地址未更新,在GGSCI命令控制器中执行:

GGSCI (Win10 as ggs@orcl) 30> ADD EXTTRAIL/RMTTRAIL D:\app\win10\ogg\install\dirdat\et, EXTRACT PUMP_SO

3、ERROR OGG-01031 Oracle GoldenGate Capture for Oracle, PUMP_SO.prm: There is a problem in network communication, a remote file problem, encryption keys for target and source do not match (if using ENCRYPT) or an unknown error. (Reply received is Output file D:\app\win10\ogg\install\dirdat\et000000 is not in any allowed output directories.).

276fede48835?from=singlemessage

image.png

原因:从ogg12.2之后,如果远端队列文件默认不是在dirdat目录下,则需要在远端(目标服务器)OGG的 GLOBALS 文件中添加如下参数:

allowOutputDir D:\app\win10\ogg\install\dirdat

重启远端mgr进程之后,再启动本地传输进程,此时,可以正常进行数据投递,问题解决。

4、ERROR OGG-01224 Oracle GoldenGate Capture for Oracle, PUMP_SO.prm: TCP/IP error 10061 (由于目标计算机积极拒绝,无法连接。), endpoint:192.168.2.85:7500.

重启目标端mgr服务或问题3引发的

5、ggsci执行错误

[oracle@doudou-NAS ~]$ ggsci

ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory

解决方法:export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/opt/ogg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值