设为首页 收藏本站
查看: 600|回复: 0

[经验分享] 利用GoldenGate实现Oracle实时同步方案

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-7 09:26:45 | 显示全部楼层 |阅读模式

简介:
OracleGolden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OracleGolden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,Oracle GoldenGate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。GoldenGate从源到目标数据是经过压缩加密传输,所以该方案是比较安全且对网络带宽要求不高;GoldenGate可以支持几乎所有常用操作系统和数据库平台,可扩展性非常好。





Oracle GoldenGate(下文简称ogg)软件也可以通过ORACLE官方网站进行下载,根据ORACLE的版本及操作系统来下载对应版本的ogg,官方下载地址:
http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html


一. 环境准备
◆准备两台机器,分别为SourceDB, TargetDB,通过TCP/IP网络进行互连
SourceDB :Windows2008 R2企业版,Oracle 11G R2  10.6.1.58
TargetDB :Windows2008 R2企业版,Oracle 11G R2  10.6.1.59
◆必须保证SourceDB是运行在归档模式下。
◆目的 :将SourceDB中相关Schema中的数据同步复制到TargetDB相对应的Sechema中
本文中要同步的是SouceDB中的IRP用户到Target中的IRP用户下

◆首先要保持SourceD, TargetDB相关Schema中的初始数据一致,可以通过Expdp/impdb,Exp/Imp,Rman,冷备等方式实现.
◆双方DB建立GoldenGate用户,赋予DBA权限,用于GoldenGate连接DB.
◆双方DB安装GoldenGate.
本文档中ogg指的就是GoldenGate

为了能让ogg成功的将源数据库及目标数据库进行同步,下面还需要对ogg及oracle进行一系列配置(ogg支持多种复制方式,比如单项复制、双向复制等等,因实际需要,本文仅介绍单向复制相关配置)。
首先说说ogg的一些概念:
1、 Manager:ogg所有服务必须依赖Manager,Manger如同ogg的总调度。
2、  Extract :ogg用来获取源数据库数据更新的,将变更的数据发送到目标数据库
3、 Replicat :ogg用来接收源数据库的更新,一旦源数据库Extract将数据发送过来后,Replicat会自动将更新脚本同步到目标数据库。


二. 配置过程
2.1GoldenGate的安装.
GoldenGate安装非常简单,但需在源数据库和目标数据库服务器上均安装。该软件可以从oracle官网上下载,解压安装包,路径为D:\tool\ogg
安装步骤如下:
1.       进入命令行, 切换到ogg目录下
2.      输入命令install addservice addevents (安装成服务)
3.       输入ggsci进入GoldenGate管理控制台。输入 create subdirs
4.       手工在ogg目录下创建discard文件夹。
5.       在oracle中创建GoldenGate专属帐号(此处我直接用IRP用户)
Sqlplus /nolog
SQL> conn / as sysdba
SQL> create user IRP identified by IRP;  
SQL> grant connect,resource to IRP;
SQL> grant unlimited tablespace to IRP;
SQL> grant execute on utl_file to IRP;
或者直接赋DBA权限
SQL> grant dba to IRP;

6.       新创建的ogg用户执行配置脚本
在ogg的安装目录下登陆sqlplus,使用sys登陆sqlplus,然后执行如下配置。
Sqlplus /nolog

SQL> conn / as sysdba

SQL> @marker_setup.sql

SQL> @ddl_setup.sql;

SQL> @role_setup.sql;

SQL> grant GGS_GGSUSER_ROLE to IRP;

SQL> @ddl_enable.sql;

7.       进入ogg控制台,测试用户是否创建成功

GGSCI (local) 1>dblogin userid IRP

Password: IRP

Successfully loggedinto database.


OK,GoldenGate安装就已经完成了。


2.2 源服务器配置
1、开启ORACLE归档模式,设置日志模式

sqlplus /nolog

SQL> conn / as sysdba

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database force logging;

SQL> alter database add supplemental log data;

SQL> alter database open;

2、 回收站功能会影响同步,需要关闭回收站

SQL>alter session set recyclebin=off;

SQL>alter system set recyclebin=off DEFERRED; (注意10g和11g此处不太一样)

3、登陆ogg控制台,设置需要进行同步的oracle表

GGSCI (local) 1> dblogin userid IRP

GGSCI (local) 1> add trandata IRP.*

5、配置oggmanager&启动manager(配置界面操作类似vi)

