『OGG 01』Win7 配置 Oracle GoldenGate 踩坑指南

安装 Oracle

安装 Oracle11g 32位【Oracle 32位的话,OGG 也必须是 32位,否则会有0xc000007b无法正常启动 错误】 安装目录为 D:\oracle\product\11.1.0\db1 【这个目录要设置为 环境变量 ORACLE_HOME】

设置环境变量

JAVAHOME    C:\Program Files\Java\jdk1.8.0121

ORACLEHOME   D:\oracle\product\11.1.0\db1

ORACLE_SID   ORCL

如何查找环境变量

获取 ORACLESID  : 打开 SQLPlus,登录 SYS 账户,执行 select instancename from v$instance;

获取 ORACLEHOME : 查找 Oracle安装目录,这个目录有个特征:有一个子目录名叫 RDBMS。就是说: %ORACLEHOME%\RDBMS\ 这个路径要能正常打开即为配置成功。

安装 OGG

http://www.oracle.com/technetwork/cn/middleware/goldengate/downloads/index.html 拖到页面最后面

搜索 32位的 Oracle_11g 的 OGG

目标1

  • 给安装的Oracle_11g 创建 两个用户 admin 和 root 。
  • admin 对应了 ADMIN 结构,创建了一个 TB_ TEST表。
  • root 对应了 ROOT 结构,也创建一个 TB_ TEST (表结构一摸一样)。
  • 当 admin.TBTEST 中的表数据 变化时,root.TB TEST 的表数据 自动同步(备份)
  • PS. 实际的 容灾备份,肯定是 两个 Oracle 服务器,通过网络传输 备份数据 —— 各位可以想象 admin 和 root 在两台不同服务器 上。

目标2

  • 当 admin.TB_ TEST 表数据发生变化时,把这种变化 传递给 Java、C# 程序。
  • 当 Java、C# 程序得到 数据变化消息时,把 数据的变化 记录到日志中(或者其他操作)。

配置数据库

打开 SQL Plus

SYS登录

启用日志存档模式:

启用强制记录模式:

启用 SUPPLEME:

关闭源端数据库回收站:

切换一下日志,最好还能重启一下 数据库服务 —— 或者重启一下系统:

创建用户,授权DBA权限(可以自己摸索OGG的最低权限)。

创建数据表

开始配置 OGG

按顺序 输入如下指令:

> create subdirs

> edit param mgr

往记事本中,写入 如下内容,保存关闭:

PORT 7809

DYNAMICPORTLIST 7840-7850

> start mgr

> dblogin userid admin password admin

> add trandata admin.*

> add extract ext1, tranlog, begin now

> edit param ext1

填写如下配置:

extract ext1

userid admin,password oracle

rmthost 127.0.0.1, mgrport 7809

rmttrail D:\oracle\product\11.1.0\x86_ogg4oracle\dirdat\r1

dynamicresolution

gettruncates

table admin.*;

> add rmttrail D:\oracle\product\11.1.0\x86_ogg4oracle\dirdat\r1 extract ext1

> start mgr

> start ext1

> info all

复制 OGG 文件夹,准备开始配置 备份服务 root(用户),【admin 表 TBTEST 会备份到 root 表 TBTEST】

双击 新复制的 ggsci.exe

> edit param mgr

> add replicat rep1 exttrail D:\oracle\product\11.1.0\x86_ogg4oracle_target\dirdat\r1, nodbcheckpoint

> edit param rep1

填写如下内容:(这里的配置是错误的,查错后的正确配置在下面)

replicat rep1

userid root,password oracle

assumetargetdefs

reperror default,discard

discardfile c:\oradata\repsz.dsc,append,megabytes 100

map admin., target root.;

手动创建 上面的 C:\oradata\ 文件夹。【不手动创建会报错】

> start mgr

> start rep1

目前为止

目标1 测试开始

执行脚本:

insert into TB_TEST(fid, fname, fbirthday, fsex) values (10, ‘路人甲‘, "TO_DATE"(‘1992-02-10‘, ‘yyyy-MM-dd‘), ‘男‘);

