我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle DML/DDL同步数据(OGG_12.2_for_Windows)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle DML/DDL同步数据(OGG_12.2_for_Windows)

Oracle DML/DDL 同步数据 (OGG_12.2_for_Windows)



Oracle DML/DDL 同步数据 (OGG_12.2_for_Windows) 1

一、环境准备并安装 GoldenGate 3

1、基本环境 3

2、配置日志模式 3

3、创建 GoldenGate 用户帐号 4

4、安装 GoldenGate 软件 5

5、模拟生产库,初始化数据 5

二、  GoldenGate DML 同步配置 6

1 、GoldenGate DML 同步源端配置 6

1、源 MGR 进程 6

2 、配置 Extract 进程组 7

3 、配置 Pump 进程组 8

4 、目标端初始化 9

2 、GoldenGate DML 同步目标端配置 9

1 、 目标端 MGR 进程 10

2 、添加检查表 10

3 、添加 checkpoint 表 11

4、配置目标端 Peplicat 进程组 11

5、可以查看 checkpoint 状态 12

6、验证同步 12

三: GoldenGate DDL 同步配置 12

1 、支持 DDL 复制运行脚本 12

2、修改 extract 进程的 params 文件 14

3、修改目标端 replicat 进程的 params 文件 15

4、测试 16

5、验证 16

四、常见问题 16

一、环境准备并安装 GoldenGate

1、基本环境

1)  源端

IP 地址: 10.6.252.44

数据库: Oracle 11.2.0.4

SID: cjc

操作系统版本: Windows 7

ogg 版本: Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401

ggs_Windows_x64_shiphome.zip

2)  目标端

IP 地址: 10.11.82.56

数据库: Oracle 11.2.0.4

SID: chenjch

操作系统版本: Windows 7

ogg 版本: Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401

ggs_Windows_x64_shiphome.zip

2、配置日志模式

#  源服务器端

(1) 配置归档模式

sqlplus / as sysdba

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

(2) 配置日志模式 ( 打开强制规档与补充日志模式 )

alter database add supplemental log data; 

alter database force logging;

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

alter system set recyclebin=off scope=spfile; 

(3) 查看配置结果:

SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;

LOG_MODE    SUPPLEME FOR

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

ARCHIVELOG  YES      YES

3、创建 GoldenGate 用户帐号

su - oracle

sqlplus / as sysdba;

create tablespace ogguser datafile 'D:\APP\ADMINISTRATOR\ORADATA\CJC\ogguser.dbf' size 10m autoextend on next 1m maxsize unlimited;

create tablespace ogguser datafile 'D:\APP\ADMINISTRATOR\ORADATA\CHENJCH\ogguser.dbf' size 10m autoextend on next 1m maxsize unlimited;

create user ogguser identified by ogguser

default tablespace ogguser

temporary tablespace temp;

grant connect,resource,dba to ogguser;

4、安装 GoldenGate 软件

ogg12 版本安装是图形界面,选择安装版本 (11);

D:\ogg\ggs_Windows_x64_shiphome\Disk1\setup.exe

启动图形界面后,选择

OGG 目录 :D:\app\Administrator\product\11.2.0\oggcore_1 --- 需要提前创建

Oracle 目录 :D:\app\Administrator\product\11.2.0\dbhome_1

直接安装即可;

安装后, D:\app\Administrator\product\11.2.0\oggcore_1 下会包含所有目录,无需执行 create subdirs 命令;

5、模拟生产库,初始化数据

建立测试用户及初始化数据

create user test identified by test;

grant connect ,resource ,dba to test;

conn test/test

create table test (id number ,name varchar2(20));

创建包含 CLOB 字段的表并初始化

create table t_clob(tid number,c_clob clob);

二、  GoldenGate DML 同步配置

1 、GoldenGate DML 同步源端配置

1)  先配置 DML 同步

cd D:\app\Administrator\product\11.2.0\dbhome_1

ggsci.exe 

