Oracle迁移到MySQL

news2025/2/8 8:51:59

Oracle迁移到MySQL业务需要全面改造适配,数据库对象和业务SQL语法需要一对一映射分析如何改写,根据业务使用实际情况评估改造适配成本较高。
目前,已有数据库产品能力缺少自动化迁移工具,需要依赖生态产品能力,比如云和恩墨数据迁移能力。

  • 数据转换工具【自动将源端Oracle对象转换为MySQL数据类型,完成映射关系】
  • 数据迁移工具【存量数据和增量数据迁移】
  • 数据校验工具【校验数据一致性,包括行数,主键、具体数据内容校验等】

适配项和流程

1、业务分析与兼容性评估

前期需要评估的内容主要包括数据类型、各种数据库对象、SQL语法、账号权限、第三方依赖以及生态工具兼容性。

  • 数据类型兼容性:

Oracle和MySQL之间的数据类型差异,确保数据类型能够准确映射。如:
NUMBER(p, s) (Oracle)->DECIMAL(p, s) (MySQL)
VARCHAR2(n) (Oracle)->VARCHAR(n) (MySQL)
CLOB (Oracle)->TEXT (MySQL)
DATE (Oracle)->DATETIME (MySQL)
BLOB (Oracle)->BLOB (MySQL)
BOOLEAN (Oracle)->TINYINT(1) (MySQL)
注:除了数据类型本身,还需要考虑数据的精度、长度、默认值和约束等方面的差异

  • SQL语法差异:

评估业务应用SQL语法差异,特别是复杂查询(多表关联查询)、存储过程、触发器等。

  • 存储过程和函数:

迁移Oracle的PL/SQL存储过程和函数到MySQL的存储过程和函数,需要修改或者重写。

  • 触发器:

评估并迁移触发器的实现方式,确保在MySQL中能够实现相同的业务逻辑。

  • 视图:

检查视图定义的兼容性,确保视图在MySQL中能够正确创建和使用。

  • 索引和约束:

迁移验证索引、主键、外键、唯一约束等,确保数据完整性和性能。

  • 性能优化:

查询性能优化,评估索引设计或优化查询以适应MySQL的性能。

  • 权限和安全:

用户权限管理和安全机制差异,MySQL中需要重新设置相应的权限。

  • 事务管理:

检查事务管理和隔离级别的差异,确保在MySQL中能够正确处理事务。

2、应用程序语法改造,工具和三方依赖替换

根据第一部分业务使用Oracle的情况评估改造的内容项,确保每一项内容可以准确通过MySQL方案实现承接映射;另外,评估业务中使用到的工具和第三方依赖是否支持MySQL语法,如果不满足需要替换。修改应用程序代码中的数据库连接、查询和其他数据库相关操作,以适应MySQL语法。

3、数据迁移、数据校验

实现数据类型、数据结构转换后,即可进行数据的迁移,数据迁移步骤分为存量和增量两个阶段。
存量数据即可验证对象兼容性、数据格式兼容性等基本内容。增量数据迁移基本是在验证切换上线流程中得到验证。存量和增量数据一致性校验逻辑需要验证。

4、兼容性/性能测试验证

业务应用适配改造后,通过读写目标端数据对象内容进行全面的测试,包括兼容性测试、功能测试(业务校验逻辑)、性能测试(结合参数调优、优化索引等)和回归测试,确保迁移后的系统能够正常运行。

5、上线切换过程和回滚方案

完成以上功能、性能以及业务逻辑验证后,准备迁移切换上线方案。如果迁移过程顺利,可以实现一次性完成迁移并切量,如果过程中遇到数据不一致问题,需要用回滚回切方案。

6、生产运营运维、文档与培训

  • 备份和恢复

备份和恢复策略配置管理,MySQL能够实现可靠的备份和恢复机制。

  • 高可用

自动容灾切换管理和自愈能力

  • 监控告警

日常巡检、监控告警处理

  • 文档和培训

数据库开发指南和运维文档,并对运维和开发人员进行培训,确保迁移后平稳高效运行。

迁移工具的选择

1、商业工具

Oracle SQL Developer

