iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >oracle上的数据怎么迁移到到mysql
  • 214
分享到

oracle上的数据怎么迁移到到mysql

2024-04-02 19:04:59 214人浏览 薄情痞子
摘要

这篇文章主要介绍“oracle上的数据怎么迁移到到Mysql”,在日常操作中,相信很多人在oracle上的数据怎么迁移到到mysql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解

这篇文章主要介绍“oracle上的数据怎么迁移到到Mysql”,在日常操作中,相信很多人在oracle上的数据怎么迁移到到mysql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle上的数据怎么迁移到到mysql”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

首先在oracle端和mysql端安装上OGG,安装很简单,然后在oracle源端和目标端配置好mgr(端口需要一致),然后在源端配置上抓取进程,在目标端配置上replicate进程(只运行一次即可),然后在源端使用DEFGEN命令做映射文件,并把文件传到mysql端相应目录下。启动源端的抓取进程即可实现数据库初始化,也就完成了数据迁移。

注意事项和相关报错:

1,oracle到mysql的ogg属于异构的ogg, 需要借助DEFGEN命令生成一个映射文件,也就是两个表的映射关系,并把文件放到目标端相应位置下。否则会报错WARNING OGG-01194  EXTRACT task RINIG1 abended : Could not find definition for INFOSERVICE.T_MEMBER_INFO_SUM

2,在源端配置抓取进程,需要注意的是:初始化数据库过程需要一个的抓取进程,之后保持数据同步也需要一个抓取进程,这两个抓取进程是有区别的,然后目的端也需要两个replicate进程,一个用来初始化数据库,一个用来实时同步数据 。

3,注意oracle字段默认是区分大小写的,但是mysql默认是不区分的。如下:

mysql> select login_id from T_MEMBER_INFO where login_id = 'SHFRONT';

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

| login_id |

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

| shfront  |

| SHFRONT  |

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

2 rows in set (0.81 sec)

需要这样修改,让mysql对大小写敏感。

mysql> alter table T_MEMBER_INFO modify  login_id varchar(100) binary;

mysql> select login_id from T_MEMBER_INFO where login_id = 'SHFRONT';

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

| login_id |

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

| SHFRONT  |

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

1 row in set (0.78 sec)

如果mysql的主键是login_id,那么可能会遇到下面这个报错,主键冲突,真正的原因是:mysql字段值默认是不区分大小写

报错:WARNING OGG-01004  Aborted grouped transaction on 'liuwenhe.T_MEMBER_INFO_SUM', Database error 1062 ([SQL error 1062]Duplicate entry 'shandonGChaoyue' for key 'PRIMARY'

从oracle转到MySQL的OGG,在使用mysql过程中,会遇到很多不同于oracle的问题,初始化数据的时候总是报主键冲突,但是这些数据都是从同样表结构的oracle数据库中导出来的,当然主键也是一样的。

查看了一下数据文件,发现存在很多数据只是大小写不一样,如’Goolen,‘GOOLEN’,‘Goolen’这样的数据,

其实MySQL中,字段值默认是不区分大小写的,也就是说插入值‘abc’和'ABC‘是等价的,

下面展示具体的配置:

源端oracle 抓取进程配置:

[oracle@master2 ggs]$ cd   /u01/OGG_linux/ggs 

[oracle@master2 ggs]$ ./ggsci

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.

1,GGSCI (master2) 1>  create  subdirs  

Creating subdirectories under current directory /u01/OGG_linux/ggs

Parameter files                /u01/OGG_linux/ggs/dirprm: already exists

Report files                   /u01/OGG_linux/ggs/dirrpt: created

Checkpoint files               /u01/OGG_linux/ggs/dirchk: created

Process status files           /u01/OGG_linux/ggs/dirpcs: created

SQL script files               /u01/OGG_linux/ggs/dirsql: created

Database definitions files     /u01/OGG_linux/ggs/dirdef: created

Extract data files             /u01/OGG_linux/ggs/dirdat: created

Temporary files                /u01/OGG_linux/ggs/dirtmp: created

Stdout files                   /u01/OGG_linux/ggs/dirout: created,

2,登录数据库 

GGSCI (master2) 3> dblogin userid ogg,passWord ogg

Successfully logged into database.

3,添加需要同步的用户到ogg

开启scott用户下所有表的附加日志

GGSCI (WEBServer) 3> add trandata infoservice.*

2013-03-08 11:02:33  WARNING OGG-00869  No unique key is defined for table 'BONUS'.

All viable columns will be used to represent the key, but may not guarantee

uniqueness.  KEYCOLS may be used to

define the key.

Logging of supplemental redo data enabled

for table SCOTT.BONUS.

Logging of supplemental redo data enabled

for table SCOTT.DEPT.

Logging of supplemental redo data enabled

for table SCOTT.EMP.

2013-03-08 11:02:34  WARNING OGG-00869  No unique key is defined for table

'SALGRADE'. All viable columns will be used to represent the key, but may not

guarantee uniqueness.  KEYCOLS may be

used to define the key.

Logging of supplemental redo data enabled

for table SCOTT.SALGRADE.

4,GGSCI (WebServer) 4> info trandata scott.*

Logging of supplemental redo log data is

enabled for table SCOTT.BONUS.

Columns supplementally logged for table

SCOTT.BONUS: ENAME, JOB, SAL, COMM.

Logging of supplemental redo log data is

enabled for table SCOTT.DEPT.

Columns supplementally logged for table

SCOTT.DEPT: DEPTNO.

Logging of supplemental redo log data is

enabled for table SCOTT.EMP.

Columns supplementally logged for table

SCOTT.EMP: EMPNO.

Logging of supplemental redo log data is

enabled for table SCOTT.SALGRADE.

Columns supplementally logged for table

SCOTT.SALGRADE: GRADE, LOSAL, HISAL.

3,GGSCI (master2) 3>edit params mgr

PORT 7839

4,GGSCI (master2) 3> start  mgr

5,GGSCI (master2) 3>info  mgr

Manager is running (IP port

WebServer.7839).

1.抓取进程

GGSCI (oracle3) 10>add extract  ext_1,sourceistable     ####sourceistable代表直接从表中读取数据

GGSCI (oracle3) 10> view params ext_1

extract ext_1

setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

userid goldengate@cbl , password ogg123456

rmthost 192.168.0.12,mgrport 7839

rmttask replicat,group rinig1

table INFOSERVICE.T_MEMBER_INFO;

2.DEFGEN命令生成的映射文件。

1)创建DEFGEN工具的参数文件;