dblogin userid ogguser password ogguser

1、源 MGR 进程

1)  编辑主进程组

edit params mgr

PORT 7809

dynamicportlist 7800-8000

autorestart extract *,retries 5,waitminutes 2,resetminutes 5

PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7

LAGREPORTHOURS 1  

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

说明 :

port  指定 mgr 进程通信端口

dynamicportlist  表示 mgr 进程可以为源与目的端动态通信指定端口 ,ogg12 已经废弃;

autorestart extract*  表示自动重启 extract 进程组,每 2 分钟尝试重启所有进程,重试 5 次,每 5 分钟清零。

minkeepdays 7   队列传递结束后 , 依然保留本地队列 7 天

LAGREPORTHOURS 1         /*  每隔 1 小时检查延迟报告 

LAGINFOMINUTES 30        /*  每隔 30 分钟检查延迟 , 如果超过延迟阈值 , 将写入错误日志 

LAGCRITICALMINUTES 45    /* 延迟阈值 45 分钟

2)  启动主管理进程

start mgr

2 、配置 Extract 进程组

1)  编辑配置文件

edit param ext1

extract ext1

setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

userid ogguser,password ogguser

exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd

table test.*;

说明 :

extract ext1 定义 extract 进 ?? 名字

dynamicresolution

setenv 设置环境变量

userid  登录数据库

exttrail 指定本地 trail 文件地址

table  定义同步的表

AMERICAN_AMERICA.AL32UTF8  实验环境的字符集,可用 SELECT userenv('language') from dual; 查出

TRANLOGOPTIONS  CONVERTUCS2CLOBS  clob 大字段的转换

GETTRUNCATES  获取 Truncate 操作

tranlogoptions rawdeviceoffset 0    /*  裸设备文件偏移量 (AIX 系统专有参数 ) ,此实验不用

2)  添加抽取进程

add extract ext1,tranlog,begin now

3)  添加本地 trail 文件

add exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd,extract ext1

说明 :

创建本地 trail 文件,主 extract 进程负责写这部分文件, pump 负责把这部分文件传到目标服务器端。

4)  启动服务

start extract ext1

3 、配置 Pump 进程组

1)  编辑配置文件

edit param extpump

extract extpump

dynamicresolution

passthru

rmthost 10.11.82.56,mgrport 7809,compress

rmttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb

table test.*;

2)  添加 pump 进程

add extract extpump,exttrailsource D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\yd

3)  添加远程 trail 文件

add rmttrail /ogg/app/oracle/dirdat/mb,extract extpump

说明 :  指定远程 trail 文件

4)  启动 pump 进程

start extract extpump

至此:源端配置完成,查看相关进程是剖正常启动

命令:

info all  查看所有进程的状态

view report ext1  可查看失败进程的报错

4 、目标端初始化

建立测试用户及初始化数据

create user test identified by test;

grant connect ,resource ,dba to test;

conn test/test

create table test (id number ,name varchar2(20));

创建包含 CLOB 字段的表并初始化

create table t_clob(tid number,c_clob clob);

2 、GoldenGate DML 同步目标端配置

安装 ogg 软件,安装目录和原服务器一样,安装过程忽略

数据库上进行配置,创建用户,授权

create user ogguser identified by ogguser

default tablespace ogguser

temporary tablespace temp;

grant connect,resource,dba to ogguser;

1 、目标端 MGR 进程

cd D:\app\Administrator\product\11.2.0\dbhome_1

ggsci.exe 

dblogin userid ogguser password ogguser

1)  编辑配置文件

edit param mgr

port 7809

dynamicportlist 7800-8000

autostart er *

autorestart extract *, waitminutes 2, resetminutes 5

lagreporthours 1

laginfominutes 3

lagcriticalminutes 5

purgeoldextracts D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\rt*, usecheckpoints, minkeepdays 3

2)  启动

start mgr

2 、添加检查表

说明 :  当我们在 GLOBALS  文件里指定了默认的 checkpoint  之后,新的 Replicat groups  在创建时会自动使用这个参数,不需要其他指令

1)  编辑全局配置文件

GGSCI (dg2) 4> edit param ./GLOBALS

CHECKPOINTTABLE ogguser.checkpoint

2 ) exit # 这里需要退出 ggsci 终端

3 、添加 checkpoint 表

./ggsci

GGSCI (dg2) 1> dblogin userid ogguser password ogguser

GGSCI (dg2 as ogguser@mbdb) 2> add checkpointtable ogguser.checkpoint

4、配置目标端 Peplicat 进程组

1)  编辑配置文件

edit params repl

replicat repl

userid ogguser,password ogguser

reperror default,discard

discardfile D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes 4096 ----megabytes 只过小可能会导致 repl 无法启动

map test.*, target test.*;

2)  添加复制进程

add replicat repl,exttrail D:\app\Administrator\product\11.2.0\oggcore_1\dirdat\mb, CHECKPOINTTABLE ogguser.checkpoint

3)  启动进程

start repl -----aftercsn

5、可以查看 checkpoint 状态

su - oracle

sqlplus ogguser/ogguser

SQL> select tname from tab;

TNAME

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

CHECKPOINT TABLE

CHECKPOINT_LOX TABLE

select * from checkpoint;

注 1 : ogg_11.1.1.1.2 只有 CHECKPOINT 一张表。

注 2 : ogg_11.2.x.x.1 之后的版本有 CHECKPOINT,CHECKPOINT_LOX 两张表。

查看相关进程是否正常启动

info all 

6、验证同步

源端对 test 用户下所有表进行 insert,update,delete 操作,确保目标端可以正常同步所有 DML 操作产生的数据;

三: GoldenGate DDL 同步配置

1 、支持 DDL 复制运行脚本

#  服务器源端配置

1)  指定数据库模式

D:\app\Administrator\product\11.2.0\oggcore_1\ggsci.exe 

GGSCI (dg1) 1> edit param ./GLOBALS

ggschema ogguser

GGSCI (dg1) 3> stop mgr

2)  安装 DDL 对象

进入到 ogg 的安装目录,此实验为 D:\app\Administrator\product\11.2.0\oggcore_1

sqlplus / as sysdba

SQL> grant dba to ogguser;

SQL> @marker_setup  说明 :  均指定用户 ogguser

SQL> @ddl_setup  说明 : 11.1.1.2 需要手动输入  ogguser,INITIALSETUP,yes

SQL> @role_setup

SQL> grant GGS_GGSUSER_ROLE to ogguser;

SQL> @ddl_enable

SQL> @marker_status.sql

注 1:  执行 dbmspool 包将在数据库中创建 DBMS_SHARED_POOL 包,之后 ddl_pin 包需要用到

SQL> @?/rdbms/admin/dbmspool.sql

注 2: 执行 ddl_pin.sql 通过 dbms_shared_pool.keep 存储过程将 DDLReplication 相关对象 keep 在共享池中,以保证这些对象不 RELOAD ,提升性能。

SQL> @ddl_pin.sql ogguser

2、修改 extract 进程的 params 文件

#  服务器源端配置

# source 端修改 extract 进程的 params 文件,添加 "ddl include all" 参数,重启 extract 进程

1)  停止 ext1 进程

GGSCI (test) 2> stop extract ext1

2)  编辑配置文件

GGSCI (test) 3> edit params ext1

extract ext1

dynamicresolution

setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

userid ogguser,password ogguser

exttrail /ogg/app/oracle/dirdat/yd

report at 1:00

reportrollover at 1:00

ddl include all

ddloptions addtrandata,report

GETTRUNCATES

TRANLOGOPTIONS  CONVERTUCS2CLOBS

table test.*;

#  说明:加了两行 tranlogoption  与  ddl

3) 启动 mgr,eora 进程

GGSCI (test) 4> start mgr

GGSCI (test) 5> start extract ext1

4)  查看进程启动情况

GGSCI (test) 6> info extract ext1

3、修改目标端 replicat 进程的 params 文件

#  目标服务器配置

# target 端修改 replicat 进程的 params 文件,

添加 "ddlerror default ignore retryop maxretries 3 retrydelay 5"  等参数,重启 replicat 进程,操作如下

1)  停止 mgr 进程

GGSCI (slave) 1> stop mgr

2)  停止 repl 进程

GGSCI (slave) 1> stop replicat repl

3)  编辑 repl 配置文件

GGSCI (slave) 1> edit params repl

GGSCI (slave) 2> view params repl

replicat repl

userid ogguser,password ogguser

reperror default,discard

discardfile D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc,append,megabytes 4096

ddloptions report

ddlerror default ignore retryop maxretries 3 retrydelay 5

ddlerror default discard

ddlerror default ignore retryop

map test.*, target test.*;

4)  启动 rora_t1 进程

GGSCI (slave) 4> start mgr #  会自动启动 repl 进程

GGSCI (slave) 5> info replicat repl

4、测试

在源端 test 用户创建一个表,查看目标端是否成功创建。

create table t1(id number);

5、验证 

在目标端查看 t1 表及数据是否同步过来

四、常见问题

问题一:

insert 和 delete 可以同步, update 不能同步;

解决方案:

ggsci > dblogin userid gg, password gg

ggsci > add trandata test.*

问题二:

repl 进程无法启动

查看日志

D:\app\Administrator\product\11.2.0\oggcore_1\ggserr.log

D:\app\Administrator\product\11.2.0\oggcore_1\dirrpt\repl.dsc

megabytes 值过小,可能会引起 rep1 进程 ABENDED ;

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

Oracle DML/DDL同步数据(OGG_12.2_for_Windows)

Oracle DML/DDL同步数据(OGG_12.2_for_Windows)


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle DML/DDL同步数据(OGG_12.2_for_Windows)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据表的定义DDL与数据的操作DML

DDL:用来定义RDB模式、外模式和内模式,已实现对基本表、视图以及索引文件的定义、修改和删除    创建数据表->创建表结构->创建表数据  数据类型             创建表 create table 表名(字段名 数据类型 [长度] [列级完
数据表的定义DDL与数据的操作DML
2015-06-26

两个oracle数据库怎么同步数据

要同步两个Oracle数据库的数据,可以使用以下方法:数据库链接:可以在一个数据库中创建一个数据库链接,然后通过该链接在另一个数据库中执行SQL语句来同步数据。数据库复制:可以使用Oracle GoldenGate或Data Guard等数
两个oracle数据库怎么同步数据
2024-04-22

一篇文章,彻底理解数据库操作语言:DDL、DML、DCL、TCL

本篇文章以具体的SQL语句讲解了数据库SQL语言四大分类(数据定义语言DDL,数据操作语言DML,数据查询语言DQL,数据控制语言DCL),同时也介绍了事务控制语言TCL。

oracle数据库怎么同步到另一个数据库

要将Oracle数据库同步到另一个数据库,可以使用以下方法:1. 数据库备份和还原:在源数据库中进行全量备份,然后将备份文件复制到目标数据库,并在目标数据库中进行还原。这种方法适用于需要完全覆盖目标数据库的情况。2. 数据库复制:使用Ora
2023-09-17

DataX数据同步

为什么找个对象这么难呢? 哭哭。 单身找对象,呜呜呜。 DataX 一.一 什么是 DataX DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据 库(MySQL、Oracle 等)、HDFS、Hive、
2023-08-25

oracle数据库ddl语句怎么使用

在Oracle数据库中,DDL(Data Definition Language)语句用于定义数据库对象,如表、视图、索引等。以下是一些常见的DDL语句及其用法:创建表:CREATE TABLE table_name (column1 da
oracle数据库ddl语句怎么使用
2024-04-09

编程热搜

目录