功能:Oracle官方提供的免费工具,支持将Oracle数据库迁移到MySQL。
特点:易于使用,提供图形化界面,适用于小型和中型数据库迁移。

MySQL Workbench

功能:MySQL官方提供的工具,支持数据库设计和迁移。
特点:提供迁移向导,可以从Oracle迁移到MySQL,适用于中小型项目

AWS Database Migration Service (DMS)

功能:亚马逊云服务提供的数据库迁移服务,支持多种数据库之间的迁移,包括Oracle到MySQL。
特点:支持实时数据迁移和数据同步,适用于大型数据库和云迁移项目。

云和恩墨MKT(Migration Kit Tool)

云和恩墨的MKT(Migration Kit Tool)是一款专门设计用于数据库迁移的工具,旨在帮助企业实现高效、可靠的数据库迁移。
1、多数据库支持
2、自动化迁移
3、数据校验和一致性检查
4、零停机迁移
5、性能优化
6、可视化界面

2、开源工具

Ora2Pg【GPL3协议】

功能:开源的Oracle到PostgreSQL迁移工具,但也支持迁移到MySQL。
特点:支持数据、表结构、索引、视图、触发器等的迁移,适用于技术熟练的用户。

Apache Sqoop

功能:开源工具,用于在Hadoop和关系数据库之间传输数据。
特点:支持从Oracle导出数据到MySQL,适用于大数据环境中的数据迁移。

Oracle是商业数据库,事务日志格式对外是黑盒,增量数据迁移依赖事务日志解析过程,实现难度较大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2294703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】在Vue3中使用Echarts的示例 两种方法

文章目录 方法一template渲染部分js部分方法一实现效果 方法二template部分js or ts部分方法二实现效果 贴个地址~ Apache ECharts官网地址 Apache ECharts示例地址 官网有的时候示例显示不出来,属于正常现象,多进几次就行 开始使用前,记得先…

每日Attention学习18——Grouped Attention Gate

模块出处 [ICLR 25 Submission] [link] UltraLightUNet: Rethinking U-shaped Network with Multi-kernel Lightweight Convolutions for Medical Image Segmentation 模块名称 Grouped Attention Gate (GAG) 模块作用 轻量特征融合 模块结构 模块特点 特征融合前使用Group…

124,【8】buuctf web [极客大挑战 2019] Http

进入靶场 查看源码 点击 与url有关,抓包 over

源路由 | 源路由网桥 / 生成树网桥

注:本文为 “源路由” 相关文章合辑。 未整理去重。 什么是源路由(source routing)? yzx99 于 2021-02-23 09:45:51 发布 考虑到一个网络节点 A 从路由器 R1 出发,可以经过两台路由器 R2、R3,到达相同的…

FPGA的IP核接口引脚含义-快解

疑问 手册繁琐,怎样快速了解IP核各输入输出接口引脚的含义。 答疑 不慌不慌,手册确实比较详细但繁琐,如何快速知晓该部分信息,涛tao道长给你们说,简单得很,一般新入门的道友有所不知,往往后面…

Qwen2-VL-2B-Instruct 模型 RK3576 板端部署过程

需要先在电脑上运行 RKLLM-Toolkit 工具,将训练好的模型转换为 RKLLM 格式的模型,然后使用 RKLLM C API 在开发板上进行推理。 在安装前先查看板端的内存容量,和自己模型占用大小比较一下,别安装编译好了不能用。 这里我就是先尝试…

如何设计光耦电路

光耦长这样,相信小伙伴们都见过,下图是最为常用的型号PC817 怎么用?我们先看图,如下图1: Vin为输入信号,一般接MCU的GPIO口,由于这里的VCC1为3.3V,故MCU这边的供电电源不能超过3.3V…

ADC模数转换器概念函数及应用

ADC模数转换器概念函数及应用 文章目录 ADC模数转换器概念函数及应用1.ADC简介2.逐次逼近型ADC2.1逐次逼近型ADC2.2stm32逐次逼近型2.3ADC基本结构2.4十六个通道 3.规则组的4种转换模式3.1单次转换,非扫描模式3.2连续转换,非扫描模式3.3单次转换&#xf…

DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*

