如图所示:源端采用Mysql库,目标端采用Oracle库

一、OGG安装配置(源端)

1OGG下载

https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=14841438

Mysql to Oracle注意事项

1. Supported data types for mysql
CHAR      DOUBLE      TINYTEXT
VARCHAR      DATE      MEDIUMTEXT
INT      TIME      LONGTEXT
TINYINT      YEAR      BLOB
SMALL INT      DATETIME      TINYBLOB
MEDIUM INT      TIMESTAMP      MEDIUMBLOB
BIG INT      BINARY      LONGBLOB
DECIMAL      VARBINARY      ENUM
FLOAT      TEXT      BIT(M)
2.Oracle GoldenGate supports InnoDB storage engine for a source MySQL database
goldengate对mysql只支持innodb引擎
所以,在创建mysql端的表的时候,要指定表为innodb引擎。
create table test.test2(id int,name varchar(10))  engine=innodb;
3.【版本问题】当前for mysql版本的ogg11.2.1.0.1,暂不支持mysql
5.0以下,以及mysql 5.6以上。
4.【配置问题】mysql跟oracle的区别是,mysql是靠各个数据库来划分表,而oracle是靠用户来划分表,所以在配置以mysql为源端的时候,
mysql端 [table test.test2] test指的是数据库的名字,但是如果是oracle做源端的时候,test指的就是用户的名字了,这里有所区分。

二、源端mysql库配置

  1. 创建mysql用户
    *********************************************************************************************
    注:创建mysql用户的目的是要把goldengate安装到mysql用户下,
    否则当ogg读取mysql二进制索引文件 
    [log-bin-index=/var/lib/mysql/binary-log.index] 
    的时候没有相关权限。
    ***********************************************************************************************
    创建mysql用户:
    groupadd -g 1000 mysql
    useradd -u 1000 -g mysql mysql
    passwd mysql 
    密码:mysql

挂载镜像,配置yum源,内容如下:

[myyum]

name=myyum

baseurl=file:///mnt

enabled=1

gpgcheck=1

gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7

  1. 安装mysql数据库(root)
    安装mysql:

[root@localhost lib]# yum install -y mariadb*

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

正在解决依赖关系

--> 正在检查事务

---> 软件包 mariadb.x86_64.1.5.5.60-1.el7_5 将被 安装

---> 软件包 mariadb-bench.x86_64.1.5.5.60-1.el7_5 将被 安装

---> 软件包 mariadb-devel.x86_64.1.5.5.60-1.el7_5 将被 安装

---> 软件包 mariadb-libs.x86_64.1.5.5.60-1.el7_5 将被 安装

---> 软件包 mariadb-server.x86_64.1.5.5.60-1.el7_5 将被 安装

--> 正在处理依赖关系 perl-DBD-MySQL,它被软件包 1:mariadb-server-5.5.60-1.el7_5.x86_64 需要

---> 软件包 mariadb-test.x86_64.1.5.5.60-1.el7_5 将被 安装

--> 正在检查事务

---> 软件包 perl-DBD-MySQL.x86_64.0.4.023-6.el7 将被 安装

--> 解决依赖关系完成

…………………………………………………………………

…………………………………….省略

已安装:

mariadb.x86_64
1:5.5.60-1.el7_5        
mariadb-bench.x86_64 1:5.5.60-1.el7_5

mariadb-devel.x86_64
1:5.5.60-1.el7_5   mariadb-libs.x86_64
1:5.5.60-1.el7_5

mariadb-server.x86_64
1:5.5.60-1.el7_5  mariadb-test.x86_64
1:5.5.60-1.el7_5

作为依赖被安装:

perl-DBD-MySQL.x86_64
0:4.023-6.el7

完毕!

设置root用户登录密码:

[root@localhost lib]# /usr/bin/mysqladmin -u root -h localhost -s
var/lib/mysql/mysql.sock password '123'

拷贝初始参数文件/etc下:

