Welcome 微信登录

首页 / 数据库 / MySQL / Oracle GoldenGate 安装配置

Oracle GoldenGate软件可以实现异构平台数据的迁移和同步,它是基于数据库日志结构变化,通过解析源端在线日志或归档日志获得数据增量,再将这些变化应用到目标数据库,从而实现源库和目标库的数据同步。下面通过一个简单的示例,详细介绍利用GoldenGate实现Oracle数据库之间的同步。1. 安装
1.1 下载介质
GoldenGate的安装介质可以从Oracle的官网上下载。http://www.oracle.com/technetwork/middleware/goldengate/overview/index.html1.2 配置GoldenGate用户
 下载完成后将其拷贝到源和目标的数据库的相应位置解压完成后,即可以开始进行配置。
# su – oracle
 $ mkdir /u01/ogg
 $ cd /u01/ogg
 $ tar xvf ogg_for_oracle_linux_86.tar
注意,如果使用Oracle 11g的数据库,需要创建一个link文件。
$ ln -s /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so -
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz10.so配置环境变量
$ vi ~/.bash_profile
添加如下的内容:
export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/ogg
 export GGATE=/u01/app/oracle/ogg1.3 配置ogg的应用目录
 使用ggsci工具,创建必要的目录。$ cd /u01/app/oracle/ogg
 $ ./ggsciOracle GoldenGate Command Interpreter for Oracle
 Version 11.1.1.0.0 Build 078
 Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2015 10:20:18Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.GGSCI (gridcontrol) 1> create subdirs至此,GoldenGate基本的安装完成。
 注意:此部分需要在源端和目标端完成。2. 源数据库配置
GoldenGate主要通过抓取源端数据库重做日志进行分析,将获取的数据应用到目标端,实现数据同步。因此,为了让GoldenGate能够正常工作,源数据库需要进行一定配置。2.1配置源数据库必须是 归档模式、附加日志、强制日志 
--查看SQL> CONN / AS SYSDBA
 SQL>select db.LOG_MODE, db.SUPPLEMENTAL_LOG_DATA_MIN, db.FORCE_LOGGING  from v$database dbSQL>--修改SQL>--1)archivelogSQL>shutdown immediateSQL>startup mountSQL>alter database archivelog;SQL>alter database open;SQL>--2)force loggingSQL>alter database force logging;SQL>--3)supplemental log dataSQL>alter database add supplemental log data;2.2 关闭数据库的recyblebin
 SQL>alter system set recyclebin=off scope=spfile;
如果数据库是10g,需要关闭recyclebin并重启;或者手工purge recyclebin。2.3 配置复制的DDL支持
SQL>create user ogg identified by ogg default tablespace users temporary tablespace temp;
SQL>grant connect,resource,unlimited tablespace to ogg;SQL>grant execute on utl_file to ogg;  SQL>@$GGATE/marker_setup.sql;SQL>@$GGATE/ddl_setup.sql;SQL>@$GGATE/role_setup.sql;SQL>grant GGS_GGSUSER_ROLE to ogg;SQL>@$GGATE/ddl_enable.sql; 2.4创建源端和目标端的测试用户
--在源端执行
SQL>create user ss identified by oracle default tablespace users temporary tablespace temp;SQL>grant connect,resource,unlimited tablespace to ss;  --在目标上执行SQL>create user rr identified by oracle default tablespace users temporary tablespace temp;SQL>grant connect,resource,unlimited tablespace to rr; 3. 配置manager
在源端和目标端分别执行下面的步骤。3.1 源端创建manager
 [ogg@node1 gg]$ ./ggsci
 GGSCI (node1) 1> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 GGSCI (node1) 2> edit params mgr
 PORT 7809
 GGSCI(node1) 3> start manager
 Manager started.
在目标端
[ogg@node2 gg]$ ./ggsci
 GGSCI (node2) 1> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 GGSCI (node2) 2> edit params mgr
 PORT 7809
 GGSCI(node2) 3> start manager
 Manager started.4. 配置源端复制队列
GGSCI (node1) 1> add extract ext1, tranlog, begin now
 EXTRACT added.
 GGSCI (node1) 2> add exttrail /u01/ogg/dirdat/lt, extract ext1
 EXTTRAIL added.GGSCI (node1) 3> edit params ext1
 extract ext1
 userid ogg@source, password ogg
 rmthost node1, mgrport 7809
 rmttrail /u01/ogg/dirdat/lt
 ddl include mapped objname sender.*;
 table sender.*;GGSCI (node1) 6> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 EXTRACT STOPPED EXT1 00:00:00 00:10:555. 配置目标端同步队列
5.1 在目标端添加checkpoint表
[oracle@node2 ogg]$ ./ggsci
 GGSCI (node2) 1> edit params ./GLOBAL –添加下列内容
GGSCHEMA ggate
 CHECKPOINTTABLE ggate.checkpoint
 GGSCI (node2) 2> dblogin userid ogg password ogg
 Successfully logged into database.GGSCI (node2) 3> add checkpointtable ogg.checkpoint
 Successfully created checkpoint table GGATE.CHECKPOINT.5.2 创建同步队列
GGSCI (node2) 4> add replicat rep1, exttrail /u01/ogg/dirdat/lt, checkpointtable ogg.checkpoint
 REPLICAT added.
 GGSCI (node2) 5> edit params rep1
 replicat rep1
 ASSUMETARGETDEFS
 userid ogg,password ogg
 discardfile /u01/ogg/dirdat/rep1_discard.txt, append, megabytes 10
 DDL
 map ss.*, target rr.*;6. 开启同步
--源端
GGSCI (node1) 14> start extract ext1
 GGSCI (nod1) 15> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER RUNNING
 EXTRACT RUNNING EXT1 00:00:00 00:00:05
--目标端GGSCI (node2) 7> start replicat rep1
 GGSCI (node2) 8> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER RUNNING
 REPLICAT RUNNING REP1 00:00:00 00:00:00GoldenGate单向表DML同步 http://www.linuxidc.com/Linux/2013-04/82942.htmOracle GoldenGate 系列:Extract 进程的恢复原理 http://www.linuxidc.com/Linux/2013-04/82563.htmOracle GoldenGate安装配置 http://www.linuxidc.com/Linux/2013-02/79455.htmOracle goldengate的OGG-01004 OGG-1296错误 http://www.linuxidc.com/Linux/2011-08/40951.htmOracle GoldenGate快速入门教程:基本概念和配置 http://www.linuxidc.com/Linux/2014-09/106677.htm搭建一个Oracle到Oracle的GoldenGate双向复制环境 http://www.linuxidc.com/Linux/2014-11/109101.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址