一.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双路的单向复制的更多相关文章

  1. Oracle GoldenGate 异构平台同步(Mysql到Oracle)

    一.OGG安装配置(源端) 1.OGG下载 http://www.oracle.com/technetwork/cn/middleware/goldengate/downloads/index.htm ...

  2. 搭建一个Oracle到Oracle的Goldengate双向复制环境

    目标:搭建一个Oracle到Oracle的Goldengate双向复制环境(支持DDL+DML). 环境: OS:Red Hat Enterprise Linux Server release 5.5 ...

  3. Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prm

    由于虚拟机宿主机重启,导致很多虚拟机服务需要重点关注,其中一个DG的从库和另一个report库有OGG同步,所以这里再系统恢复后检查OGG状态的时候,果然目标端的REPLICAT进程处于abend状态 ...

  4. oracle 11g goldengate搭建(一)

    初学ogg,基本了解ogg原理及架构之后,趁热打铁,搭建一个简单的学习环境,以实现目标:将sourcedb数据库的2个表:sourceuser.test01和sourceuser.dept通过ogg分 ...

  5. 代码生成器Kalman Studio2.2发布,完美支持Oracle,不需要安装Oracle客户端

    这次更新主要是增加对Oracle的支持,不需要安装Oracle客户端,下面的配置文件列出了Kalman Studio支持的几种数据库 <?xml version="1.0" ...

  6. MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

    MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...

  7. Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构

    Oracle安装 Navicat for Oracle配置 Oracle JDBC连接(增删改查) Oracle安装 环境windows 7 64位 安装版本:oracle 11g(64位) 下载地址 ...

  8. Oracle记录(一)Oracle简介与安装

    Oracle笔记(一) Oracle简介及安装 一.轨迹 二.Oracle简介 Oracle是现在全世界最大的数据库提供商,编程语言提供商,应用软件提供商,它的地位等价于微软的地位. Oracle在古 ...

  9. 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

    在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...

随机推荐

  1. SQLlite(WebSQL)如何排序并分页查询(SQLlite语法)

    SELECT * FROM Table ORDER BY ID DESC Limit 10,9 limit语义:跳过10行,取9行 参考: SQLite的limit用法   如果我要去11-20的Ac ...

  2. CXF之六 自定义拦截器

    CXF已经内置了一些拦截器,这些拦截器大部分默认添加到拦截器链中,有些拦截器也可以手动添加,如手动添加CXF提供的日志拦截器.也可以自定义拦截器,CXF中实现自定义拦截器很简单,只要继承Abstrac ...

  3. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 page_should_not_contain_list(self, locator, message='', loglevel='INFO')

    def page_should_not_contain_list(self, locator, message='', loglevel='INFO'): """Veri ...

  4. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 _get_values_for_options(self, options)

    def _get_values_for_options(self, options): values = [] for option in options: values.append(option. ...

  5. 【转】javascript-图片预加载技术

    1,脚本代码: /** * 图片头数据加载就绪事件 - 更快获取图片尺寸 * @version 2011.05.27 * @author TangBin * @see http://www.plane ...

  6. flash recovery area配置

    检查数据库是否开启闪回: SQL> select flashback_on from v$database; FLASHBACK_ON ----------------------------- ...

  7. G-sensor驱动分析

    重力传感器代码分析 重力传感器驱动的功能,主要是向HAL层提供IOCTRL接口,并通过input设备上报数据.芯片实际数据的读取是采用i2c协议读取原始数据,并且作为i2c设备挂载在系统上工作的. 1 ...

  8. Java-note-字符串转换为基本值

    Integer.parseInt() and Double.parse.double() 例: Integer.parseInt("123") 得到常量123

  9. HDU5742:It's All In The Mind(模拟+贪心 )

    题意: 给出n和m,表示n个数,之后会给出m个下标xi和值yi,a[xi]=yi,n个数是不下降的,且总和>0,要使得(x1+x2)/∑(xi)最大. 分析: 尽可能使得前两个数最大,其他数尽可 ...

  10. java的Socket通信例子及关于java.net.SocketException: Socket is closed错误

    今天写socket数据相互通信的时候,碰到一个及其蛋疼的错误.单向传输数据的时候server与client是没有问题的,但是两个都有输入输出操作的时候就出现了这个问题 java.net.SocketE ...