对比两个表:

出现BUG了,作者想要冷静一会儿。

仔细检查,似乎发现了 BUG:

大喊一声:神兽保佑,代码无BUG。

先在 ADMIN OGG中输入命令: > start mgr > start ext1

打开 ROOT 的 MGR 7909: > start mgr > start rep1

这日子没法过了。

猜想: 我们在复制 D:\oracle\product\11.1.0\x86ogg4oracle\ 到 x86ogg4oracle_target 时,是不是把 源端的配置 也复制过来了?

于是在 x86ogg4oracletarget 中搜索 ext1 —— 确实搜索除了 源端中的 ext1 配置。【目标端不需要这个配置,把搜索出的 ext1 全部删除】

再次执行 insert 语句 —— 问题依然没有解决:还是无法同步 —— 心已经稀碎,碎了一地。

在一筹莫展时,意外在 x86ogg4oracletarget\ ggserr.log 中发现了一行错误:

将 x86ogg4oracle\dirdat\ 和 x86ogg4oracle_target\dirdat\ 两个文件夹一比较:

手动将 x86ogg4oracle\dirdat\ 中的文件 复制到 x86ogg4oracle_target\dirdat\ ,重启 源端、目标端 的 服务【start mgr 、start ext1、 start rep1、这些基本启动命令,我在文章的下面 就不多说了】

再次insert —— 奇迹发生了:

最终发现,想实现同步 就得让 \x86ogg4oracletarget\dirdat\ 中 有数据。那么这个目录的数据 从哪里来?

  • 1、\x86ogg4oracle\dirdata\ 中的数据 通过 某种机制 传输到 \x86ogg4oracle_target\dirdata\
  • 2、配置 ext1 时,其中的参数 rmttrail 不该配 源端路径,要配成 目标端路径

开始验证猜想:

  • 我们启动 源端OGG,启动 ext1,执行 insert脚本 —— 结果发现:\x86_ogg4oracle\dirdata\ 不会生成文件。
  • 我们再启动 目标端OGG,启动 rep1,执行 insert脚本 —— 结果发现 \x86_ogg4oracle\dirdata\ 文件产生了。
  • —— 即:配置ext1 时的数据目录,rmttrail 是 目标端目录。

理论清晰了,开始重新配置 ext1 和 rep1:

  • 在 \x86_ogg4oracle\ 中搜索 ext1 —— 全部删除,保留 ext1.prm
  • 在 \x86ogg4oracletarget\ 中搜索 rep1 —— 全部删除,保留 rep1.prm
重建 ext1:

extract ext1

userid admin,password oracle

rmthost 127.0.0.1, mgrport 7909

rmttrail D:\oracle\product\11.1.0\x86ogg4oracletarget\dirdat\r1

dynamicresolution

gettruncates

table admin.*;

重建 rep1:

replicat rep1

userid root,password oracle

assumetargetdefs

reperror default,discard

discardfile D:\oracle\product\11.1.0\x86ogg4oracletarget\dirdat\repsz.dsc,append,megabytes 100

map admin., target root.;

执行 insert 脚本 —— 2秒钟后,同步成功:

遗留问题

\x86_ogg4oracle\ 在启动 ext1 时, 执行 insert —— 捕获到的数据变化 存放在哪里?

目标2,如何 编写对应的 Java插件 —— 待续。

OGG 是基于变化的同步 —— 之前没同步的部分,启用OGG之后也不会同步。

那么: 源端 TBTEST.FID =10,目标端 TBTEST.FID =30(一开始就不同步)

  • —— 源端执行 UPDATE TB_TEST SET FID=FID*2
  • —— 目标端 的 FID 会变成多少?与源端一致 FID=20?还是 FID=60?

原文地址:https://www.cnblogs.com/shuxiaolong/p/Win7_OGG_Fail.html

时间: 2024-11-10 04:21:15

『OGG 01』Win7 配置 Oracle GoldenGate 踩坑指南的相关文章

SpringMVC自定义配置消息转换器踩坑总结

