Oracle使用goldengate分别向Oracle和mysql双路的单向复制
一.Oracle分别向Oracle和mysql双路的单向复制是在:
ORACLE-mysql的单向复制基础上做的。http://blog.csdn.net/q947817003/article/details/13294937
二.分别再在ORACLE主库及ORACLE目标库上增加相应进程
ORACLE源端增加:
1.增加配置extract进程
按顺序执行以下操作:
add extract extora,tranlog, begin now
目标端文件的位置--这里要注意rmttrail指的是目标端的路径。
add rmttrail /u01/ogg/dirdat/ot, extract extora
edit params extora
在打开的编辑窗口写入
extract extora
userid ogg, password ogg
rmthost 192.168.1.213, mgrport 7809
rmttrail /u01/ogg/dirdat/ot
table test5.test5;
##################################################
2.目标端增加replicat进程:
-----我这里MYSQL目标库和ORACLE目标库在同一台虚拟机,如果是同样情况要要注意:
OGG FOR MYSQL和OGG FOR ORACLE安装在不同目录,并且所涉及的MGR及接收、抽取进程都是独立的。
相关的进程都需要单独启动。
同时要注意OGG FOR MYSQL和OGG FOR ORACLE两个主进程要运行在不同的端口,如我的OGG FOR ORACLE运行在7809. OGG FOR MYSQL运行在7810
逐次输入以下命令:
dblogin userid ogg,password ogg
add checkpointtable ogg.checkpoint ###########如果之前已经配置过增加这个表,就不需要执行这一句。
add replicat repora,exttrail /u01/ogg/dirdat/ot, checkpointtable ogg.checkpoint
edit params repora
在弹出编辑窗口输入以下:---我这里只设置了同步test5用户的test5表
试中再建立。
replicat repora
handlecollisions
assumetargetdefs
userid ogg,password ogg
discardfile /u01/ogg/dirdat/repora_discard.txt,append, megabytes 10
map test5.test5, target test5.test5;
三、在ORACLE目标库创建用户及表,并启动主及目标库的OGG进程。
1.
ORACEL目标数据库中创建用户和表所使用的语句如下:
使用DBA用户执行 create user test5 identified by test5;
grant connect,resource to test5;
conn test5/test5
create table test5(aa int primary key);
2.启动主及目标库的OGG进程
涉及语句大致如下:
start mgr
start extract extmysql 或start extmysql
start replicat repmysql 或start repmysql
start extract extora 或start extora
start replicat repora 或start repora
3.进程 启动后的状态如下:
ORACLE主库OGG进程: --只用不用 了EXTMYSQL EXTORA两个,其它的是其它复制测试用的,不用管。--以下的OGG进程同理。
GGSCI (bys001.oel.com) 21> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT ABENDED EXT1 00:00:00 26:20:26
EXTRACT ABENDED EXT3 00:00:00 26:18:25
EXTRACT RUNNING EXTMYSQL 07:39:30 00:00:04
EXTRACT RUNNING EXTORA 00:00:00 00:08:28
EXTRACT ABENDED PUMP3 00:00:00 26:20:29
REPLICAT ABENDED REP2 00:00:00 26:18:29
MYSQL目标库OGG进程:
GGSCI (bys2.oel.com) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPMYSQL 00:00:00 00:00:00
ORACLE目标库OGG进程:
GGSCI (bys2.oel.com) 14> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT ABENDED EXT2 00:00:00 26:19:06
REPLICAT ABENDED REP1 00:00:00 26:18:59
REPLICAT ABENDED REP3 00:00:00 26:18:58
REPLICAT RUNNING REPORA 00:00:00 00:00:
所涉及的OGG相关进程均正常运行。
四、同步测试
注:下面测试中在统计SQL语句执行时间中是不准确的,比如下面的语句
00:19:21 TEST5@bys1>insert into test5 values(333);
1 row created.
00:19:50 TEST5@
如果统计插入语句的执行时间,应该统计执行完语句的返回的下一个命令提示符中的时间,即00:19:50,而不是00:19:21。目前没实验环境,暂且这样。
1.在源库做插入操作:
--源库已经有两条数据,是在做ORACLE-mysql的单向复制时留下的,这里不清除,
测试可以看到,新增加的ORACLE目标库中初始没有这两条数据,我的配置里OGG也不会自动同步源库与目标库表中存在的数据。
TEST5@bys1>select * from test5;
AA
----------
100
200
TEST5@bys1>set time on
00:19:21 TEST5@bys1>insert into test5 values(333);
1 row created.
00:19:50 TEST5@bys1>commit;
Commit complete.
00:19:53 TEST5@bys1>---注意记录一下提交的时间,方便在目标库查看数据同步情况。
2.目标ORACLE库查询数据同步情况:
---因为目标库内数据未做初始化,原库有两条数据100和200.目标库未初始化这些数据。--可以手动插入那两条数据即可。
[oracle@bys2 mysqlogg]$ sqlplus test5/test5
TEST5@bys2>set time on
00:19:32 TEST5@bys2>select * from test5;
no rows selected
00:19:54 TEST5@bys2>select * from test5;
-
no rows selected
00:19:57 TEST5@bys2>select * from test5;
---可以看到,主库提交后延迟有4秒钟多。
AA
----------
333
3.目标MYSQL库同步情况:
[oracle@bys2 mysqlogg]$ mysql -u root -p oggtest
Enter password:
mysql> select * from test5;
+-----+
| aa |
+-----+
| 100 |
| 200 |
|
333 |
+-----+
3 rows in set (0.00 sec)
mysql> select * from chktab;
----查询这个表, audit_ts 列在OACLE源库发出COMMIT后就有了更新。 last_update_ts列是在00:19:54秒,和ORACLE目标库一样是有4秒多的延迟了。
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
| group_name | group_key | seqno | rba | audit_ts | create_ts | last_update_ts | current_dir |
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
| REPMYSQL | 2345303211 | 2 | 1218 |
2013-08-31 00:19:50.795556 | 2013-08-30 14:14:31 |
2013-08-31 00:19:54 | /u01/mysqlogg |
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
1 row in set (0.00 sec)
Oracle使用goldengate分别向Oracle和mysql双路的单向复制的更多相关文章
- Oracle GoldenGate 异构平台同步(Mysql到Oracle)
一.OGG安装配置(源端) 1.OGG下载 http://www.oracle.com/technetwork/cn/middleware/goldengate/downloads/index.htm ...
- 搭建一个Oracle到Oracle的Goldengate双向复制环境
目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 ...
- Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm
由于虚拟机宿主机重启,导致很多虚拟机服务需要重点关注,其中一个DG的从库和另一个report库有OGG同步,所以这里再系统恢复后检查OGG状态的时候,果然目标端的REPLICAT进程处于abend状态 ...
- oracle 11g goldengate搭建(一)
初学ogg,基本了解ogg原理及架构之后,趁热打铁,搭建一个简单的学习环境,以实现目标:将sourcedb数据库的2个表:sourceuser.test01和sourceuser.dept通过ogg分 ...
- 代码生成器Kalman Studio2.2发布,完美支持Oracle,不需要安装Oracle客户端
这次更新主要是增加对Oracle的支持,不需要安装Oracle客户端,下面的配置文件列出了Kalman Studio支持的几种数据库 <?xml version="1.0" ...
- MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...
- Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构
Oracle安装 Navicat for Oracle配置 Oracle JDBC连接(增删改查) Oracle安装 环境windows 7 64位 安装版本:oracle 11g(64位) 下载地址 ...
- Oracle记录(一)Oracle简介与安装
Oracle笔记(一) Oracle简介及安装 一.轨迹 二.Oracle简介 Oracle是现在全世界最大的数据库提供商,编程语言提供商,应用软件提供商,它的地位等价于微软的地位. Oracle在古 ...
- 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库
在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...
随机推荐
- Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
一.Fragment与Activity的通讯 在使用fragment的时候,通常的用法都是使用一个activity来管理不同的fragment,所以每个fragment与activity的及时通讯 ...
- Delphi 让自己的软件实现双击打开文件 转
unit shjAssociateFileType; interface uses Windows, Registry; {将文件类型strFileExtension与程序strExeFileName ...
- 【Android】如何使用安卓的logcat『整理』
logcat是Android中一个命令行工具,可以用于得到程序的log信息.开发调试和测试定位bug都挺有用哒 有两种方式可以达到查看log的目的. 一 Eclipse集成DDMS插件 1 安装ecl ...
- codeforces 687C - The Values You Can Make 简单dp
题意:一个数组a[i],你可以挑出若干个数(只能挑一次)加起来等于k, 针对每一种方案,你可以选出这若干个数的子集来组合新数 最后所有的方案能组合出多少种数 分析:一看数据范围n,k<=500 ...
- Mobile testing基础之签名
1. 什么是数字签名? 数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的 2. 为什么要数字签名? 最简单直接的回答: 系统要求的. Android系统 ...
- Linux性能监控之Memory篇
首先说说虚拟内存和物理内存: 虚拟内存就是采用硬盘来对物理内存进行扩展,将暂时不用的内存页写到硬盘上而腾出更多的物理内存让有需要的进程来用.当这些内存页需要用的时候在从硬盘读回内存.这一切对于用户来说 ...
- wireshark http过程
一直研究lighttpd源码,顺便看下网络编程,不说太多,开始吧 第一步 设置wireshark过滤规则 tcp.port eq 81 ,然后开始捕捉 第二步 http://183.61.16.16 ...
- Android实例-Delphi开发蓝牙官方实例解析(XE10+小米2+小米5)
相关资料:1.http://blog.csdn.net/laorenshen/article/details/411498032.http://www.cnblogs.com/findumars/p/ ...
- Delphi使用FindClass实现动态建立对像(有点像反射)
相关资料:http://www.blogjava.net/nokiaguy/archive/2008/05/10/199739.html { http://www.blogjava.net/nokia ...
- [iOS 多线程 & 网络 - 2.8] - 检测网络状态
A.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 ...