GGSCI (local) 1> edit param mgr

PORT 7809

GGSCI (local) 1> info all(查看当前mgr状态)

GGSCI (local) 1> start manager(启动manager,启动完后可以用info all再次查看状态)

6、 添加一个ogg extract进程,用于抽取源服务器数据

GGSCI (local) 1> add extract ext1,tranlog,begin now (增加一个抽取进程ext1,ext1名字可以根据需要修改)

GGSCI (local) 1> add exttrail D:\tool\ogg\dirdat\r1 extract ext1 (将ext1抽取的源数据变更数据写到该文件夹)

GGSCI (local) 1> edit params ext1 (修改ext1的配置参数)

extract ext1

userid IRP,password IRP

rmthost 10.6.1.59,mgrport7809  --目标服务器ip

rmttrail D:\tool\ogg\dirdat\r1   --目标服务器文件夹

ddl include mapped objname IRP.*;

table IRP.*;

配置完成后可以通过info all查看到新添加的extract的状态

7、启动ogg extract命令

GGSCI (local) 1> start extract ext1  (等目标服务器ogg配置成功后再启动ext)



2.3目标服务器配置

1、登陆ogg控制台

GGSCI(local) 1> dblogin userid IRP


2、配置oggmanager&启动manager(配置界面操作类似vi)

GGSCI(local) 1> edit param mgr

PORT7809

DYNAMICPORTLIST7840-7850  --远程队列端口范围

GGSCI(local) 1> info all(查看当前mgr状态)


3、添加一个oggreplicat进程,用于更新目标服务器数据

GGSCI(local) 1> edit params ./GLOBAL

GSSCHEMAIRP

CHECKPOINTTABLEIRP.checkpoint


GGSCI(local) 2> dblogin userid IRP

Password:IRP

Successfullylogged into database.


GGSCI(local) 3> add checkpointtable IRP.checkpoint

Successfullycreated checkpoint table IRP.CHECKPOINT.


GGSCI(local) 4> ADD replicat rep1 EXTTRAIL D:\tool\ogg\dirdat\r1,checkpointtable IRP.checkpoint

GGSCI(local) 5> edit param rep1

replicatrep1

userid IRP,password IRP

ASSUMETARGETDEFS

reperrordefault,discard

discardfileD:\tool\discard\repsz.dsc,append,megabytes 10 (repsz.dsc要自己创建)

DDLINCLUDE MAPPED

DDLERRORDEFAULT IGNORE RETRYOP

map IRP.*,target IRP*;


配置完成后可以通过infoall查看到新添加的extract的状态


4、启动oggmanager & replicat命令

GGSCI(local) 1> start manager

GGSCI(local) 1> start replicat rep1


最后参考源服务器配置,启动ext1


2.4 维护相关的命令
注:n指的是相应的编号

1、  启动manager:startmanager

2、  启动extract:startextract extn

3、  启动replicat:startreplicat repn

4、  停止manager:stopmanager

5、  停止 extract:stopextract extn

6、  停止replicat:stopreplicat repn

7、  删除extract:deleteextract extn

8、  删除replicat:deleteextract repn

9、  查看ogg状态:infoall

10、修改manager参数:editparams mgr

11、修改extract参数:editparams extn

12、修改replicat参数:editparams repn

13、修改全局参数:editparams ./GLOBAL


三.测试在源服务器上建表,然后查看目标服务器是否有相应的记录。
用PL/SQL登录数据库,用IRP用户。

3.1  源库建表及验证目标库create table test as select * from scott.emp;
查询表记录,如下

Select * from test;
wKiom1Xr5wOhOixzAAIg4GGRKEo031.jpg

检查目标数据库,如下
wKiom1Xr5w7Ta_S6AAJgQVIf8Ns182.jpg


3.2 源库插入、删除记录及验证目标库
源库插入一条记录
Inert into test values(7937,'TOM','IT',7839,TO_DATE('2015/06/21','YYYY/MM/DD'),8000,0.00,30);

检查目标数据库

wKiom1Xr5xqQ-XIMAAGV2xWJ_hc590.jpg


源库删除一条记录
delete from test where EMPNO=7937 and ENAME='TOM';

检查目标数据库
已经删除。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110417-1-1.html 上篇帖子: altersystem set recyclebin = off 报错 recyclebin 参数在11g和10g中的区别 下篇帖子: Oracle GoldenGate 简介 数据库同步 异地复制方案 Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表