Oracle Golden Gate 11gR2 单向复制
来源:互联网 发布:grapher软件绘图教学 编辑:程序博客网 时间:2024/03/29 22:38
示例采用GoldenGate典型的配置:
在Source端,配置一个管理进程, 添加一个Extract进程,添加一个本地队列路径,定义一个远端的接收队列路径。
在Target端,配置一个管理进程和添加一个Replicat进程,指定一个应用队列,即抽取进程定义的远端队列。
一.安装GG 软件
1.1 OS 和 DB 版本
2 环境配置
Goldengate 版本
[root@ol63 ~]# uname -a
Linux ol63 2.6.39-300.28.1.el6uek.x86_64 #1 SMP Tue Feb 5 22:51:31 PST 2013 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux Server release 6.3 (Santiago)
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
Linux centos6 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
CentOS release 6.3 (Final)
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
1.2 安装GG
-rw-r--r-- 1 root root 89186858 Feb 21 14:59 ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
1.3 添加环境变量
在/home/oracle/.bash_profile文件里添加如下内容:LD_LIBRARY_PATH=/opt/oracle/ggate:${ORACLE_HOME}/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
GGATE=/opt/oracle/ggate; export GGATE
NLS_LANG="AMERICAN_AMERICA.AL32UTF8" export NLS_LANG
注意我这里的GG 和Oracle 使用的是相同的用户,所以把GG 的变量加上就可以了。加载刚刚设置的环境变量:
1.4 使用ggsci工具,创建必要的目录
cd /opt/oracle/ggate二.配置Source database
GoldenGate通过抓取源端数据库重做日志进行分析,将获取的数据应用到目标端,实现数据同步。因此,源数据库需要必须处于归档模式,并启用附加日志和强制日志。
2.1 归档模式、附加日志、强制日志
--查看
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;LOG_MODE SUPPLEME FOR
------------ -------- ---
NOARCHIVELOG NO NO
(1)archivelog
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
(2) force logging
SQL>alterdatabase force logging;
(3)supplemental log data
SQL>alterdatabase add supplemental log data;
2.2 Oracle 9i的_LOG_PARALLELISM参数
如果是Oracle 9i的数据库,还需要将_LOG_PARALLELISM 参数设置为1. 因为GG 不支持该值超过1.
If using OracleGoldenGate for an Oracle 9i source database, set the _LOG_PARALLELISMparameter to 1. Oracle GoldenGate does not support values higher than 1.
2.3 启用DDL 支持
GG虽然支持DDL,但是也是有限制的,具体参考:
Oracle Gloden Gate 系列三 --GG 支持与不支持的对象类型与操作 说明
http://blog.csdn.net/tianlesoftware/article/details/6933969
GG 支持DDL 也是通过创建一些table 来保存这些DDL 的信息,关于这些table 的具体说明,在如下链接的第二小节:启用GG 对DDL 操作的支持有详细说明:
Oracle Golden Gate 系列四 --GG 安装 与 卸载 理论知识
http://blog.csdn.net/tianlesoftware/article/details/6937183
对于这些存放DDL 信息表的管理的理论支持,参考如下链接的第四小结:Managing theOracle DDL replication environment。
Oracle Golden Gate 系列五 --GG 使用配置 说明
http://blog.csdn.net/tianlesoftware/article/details/6947973
这块的测试内容会另篇Blog进行测试。
2.3.1 禁用Recycle Bin
如果启用DDL 支持,必须关闭recycle bin。官网的解释如下:
If the recyclebin is enabled, the Oracle GoldenGate DDL trigger session receives implicitrecycle bin DDL operations that cause the trigger to fail.
Oracle 11g:
SQL> alter system set recyclebin=off scope=spfile;
System altered.
如果数据库是10g,需要关闭recyclebin并重启;或者手工purge recyclebin。
2.3.2 创建存放DDL 信息的user并赋权
SQL> create user ggate identified by ggate default tablespace users temporary tablespace temp;
User created.
SQL> grant connect,resource to ggate;
Grant succeeded.
SQL> grant execute on utl_file to ggate;
Grant succeeded.
退出所有使用Oracle 的session,然后使用SYSDBA权限的用户执行如下脚本
--进入GG的目录,然后调用脚本:--脚本1:
SQL> @marker_setup.sql;
--输入我们之前创建的用户名:
Enter GoldenGate schema name:ggate
--脚本2:
SQL> @ddl_setup.sql;
--提示输入GG的用户:
Enter GoldenGate schema name:ggate
--脚本3:
SQL> @role_setup.sql;
--同样输入GG用户名:
Enter GoldenGate schema name:ggate
--脚本4:赋权
SQL> grant GGS_GGSUSER_ROLE to ggate;
--脚本5:
SQL> @ddl_enable.sql;
三.测试GG
经过第一和第二节的配置,GG 的配置基本完成,这里我们开始测试GG。
注意:
(1) 目标库的用户名和对象名称可以与源端不同,关键在于配置文件中要能够正确匹配。
(2) 配置源和目标两端tnsnames,保持互联互通。
3.1 在Source 和 Target database上创建测试用户
--source database
SQL> create user sender identified by oracle default tablespace users temporary tablespace temp;
User created.
SQL> grant connect,resource,dba to sender;
Grant succeeded.
--target database
SQL> create user receiver identified byoracle default tablespace users temporary tablespace temp;
User created.
SQL> grant connect,resource,dba to receiver;
Grant succeeded.
3.2 在Source 和Target 上配置Manager
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED
PORT 7809
--这里我们指定了端口,然后:wq 保存退出。
GGSCI (ol63) 3> start manager
Manager started.
以上是在Source 库上执行的,在Target 库上执行同样的操作。3.3 配置SourceDB 的复制队列
3.3.1 先连接到数据库,测试连接:
GGSCI (ol63) 4> dblogin userid ggate, password ggateSuccessfully logged into database.
3.3.2 增加一个抽取:
GGSCI (ol63) 11> add extract ext1,tranlog, begin now
2013-01-08 20:36:47 INFO OGG-01749 Successfully registeredEXTRACT EXT1 to start managing log retention at SCN 1121060.
EXTRACT added.
GGSCI (gg1) 12> add exttrail /u01/ggate/dirdat/lt, extract ext1
EXTTRAIL added
修改抽取进程ext1参数:
GGSCI (ol63) 13> edit params ext1
extract ext1
SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8")
userid ggate, password ggate
rmthost centos6, mgrport 7809
rmttrail /opt/oracle/ggate/dirdat/lt
ddl include mapped objname sender.*;
table sender.*;
GGSCI (ol63) 14> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EXT1 00:00:00 00:03:26
3.4 配置TargetDB 同步队列
3.4.1 在Target 端添加checkpoint表:
GGSCI (centos6) 6> edit params ./GLOBAL
GGSCHEMA ggate
CHECKPOINTTABLE ggate.checkpoint
添加如上2条记录。
GGSCI (centos6) 12> dblogin userid ggate,password ggate
Successfully logged into database.
--说明,这个用户是在Source 库启用DDL 创建的,我在Target 库也创建了这个用户。
GGSCI (centos6) 13> add checkpointtable ggate.checkpoint
Successfully created checkpoint tableGGATE.CHECKPOINT.
3.4.2 创建同步队列
GGSCI (centos6) 14> add replicat rep1,exttrail /opt/oracle/ggate/dirdat/lt, checkpointtable ggate.checkpoint
REPLICAT added.
GGSCI (centos6) 15> edit params rep1
replicat rep1
SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8")
ASSUMETARGETDEFS
userid ggate,password ggate
discardfile /opt/oracle/ggate/dirdat/rep1_discard.txt,append, megabytes 10
DDL
map sender.*, target receiver.*;
添加如上内容。
3.5开启同步
3.5.1 Source DB:
GGSCI (ol63) 15> start extract ext1
Sending START request to MANAGER ...
EXTRACT EXT1 starting
GGSCI (ol63) 16> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EXT1 00:00:00 00:14:16
GGSCI (gg1) 17> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:14:26 00:00:02
3.5.2 Target DB
GGSCI (gg2) 16> start replicat rep1
Sending START request to MANAGER ...
REPLICAT REP1 starting
GGSCI (gg2) 17> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:04
3.6 测试Data 复制
我们在Source DB上的sender 用户下创建一张表,然后看这张表是否同步到了Target DB的receiver用户下。
--Source DB:
SQL> conn sender/oracle;
Connected.
SQL>create table test(id int primary key, name varchar2(50));Table created.
--Target DB:
SQL> conn receiver/oracle;
Connected.
SQL>select * from tab;TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST TABLE
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER(38)
NAME VARCHAR2(50)
98 test98
99 test99
ID NAME
---------- --------------------------------------------------
100 test100
100 rows selected.
---------- --------------------------------------------------
89 test89
90 test90
91 test91
92 test92
93 test93
94 test94
95 test95
96 test96
97 test97
98 test98
99 test99
ID NAME
---------- --------------------------------------------------
100 test100
100 rows selected.
- Oracle Golden Gate 11gR2 单向复制
- Oracle Golden Gate 系列六 -- 11gR2 Ora2Ora 单向复制 GG 示例
- Oracle Golden Gate 系列六 -- 11gR2 Ora2Ora 单向复制 GG 示例
- Oracle Golden Gate 单向复制 DDL,DML 实战档案
- Oracle 11g Golden Gate DDL单向同步实例演示
- 搭建Oracle 到Oracle 的Golden Gate 单向复制测试环境
- Oracle Golden Gate 简述
- Oracle Golden Gate
- oracle Golden Gate
- Oracle Golden Gate 发展史
- Oracle Golden Gate 简述
- Oracle Golden Gate 搭建
- Oracle Golden Gate 配置
- Oracle Golden Gate
- Oracle Golden Gate 系列 小结
- 多种数据库主从复制 工具golden gate
- 11gR2 Ora2Ora 单向复制 GG
- Golden Gate
- Spring笔记
- Erlang组件、工具和代码库
- C#多线程
- servlet&jsp知识点
- 钩子函数HibernateTemplate
- Oracle Golden Gate 11gR2 单向复制
- 用wget下载网站,实现离线浏览
- 合伙创业的痛
- iOS 资源
- 数组、结构和枚举
- [LeetCode] 从排序的单链表到平衡搜索二叉树
- Hello world in Java
- Unix命令行程序和内建指令分类
- VB中数组的概览图