GGSCI (oracle3) 3> view params defgen

defsfile ./dirdef/source.def, purge

userid ogg@rman_cbl1 , password ogg

TABLE INFOSERVICE.T_PUBLISH_INFO;

TABLE INFOSERVICE.T_PUBLISH_ZBXX;

TABLE INFOSERVICE.T_MEMBER_INFO;

TABLE INFOSERVICE.T_MEMBER_INFO_FUBIAO1;

TABLE INFOSERVICE.T_MEMBER_INFO_SUM;

TABLE INFOSERVICE.T_MEMBER_MY;

TABLE INFOSERVICE.T_MEMBER_MY_INFO;

TABLE INFOSERVICE.T_PUBLISH_INFO_SUM_TONGJI;

TABLE INFOSERVICE.USER_REGIST_LS_FaiL;

TABLE INFOSERVICE.USER_REGIST_LS;

2))运行DEFGEN工具生成数据定义文件

进入GGSCI安装目录下,命令行执行:

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

3)把生成的文件 scp到目标端相应文件下:

[oracle@oracle3 ogg]scp /home/oracle/ogg/dirdef/source.def  root@192.168.0.12:/files/ogg/dirdef/source.def

目标端:replicate 配置:

GGSCI (db2) 1> add replicat rinig1,specialrun //specialrun代表只运行一次

注意下面的target liuwenhe.T_MEMBER_INFO

GGSCI (server02) 12> view params  rinig1

replicat rinig1

sourcecharset ZHS16GBK

setenv (NLS_LANG=AMERICAN_AMERICA.zhs16gbk)

sourcedefs ./dirdef/source.def

sourcedb infoservice,userid ogg,password ogg

discardfile ./dirrpt/rinig1.dsc,purge

map infoservice.T_MEMBER_INFO, target liuwenhe.T_MEMBER_INFO  REPERROR (1403, discard);

最后打开源端的抓取进程即可

GGSCI (oracle3) 3>start ext_1

GGSCI (oracle3) 3> view report ext_1      ###查看输出结果

最后可以看日志:

ogg错误日志

[root@server02 dirdef]# find  / -name ggserr.log

[root@server02 dirdef]#tail -f /files/ogg/ggserr.log

总结

oracle到mysql的ogg需要借助defgen命令生成的映射文件,并把文件传到目标端相应位置下,才能完成数据库初始化,用于初始化的replicate进程,只会运行一次。注意字符集问题,就是源端的抓取进程配置的字符集和目标端replicate配置的字符集必须是一样的,否则可能会导致只导进去一部分数据。

到此,关于“oracle上的数据怎么迁移到到mysql”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: oracle上的数据怎么迁移到到mysql