[root@mysql2 ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
配置参数文件,并开启二进制日志,日志模式为row:
[root@mysql2 ~]#vi /etc/my.cnf 
# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin
log-bin-index=/var/lib/mysql/bin-log.index
# binary logging format – mixed recommended
binlog_format=row

启动mysql

查看设置的参数是否生效:

MariaDB [(none)]> show variables like 'log_bin';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin       | ON    |

+---------------+-------+

1 row in set (0.00 sec)

创建即将同步的表:

查看test2表的属性:

3.安装mysql版本的goldengate

用mysql用户安装ogg:
设置环境变量:
vi .bash_profile
export PATH=/home/mysql/ggs
export LD_LIBRARY_PATH=/home/mysql/ggs

变量生效:

Source  . bash_profile

创建安装目录
su - mysql
cd /home/mysql
mkdir ggs

安装ogg:
[root@localhost mysql]# cp /goldengate/ggs_Linux_x64_MySQL_64bit.tar
/home/oracle/ggs

mysql@mysql2
ggs]$ tar -xvf ggs_Linux_x64_MySQL_64bit.tar
[mysql@mysql2 ggs]$ ./ggsci

GGSCI
(mysql2) 1> create subdirs

GGSCI (mysql2) 2>dblogin sourcedb test@localhost:3306, userid
root,password 123
如果报错:
2013-08-14 19:53:41WARNING OGG-00769MySQL Login failed: . SQL error (2002). Can’t connect to local
MySQL server through socket ‘/tmp/mysql.sock’ (2).
ERROR: Failed to connect to MySQL database engine for HOST localhost, DATABASE
test, USER root, PORT 3306.
解决办法:
root and mysql user add follow line into .bash_profile
export MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock
source .bash_profile

GGSCI (ogg) 2> dblogin sourcedb test@localhost:3306,userid root,password 123

Successfully logged into database.

配置mgr:

GGSCI (ogg) 3> edit param mgr

port 7810

dynamicportlist 7800-8000

autorestart extract *,waitminutes 2,resetminutes 5

GGSCI (ogg) 4> start mgr

Manager started.

GGSCI (ogg) 5> info mgr

Manager is running (IP port ogg.7810).

GGSCI (ogg) 6> info all

Program   Status   Group  Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

配置extract进程组:

GGSCI (ogg) 7> edit param ext_1

extract ext_1

setenv (MYSQL_HOME=”/var/lib/mysql”)

tranlogoptions altlogdest /var/lib/mysql/log-bin.index

sourcedb test@localhost:3306,userid root,password 123

exttrail ./dirdat/e2

dynamicresolution

gettruncates

table test.test2;

GGSCI (ogg) 11> add extract ext_1,tranlog,begin now

EXTRACT added.

GGSCI (ogg) 12> add exttrail ./dirdat/e2,extract ext_1

EXTTRAIL added.

配置pump进程组:

GGSCI (ogg) 13> edit params pump_1

extract pump_1

rmthost 192.168.1.13,mgrport 7810

rmttrail /goldengate/dirdat/e2

passthru

gettruncates

table test.test2;

GGSCI (ogg) 14> add extract pump_1,exttrailsource ./dirdat/e2

EXTRACT added.

GGSCI (ogg) 15> add rmttrail  /goldengate/dirdat/e2,extract pump_1

RMTTRAIL added.

异构平台配置defgen:

GGSCI (ogg) 16> edit params defgen

defsfile  ./dirdef/defgen.prm

sourcedb test@localhost:3306, userid root,password 123

table test.test2;

[oracle@ogg ogg_ms]$ ./defgen paramfile dirprm/defgen.prm

***********************************************************************

Oracle GoldenGate Table Definition Generator for MySQL

Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230

Linux, x86, 32bit (optimized), MySQL Enterprise on Apr 23 2012 04:59:19

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

Starting at 2014-09-26 16:01:05

***********************************************************************

Operating System Version:

Linux

Version #1 SMP Wed Sep 1 01:26:34 EDT 2010, Release 2.6.32-71.el6.i686

Node: ogg

Machine: i686

soft limit   hard limit

Address Space Size   :    unlimited    unlimited

Heap Size            :    unlimited    unlimited

File Size            :    unlimited    unlimited

CPU Time             :    unlimited    unlimited

Process id: 2606

***********************************************************************

**            Running with the following parameters                  **

***********************************************************************

defsfile /u01/ogg_ms/dirdef/defgen.prm

sourcedb test@localhost:3306, userid root,password ******

table test.test2;

Retrieving definition for test.test2

Definitions generated for 1 table in /u01/ogg_ms/dirdef/defgen.prm