一、什么是 DFX ?为什么重要? DFX(Design for eXcellence,卓越设计)是一种面向产品全生命周期的设计理念,旨在确保产品在设计阶段就具备**良好的制造性(DFM)、可测试性(…

【LeetCode】152、乘积最大子数组

【LeetCode】152、乘积最大子数组 文章目录 一、dp1.1 dp1.2 简化代码 二、多语言解法 一、dp 1.1 dp 从前向后遍历, 当遍历到 nums[i] 时, 有如下三种情况 能得到最大值: 只使用 nums[i], 例如 [0.1, 0.3, 0.2, 100] 则 [100] 是最大值使用 max(nums[0…i-1]) * nums[i], 例…

《云夹:让书签管理变得轻松又高效》

在当今数字化的生活与工作场景中,我们畅游于网络的浩瀚海洋,每天都会邂逅各式各样有价值的网页内容。而如何妥善管理这些如繁星般的书签,使其能在我们需要时迅速被找到,已然成为众多网络使用者关注的焦点。云夹,作为一…

Microsoft Fabric - 尝试一下在pipeline中发送请求给web api(获取数据和更新数据)

1.简单介绍 Microsoft Fabric中的Pipeline支持很多种activity,分成数据转换和控制流两种类型的activitly。 这边将尝试一下发送web请求的activity,要做成的pipeline大概如下图所示, 上图中有4个Activity,作用如下 Web - 从一个…

数据完整性与约束的分类

一、引言 为什么需要约束?为了保证数据的完整性。 (1)数据完整性 数据完整性指的是数据的精确性和可靠性。 为了保证数据的完整性,SQL对表数据进行额外的条件限制,从以下四方面考虑: ①实体完整性&…

docker安装nacos2.x

本文为单机模式,非集群教程,埋坑 nacos2.x官方强制条件 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。 64 bit JDK 1.8 Maven 3.2.x 环境介绍 centos 7 maven 3.9.9 jdk 17 nacos 2.3.1 1. 拉取docker镜像 d…

GB/T28181 开源日记[8]:国标开发速知速会

服务端源代码 github.com/gowvp/gb28181 前端源代码 github.com/gowvp/gb28181_web 介绍 go wvp 是 Go 语言实现的开源 GB28181 解决方案,基于GB28181-2022标准实现的网络视频平台,支持 rtmp/rtsp,客户端支持网页版本和安卓 App。支持rts…

6 maven工具的使用、maven项目中使用日志

文章目录 前言一、maven:一款管理和构建java项目的工具1 基本概念2 maven的安装与配置(1)maven的安装(2)IDEA集成Maven配置当前项目工程设置 maven全局设置 (3)创建一个maven项目 3 pom.xml文件…

GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读

一、43698-2024标准图解 https://mmbiz.qpic.cn/sz_mmbiz_png/rwcfRwCticvgeBPR8TWIPywUP8nGp4IMFwwrxAHMZ9Enfp3wibNxnfichT5zs7rh2FxTZWMxz0je9TZSqQ0lNZ7lQ/640?wx_fmtpng&fromappmsg 标准在线预览: 国家标准|GB/T 43698-2024 相关标准: &a…

CF 278A.Circle Line

题目分析 输入n个数据作为路径,求从a到b的最短距离,需要将其相成一个圆圈,既可以从小往大走又可以从大往小走 思路分析 依然将数据存为数组,通过下标进行操作,既然说了有两种方式那就计算两种方式哪个更快就输出谁 代…

本地部署deepseek简单教程

部署deepseek,首先需要知道deepseek官网地址:DeepSeek 第一步:Ollama 去ollama下载对应的版本,我的电脑是window 在这里可以看到关于deepseek相关 第二步,下载完ollama无脑下一步就可以 这样属于安装成功 第三步&…

UnityShader学习笔记——多种光源

——内容源自唐老狮的shader课程 目录 1.光源类型 2.判断光源类型 2.1.在哪判断 2.2.如何判断 3.光照衰减 3.1.基本概念 3.2.unity中的光照衰减 3.3.光源空间变换矩阵 4.点光源衰减计算 5.聚光灯衰减计算 5.1.聚光灯的cookie(灯光遮罩) 5.2.聚…