利用GoldenGate实现Oracle实时同步方案
2015-09-06 15:12
686 查看
利用GoldenGate实现Oracle实时同步方案
简介:OracleGolden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。OracleGolden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数据库升级和移植、双业务中心等多个场景下应用。同时,Oracle GoldenGate可以实现一对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。GoldenGate从源到目标数据是经过压缩加密传输,所以该方案是比较安全且对网络带宽要求不高;GoldenGate可以支持几乎所有常用操作系统和数据库平台,可扩展性非常好。
详细介绍可参考:/article/4512295.html
本文中 GoldenGate下载地址: http://down.51cto.com/data/2090385
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.58TargetDB :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 subdirs4. 手工在ogg目录下创建discard文件夹。5. 在oracle中创建GoldenGate专属帐号(此处我直接用IRP用户)Sqlplus /nologSQL> conn / as sysdbaSQL> 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 /nologSQL> conn / as sysdbaSQL> @marker_setup.sqlSQL> @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 IRPPassword: IRPSuccessfully loggedinto database. OK,GoldenGate安装就已经完成了。2.2 源服务器配置
1、开启ORACLE归档模式,设置日志模式sqlplus /nologSQL> conn / as sysdbaSQL> 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 IRPGGSCI (local) 1> add trandata IRP.*5、配置oggmanager&启动manager(配置界面操作类似vi)GGSCI (local) 1> edit param mgrPORT 7809GGSCI (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 ext1userid IRP,password IRPrmthost 10.6.1.59,mgrport7809 --目标服务器iprmttrail 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 IRP2、配置oggmanager&启动manager(配置界面操作类似vi)GGSCI(local) 1> edit param mgrPORT7809DYNAMICPORTLIST7840-7850 --远程队列端口范围GGSCI(local) 1> info all(查看当前mgr状态)
3、添加一个oggreplicat进程,用于更新目标服务器数据GGSCI(local) 1> edit params ./GLOBALGSSCHEMAIRPCHECKPOINTTABLEIRP.checkpoint
GGSCI(local) 2> dblogin userid IRPPassword:IRPSuccessfullylogged into database.
GGSCI(local) 3> add checkpointtable IRP.checkpointSuccessfullycreated checkpoint table IRP.CHECKPOINT.
GGSCI(local) 4> ADD replicat rep1 EXTTRAIL D:\tool\ogg\dirdat\r1,checkpointtable IRP.checkpointGGSCI(local) 5> edit param rep1replicatrep1userid IRP,password IRPASSUMETARGETDEFSreperrordefault,discarddiscardfileD:\tool\discard\repsz.dsc,append,megabytes 10 (repsz.dsc要自己创建)DDLINCLUDE MAPPEDDDLERRORDEFAULT IGNORE RETRYOPmap IRP.*,target IRP*; 配置完成后可以通过infoall查看到新添加的extract的状态
4、启动oggmanager & replicat命令GGSCI(local) 1> start managerGGSCI(local) 1> start replicat rep1
最后参考源服务器配置,启动ext1
2.4 维护相关的命令
注:n指的是相应的编号1、 启动manager:startmanager2、 启动extract:startextract extn3、 启动replicat:startreplicat repn4、 停止manager:stopmanager5、 停止 extract:stopextract extn6、 停止replicat:stopreplicat repn7、 删除extract:deleteextract extn8、 删除replicat:deleteextract repn9、 查看ogg状态:infoall10、修改manager参数:editparams mgr11、修改extract参数:editparams extn12、修改replicat参数:editparams repn13、修改全局参数:editparams ./GLOBAL三.测试
在源服务器上建表,然后查看目标服务器是否有相应的记录。用PL/SQL登录数据库,用IRP用户。
3.1 源库建表及验证目标库
create table test as select * from scott.emp;查询表记录,如下
Select * from test;
检查目标数据库,如下
3.2 源库插入、删除记录及验证目标库
源库插入一条记录Inert into test values(7937,'TOM','IT',7839,TO_DATE('2015/06/21','YYYY/MM/DD'),8000,0.00,30);
检查目标数据库
源库删除一条记录
delete from test where EMPNO=7937 and ENAME='TOM';
检查目标数据库
已经删除。
本文出自 “技术成就梦想” 博客,请务必保留此出处http://pizibaidu.blog.51cto.com/1361909/1691925
相关文章推荐
- oracle常见受权与回收权限 grant和revoke
- 13->oracle的数字字典
- Mysql和oracle的分页问题
- oracle 存储过程 技巧
- oracle sql语句优化
- Oracle中HWM与数据库性能的探讨
- 32位win7下安装Oracle10g(10.2.0.1)和补丁Patch(10.2.0.4)笔记
- Oracle 11g oracle客户端(32位)PL/SQL develepment的安装配置
- oracle添加新用户
- plsql连接数据库ora-28547 oracle net 管理错误
- Oracle GoldenGate 简介 数据库同步 异地复制方案
- oracle中的buffer cache
- ORACLE分页查询SQL语法——最高效的分页
- oracle RMAN克隆数据库
- PLSQL怎样导出oracle表结构和数据
- Oracle定时调用存储过程
- VS本地调试oracle报错解决方法
- oracle数据库导入导出命令!
- oracle数据导入导出
- 使用存储过程将Oracle数据批量导出为多个csv文件