传送defgen文件到目标端:

[oracle@ogg ogg_ms]$ scp dirdef/defgen.prm oracle@192.168.1.13:/goldengate/dirdef

GGSCI (ogg) 5> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     ABENDED     EXT_1       00:00:00      00:21:03

EXTRACT     RUNNING     PUMP_1      00:00:00      00:00:06

启动extract和pump进程:

GGSCI (ogg) 6> start extract ext_1

Sending START request to MANAGER ...

EXTRACT EXT_1 starting

GGSCI (ogg) 7> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING     EXT_1       00:00:00      00:21:17

EXTRACT     RUNNING     PUMP_1      00:00:00      00:00:09

以下是容易出现的故障,原因是mysql版本不支持row

extract进程启动异常(abended)!

查看日志:

GGSCI (ogg) 36> view ggsevt

2014-09-26 17:24:56  INFO  
 OGG-01053  Oracle GoldenGate Capture for MySQL, ext_1.prm:
 Recovery completed for target file ./dirdat/e20

00026, at RBA 961.

2014-09-26 17:24:56  INFO  
 OGG-01057  Oracle GoldenGate Capture for MySQL, ext_1.prm:
 Recovery completed for all targets.

2014-09-26 17:24:56  INFO  
 OGG-00182  Oracle GoldenGate Capture for MySQL, ext_1.prm:  VAM
API running in single-threaded mode.

2014-09-26 17:24:56  INFO  
 OGG-01515  Oracle GoldenGate Capture for MySQL, ext_1.prm:
 Positioning to begin time Sep 26, 2014 3:52:01

PM.

2014-09-26 17:24:56  ERROR  
OGG-00146  Oracle GoldenGate Capture for MySQL, ext_1.prm:  VAM
function VAMInitialize returned unexpected

result: error 600 - VAM Client Report
<CAUSE OF FAILURE : ERROR NO 13 - Failed to access index file : Check File
PATH/EXISTENCE/PERMISSI

ONS - /var/lib/mysql/mysql-bin.index

WHEN FAILED : While initializing binary log
configuration

WHERE FAILED : MySQLBinLog Reader Module

CONTEXT OF FAILURE : No Information
Available!>.

2014-09-26 17:24:56  ERROR  
OGG-01668  Oracle GoldenGate Capture for MySQL, ext_1.prm:  PROCESS
ABENDING.

四、目标端ogg配置

配置MGR

GGSCI (rh6.cuug.net) 4> edit params mgr

port 7810

dynamicportlist 7800-8000

autorestart extract *,waitminutes 2,resetminutes 5

~

GGSCI (rh6.cuug.net) 5> start mgr

Manager started.

GGSCI (rh6.cuug.net) 6> info mgr

Manager is running (IP port rh6.cuug.net.7810).

配置replicat进程组:

[oracle@rh6 ogg]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle

Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x86, 32bit (optimized), Oracle 11g on Apr 23 2012 08:09:25

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

GGSCI (rh6.cuug.net) 1>

GGSCI (rh6.cuug.net) 1> edit param rep_1

replicat rep_1

sourcedefs ./dirdef/defgen.prm

userid goldengate,password goldengate

reperror default,discard

discardfile ./dirrpt/rep_1.dsc,append,megabytes 50

dynamicresolution

gettruncates

map test.test2, target test.test3;

GGSCI (rh6.cuug.net) 1>add replicat rep_1,exttrail ./dirdat/e2

REPLICAT added.

启动mgr和replicat进程:

GGSCI (rh6.cuug.net) 3> start mgr

Manager started.

GGSCI (rh6.cuug.net) 4> info all

Program     Status    Group   Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    STOPPED     REP_1   00:00:00      00:00:34

GGSCI (rh6.cuug.net) 5> start replicat rep_1

Sending START request to MANAGER ...

REPLICAT REP_1 starting

GGSCI (rh6.cuug.net) 6> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER    RUNNING

REPLICAT    RUNNING     REP_1       00:00:00      00:00:00

 五.进行dml测试
可以分别用不同的用户对源端mysql数据库中 test库下的test2表进行insert、delete、update测试。
查看目标端oracle数据库下的itpux用户下的test3表是否同步成功。

源端insert:

目标端:

源端update:

目标端:

源端truncate(抽取,复制进程添加“gettruncates”参数)

目标端:

测试完毕。

   

异构平台mysql-oracle(ogg)安装部署的更多相关文章

  1. MySQL所有的安装部署方式

    目录 一.前言 二.关于MySQL的安装 三.部署规划 3.1 服务器规划 3.2 数据库目录规划 四.准备工具 五.通用二进制包安装MySQL 5.1 上传MySQL通用二进制安装包到node7的/ ...

  2. MySql下载与安装(部署)

    一:MySQL介绍 1.MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB ...

  3. Oracle RAC安装部署文档

    1.    部署环境步骤 1.1 软件环境 操作系统:CentOS release 6.5(推荐使用5.*的系统)192.168.1.151    racnode1 192.168.1.152    ...

  4. Centos 下oracle 11g 安装部署及手动建库过程

    Oracle 11g 手动建库,在虚拟环境中,不使用DBCA工具进行创建数据库 1.Linux环境的基本配置 2.ip  10.11.30.60 3.Oracle 11g安装过程 ---------- ...

  5. CentOS 下 MySQL 8.0 安装部署,超详细!

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! Mysql8.0安装 (YUM方式) 首先删除系统默认或 ...

  6. mysql linux下安装部署

    一.安装简介 用户名:mysql安装目录:/usr/local/mysql-5.5数据库目录:/data/mysql/data源码包:mysql-5.5.28.tar.gz 二.安装准备 a.vi / ...

  7. MySQL -1- 简介及安装

    第一章 MySQL 大纲介绍 1.官方定义的MySQL DBA工作内容 (1)运维DBA 初级:各版本.各平台安装搭建.升级 中级:体系结构原理.基础管理(启动关闭.初始化配置文件管理.多实例管理.用 ...

  8. linux下mysql多实例安装

    1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的 ...

  9. linux下mysql多实例安装(转)

    转自:http://www.cnblogs.com/xuchenliang/p/6843990.html   1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上 ...

随机推荐

  1. leetcode解题报告(1):Remove Duplicates from Sorted Array

    描述 Given a sorted array, remove the duplicates in place such that each element appear only once and ...

  2. [python]打印异常信息的不同方式

    异常捕获 try: execpt Exception as e: print(str(e)) 打印异常信息的方式 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常 ...

  3. Ubuntu start:未知任务:mysql

    在Ubuntu环境下,下载安装mysql但是到最后启动的时候却显示这一句话: start :未知任务:mysql 很纳闷,明明按照教程一步一步写的.后来才想起来,万能的方法,在前面加权限 sudo s ...

  4. CodeForces 494B Obsessive String ——(字符串DP+KMP)

    这题的题意就很晦涩.题意是:问有多少种方法,把字符串s划分成不重叠的子串(可以不使用完s的所有字符,但是这些子串必须不重叠),使得t串是所有这些新串的子串.譬如第一个样例,"ababa&qu ...

  5. python爬虫-爬坑之路

    背景简介 爬取外国的某两个网站的数据,网站都没有被墙,爬取三种数据. A: 爬取页面并存储到数据库 B: 爬取页面内的表格内数据并存储到数据库 C: 爬取页面,分析页面并将页面的所有数据分类存入数据库 ...

  6. centos7远程服务器中redis的安装与java连接

    1.下载安装redis 在远程服务器中你想下载的位置执行以下命令来下载redis文件到服务器中 $ wget http://download.redis.io/releases/redis-4.0.9 ...

  7. springboot项目报Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is`...解

    参考文章:https://blog.csdn.net/qq_42815754/article/details/83652253 <!-- MySql驱动 --> <dependenc ...

  8. mysql 远程登陆

    1.查询mysql是否启动 netstat  -lnp|grep   3306 ps -df |grep  mysqld 2.通过TCPIP的方式测试连接 mysql -uqingjiao -padm ...

  9. 【matlab】模拟变焦拼接代码备份

    1.初版,边缘未处理. % % In----near % If----far % In=imread('D:\文件及下载相关\桌面\模拟变焦拼接\Matlab_code\nearframe\frame ...

  10. go协程理解

    一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三个概念. 进程.线程 和 协程 之间概念的区别 对于 进程.线程,都是有内核进行调度,有 CPU 时间片 ...