本文链接: https://www.lsjlt.com/news/59047.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle上的数据怎么迁移到到mysql
    这篇文章主要介绍“oracle上的数据怎么迁移到到mysql”,在日常操作中,相信很多人在oracle上的数据怎么迁移到到mysql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • GoldenGate从oracle迁移数据到mysql
      1       软件简介 安装时应该选择最为稳定的安装版本,现在官方发布的版本主要为: Oracle G...
    99+
    2022-10-18
  • Oracle怎么迁移数据到Greenplum
    这篇文章主要介绍“Oracle怎么迁移数据到Greenplum”,在日常操作中,相信很多人在Oracle怎么迁移数据到Greenplum问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle怎么迁移数据到...
    99+
    2023-06-03
  • 数据库迁移系列之--Oracle迁移到Mysql
    敬请期待......
    99+
    2017-12-07
    数据库迁移系列之--Oracle迁移到Mysql
  • 怎么从MySQL迁移到Oracle
    这篇文章主要讲解了“怎么从MySQL迁移到Oracle”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么从MySQL迁移到Oracle”吧! 1. 自动增...
    99+
    2022-10-19
  • 从oracle数据库迁移到mysql数据库
    如果使用应用容器注意mysql.jar包版本冲突。(例如weblogic容器自带mysql,但是版本比较低,建议使用自己应用下的mysql.jar包)to_date ---->> date_fo...
    99+
    2022-10-18
  • 怎样从Oracle到GaussDB的数据迁移
    今天就跟大家聊聊有关怎样从Oracle到GaussDB的数据迁移,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 一、背景最近某省运营商O域...
    99+
    2022-10-19
  • oracle数据库迁移到MySQL的示例分析
    这篇文章给大家分享的是有关oracle数据库迁移到MySQL的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方式一: 手动方式导入导出手动的方式导入, 就是操作步骤会比较...
    99+
    2022-10-18
  • Django数据怎么从sqlite迁移数据到MySQL
    Django数据怎么从sqlite迁移数据到MySQL,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。昨天快速搭建了一套自己的知识库。感觉一下子有了很多的事情要做...
    99+
    2023-06-04
  • sqlite怎么迁移到mysql
    本篇内容介绍了“sqlite怎么迁移到mysql”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.SQLi...
    99+
    2022-10-18
  • mysql数据库迁移到另一个硬盘上
    archliun系统mysql数据库1、对新硬盘分区与格式化   1)# fdisk /dev/sdb   2) # mkfs.ext4 /dev/sdb1...
    99+
    2022-10-18
  • Linux MySQL数据库迁移到数据盘
    原数据库文件夹:/usr/local/mysql/data/mysql 1、给目标数据库文件夹授权: chown -R mysql:mysql /data1/mysqldata 停止mysql服务: service mysqld ...
    99+
    2016-08-12
    Linux MySQL数据库迁移到数据盘
  • 利用sqlldr迁移数据- KDB到Oracle
    ./ kdb_to_oracle.sh user_name user_password eg: ./get_ddl.sh nda_202 N...
    99+
    2022-10-18
  • 怎么从AIX将数据库迁移到Linux Oracle中
    本篇内容主要讲解“怎么从AIX将数据库迁移到Linux Oracle中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么从AIX将数据库迁移到Linux Ora...
    99+
    2022-10-19
  • MYSQL数据迁移到ORACLE中碰到的乱码问题的解决方法
    本篇内容主要讲解“MYSQL数据迁移到ORACLE中碰到的乱码问题的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL数据迁移到ORACLE中碰到...
    99+
    2022-10-18
  • MySQL迁移数据到MongoDB并同步
    因公司业务要求使用mongodb,故做了测试如下:第三方数据复制引擎--Tungsten-Replicator 主要特点:1 支持高版本MySQL向低版本复制,5.1-->5.0&...
    99+
    2022-10-18
  • 使用Navicat Premium工具将oracle数据库迁移到MySQL
    1、安装数据库图形界面工具Navicat Premium,以及本地Oracle客户端; 2、打开Navicat Premium界面,新建oracle连接,输入Or...
    99+
    2022-11-12
  • 如何将数据从 Oracle 迁移到 MySQL:分步指南
    数据迁移在各种业务场景中发挥着至关重要的作用。当您的公司将其服务从本地迁移到云端时,数据迁移就会介入,将数据从旧位置传输到新位置。另一种常见的做法可能是更换或升级服务器或存储设备。在这种情况下,数据迁移可确保数据的顺利高效传输,最大限度地减...
    99+
    2023-08-31
    oracle mysql 数据库
  • Oracle数据库怎么从Linux x86单机迁移到Solaries
    这篇文章主要介绍“Oracle数据库怎么从Linux x86单机迁移到Solaries”,在日常操作中,相信很多人在Oracle数据库怎么从Linux x86单机迁移到Solaries问题上存在疑惑,小编查...
    99+
    2022-10-18
  • 数据库迁移之mysql到达梦数据库
    1 背景介绍 由于业务需求要求数据库国产化,因此将数据从mysql数据库中迁移到国产达梦数据库中。将mysql中的每个库迁移到达梦不同模式下,下面为详细过程。 2 具体步骤 (1)安装达梦客户端工具 (2)点击选择DM管理工具 (3)创建...
    99+
    2023-08-20
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作