问题描述 最近在开发时候碰到一个问题,springmvc页面向后台传数据的时候,通常我是这样处理的,在前台把数据打成一个json,在后台接口中使用@requestbody定义一个对象来接收,但是这次数据传不过去,报400的错误,原因也很容易想到,该对象有一个属性也是一个对象,属性对象是用抽象类定义的,他有几个具体实现,具体实现中的字段都是不一样的,springmvc是不会自动识别并注入你使用的是哪一个实现类的.所以无法传过来. 传递对象如下: @Data public class Activit

Oracle GoldenGate 12c经典架构安装

本章包括首次安装经典Oracle GoldenGate的说明.安装Oracle GoldenGate将安装运行和管理处理所需的所有组件(不包括其他供应商提供的任何组件(如驱动程序或库),并安装Oracle GoldenGate实用程序. 主题: 设置ORACLE_HOME和ORACLE_SID 数据库要求 安装Oracle GoldenGate 设置ORACLE_HOME和ORACLE_SID 确保将ORACLE_HOME和ORACLE_SID系统环境变量设置为正确的Oracle实例. Orac

为Oracle GoldenGate准备数据库

了解如何为Oracle GoldenGate准备数据库,包括如何配置连接和日志记录,如何在数据库中启用Oracle GoldenGate,如何设置闪回查询以及如何管理服务器资源. 为集成进程配置连接 配置日志记录属性 在数据库中启用Oracle GoldenGate 设置闪回查询 管理服务器资源 2.1 为集成进程配置连接 如果您将使用集成捕获和集成Replicat,则每个都需要tnsnames.ora文件中的专用服务器连接.当您配置这些进程时,您可以指示进程在Extract and Repli

『ORACLE』Oracle GoldenGate搭建(11g)

Oracle GoldenGate 实现原理是通过抽取源端的redo log 或者 archive log ,然后通过TCP/IP投递到目标端,最后解析还原应用到目标端,使目标端实现 同源端数据同步.

Oracle GoldenGate学习之--基本概念和配置(3)

系统架构: OGG基本配置(单向传输) 1.数据库配置(Source DB) 建立Tablespace: 11:58:56 [email protected] prod >create tablespace ogg_tbs 11:59:12   2  datafile '/u01/app/oracle/oradata/prod/oggtbs1.dbf' size 100m ; 建立ogg用户: 12:01:17 [email protected] prod >create user ogg i

Oracle GoldenGate零基础入门培训--安装、配置、诊断

Oracle GoldenGate零基础入门培训--安装.配置.诊断课程学习地址:http://www.xuetuwuyou.com/course/158课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程介绍: 本课程通过理论讲解以及实战操作的方式,向大家阐述了GoldenGate数据复制软件的产品体系.技术架构.安装配置.数据初始化.数据复制及操作.安全控制等相关内容.课程结合讲师的理解和实际工作经验对部分难点.重点.易错点进行了比较深入的探讨,希望可以为大家带来

Oracle GoldenGate 二、配置和使用

配置和使用GoldenGate的步骤 1 在源端和目标端配置数据库支持GoldenGate 2 在源端和目标端创建和配置GoldenGate实例 3 在源端创建和配置主抽取进程(Primary Extract) 4 在源端创建和配置Data Pump进程(Secondly Extract) 5 在目标端创建和配置Replicat进程 1 配置数据库支持GoldenGate 1.1 OGG用户和权限分配 GoldenGate需要从在线日子或归档日志抽取捕获系统的变更数据信息,这些信息可能来源于业务

配置部署Oracle Goldengate Version 11.2.1.0.1

配置用户环境变量 vi .bash_profile 添加: export OGG_HOME=/data0/temp/ogg LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 查看数据是否开启归档 SQL> archive log list: --Enabled Configuring logging properties Oracle GoldenGate relies on the redo logs

Oracle GoldenGate学习之--基本概念和配置

Oracle GoldenGate学习之--基本概念和配置(1) 一  GoldenGate简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源 数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.Oracle Golden Gate可以在异构的IT基础结构(包括几乎 所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以 在应急系统.在线报表.实时数据仓库供应.交易跟