欢迎光临
我们一直在努力

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",共同学习,共同成长!!!




赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。