如何将数据从Oracle加载到MariaDB?| 2个简单的步骤
甲骨文是由甲骨文公司创建的一个商业软件品牌。甲骨文通常使用RDBMS,并实现快速和安全的数据存储和检索。它被用来支持在线交易处理和数据仓库应用。甲骨文与所有主要的操作系统兼容,包括MacOS、Unix、Windows和Linux。甲骨文有一个网络堆栈,允许来自不同平台的应用程序与甲骨文无缝连接。
MariaDB是一个开源的关系型数据库管理系统(RDBMS),可用于替代流行的MySQL数据库技术。它是由MariaDB基金会创建的,并在2009年10月29日投入使用。MariaDB拥有比MySQL多得多的新功能,使其在性能和可用性方面更胜一筹。
本文将指导你通过两种方法顺利地将Oracle连接到MariaDB。在深入探讨Oracle向MariaDB迁移所需的程序之前,它还提供了一个关于Oracle和MariaDB的快速概述。通过阅读,你可以了解到执行Oracle到MariaDB迁移的逐步过程。
目录
- 什么是Oracle?
- 什么是MariaDB?
- 为什么要将数据从Oracle迁移到MariaDB?
- 如何将数据从Oracle迁移到MariaDB?
- 从Oracle迁移数据到MariaDB的最佳实践是什么?
- 总结
什么是Oracle?
Oracle提供了一个多模型的数据库管理系统,通常用于数据仓库、在线交易处理和混合数据库工作负载。Oracle数据库可以在各种领先的平台上使用,包括Linux、UNIX、Windows和macOS。甲骨文是第一个为企业网格计算开发的数据库,是管理信息和应用程序的最具成本效益和多功能的方法。
企业网格计算开发了大型的行业标准服务器池和灵活的存储。这种设计能够从一个组件的集合中快速配置一个新的系统。峰值工作负载是没有必要的,因为可以根据需要随时从资源池中转移或增加容量。配置和虚拟化使它与其他形式的计算相区别。
网格计算试图通过开发更持久、更具成本效益的操作系统来克服企业IT中的一些普遍挑战。甲骨文公司提供的网格计算能力专注于为用户提供集中管理、强大的安全架构、通用访问和强大的开发工具。这种设计使甲骨文公司能够以较低的成本提供一个完整的数据库,同时保持更多的灵活性和服务质量。
甲骨文的主要特点
以下是促成Oracle巨大成功的一些关键方面。
- 跨平台的集成。甲 骨文与所有的操作系统(OS)配合并支持,包括Windows、macOS和Linux。
- 符合ACID标准。 Oracle DB提供ACID(原子性、一致性、隔离性和持久性)合规性,以在整个交易处理过程中保持数据库的完整性。
- 直接的通信。不同平台上的程序之间的通信是直接的。Oracle的本地网络堆栈使您能够将您的数据库连接到在多个平台上运行的应用程序。例如,您可以使用您的Oracle数据库(在Windows上运行)轻松地与一个基于Unix的程序进行连接和通信。
- 数据备份和恢复。甲骨文的备份和恢复能力使其能够从任何事故或技术故障中恢复数据。甲骨文的RAC架构确保所有的数据和进程都得到了备份。
- **分析解决方案。**Oracle高级分析和OLAP(Oracle分析处理)可用于对企业数据进行快速分析计算。
使用Hevo的无代码数据管道在几分钟内从Oracle复制数据
Hevo数据,一个完全管理的数据管道平台,可以帮助你在几次点击中自动化,简化和丰富你的数据复制过程。通过Hevo的各种连接器和快速的 数据管道,你可以从100多个数据源,如Oracle或MariaDB直接提取和加载数据到你的数据仓库或任何数据库。
为了进一步简化和准备你的数据分析,你可以使用Hevo强大的内置转换层来处理和丰富原始颗粒数据,而不需要写一行代码。
Hevo是最快,最简单,最可靠的数据复制平台,将为你的工程带宽和时间节省数倍。今天就来试试我们的14天免费试用版,体验一下自动无忧的数据复制吧!
什么是MariaDB?
MariaDB是MySQL的一个克隆,是由MySQL的原始创造者创建的一个流行的Open-SQL RDBMS。它们之间的基本相似之处在于MariaDB是MySQL的一个软件分支。然而,它们是不一样的。自2009年以来,MariaDB有了很大的进步,当时众多MySQL作者从同一源头制作了一个不同的版本。
当甲骨文公司购买了MySQL后,开发者们对他们产品的未来感到担忧。他们担心甲骨文可能会终止MySQL,以消除一个重要的竞争对手。他们还试图确保他们的工作是公开的。MariaDB最初就是以这种方式出现的。
目前,它是世界上使用最广泛的十大关系型数据库中的一个独立产品(占据第9位)。它是完全由GPL授权的,并免费提供给公众。著名的MariaDB用户有谷歌、维基百科、Tumblr、亚马逊网络服务、Ubuntu、RedHat等。
除了Windows版本外,MariaDB还提供Linux和macOS版本。这个RDBMS与英特尔和IBM Power8硬件兼容。它在AWS、Rackspace Cloud和Microsoft Azure上提供。该程序易于学习,安全,方便利用。这也难怪它越来越受欢迎。
MariaDB的关键特征
以下是MariaDB的一些关键特征
- **SQL支持。**MariaDB支持大多数SQL语句、函数、程序、定义、变量等。客户端应用程序是可用的,如mysqladmin和mysqldump(这些流行的命令行解决方案是MariaDB自带的)。还有其他有价值的插件可用,如审计插件。所有这些功能都大大简化了MariaDB的数据库操作。
- 执行的并行查询。该功能在MariaDB 10.0及以上版本中可用,允许多个查询同时进行。来自主数据库的一些查询在其他数据库中基本上是镜像的。在实践中,它极大地加快了任务的完成。这使得分析性查询的OLAP功能可以更快、更顺利地执行。
- 线程池。线程池是一个概念,它加速了MariaDB与数据库的多个连接的工作。MariaDB使用先前打开的线程池,而不是为每个连接启动一个新的线程。一个新的连接使用一个线程来提交查询。所有的搜索都变得更快,这导致了更快的结果。
- **数据库视图。**另一个提高性能的工具是数据库视图。查询视图时的根本区别在于虚拟表的使用。MariaDB的程序将只关注那个特定的、唯一的表。无论查询是否针对它们,MySQL都会影响与该视图相关的所有表。数据库视图的优化查询提高了性能并降低了负载。
为什么要将数据从Oracle迁移到MariaDB?
你应该将你的数据从Oracle迁移到MariaDB,因为它比Oracle有更多的优势。这些优势包括。
- 高可用性。为了保证在数据库、服务器或数据中心发生故障时的高可用性,MariaDB在单个数据中心或多个数据中心内提供了带有自动故障转移和多主机集群的复制功能。灾难恢复也是通过延迟复制、时间点回滚和备份/恢复来实现的。
- 更好的性能。为了提高查询效率,MariaDB提供了本地和分布式分区(即分片);表、行或列压缩以减少磁盘I/O;以及查询结果缓存以减少数据库负载。此外,MariaDB还提供了一个专为空间和写入而设计的存储引擎,以提高写入速度,并在写入密集型应用中尽量减少磁盘I/O。
- **先进的安全性。**MariaDB提供移动中的数据加密(如连接和复制)以及静态数据加密,通过角色进行数据保护,动态数据屏蔽(全部或部分),以及针对拒绝服务攻击的数据库安全。它也有一个数据库防火墙,可以根据语法、角色、频率和时间来阻止查询。
- 高性能分析。MariaDB可以通过变化数据捕获(CDC)流复制数据,以促进对近乎实时的数据进行可扩展的高性能分析。MariaDB企业服务器通过利用分布式、列式存储和大规模并行处理,支持对数十亿行进行特别的、按需的分析,而不需要索引。
如何将数据从Oracle迁移到MariaDB?
在本节中,你将学习如何使用下面提到的两种方法执行Oracle到MariaDB的迁移。
- 方法1:使用MariaDB MaxScale和MariaDB Enterprise Server将数据从Oracle迁移到MariaDB。
- 方法2:使用ESF数据库工具箱将数据从Oracle迁移到MariaDB
方法1:使用MariaDB MaxScale和MariaDB Enterprise Server将数据从Oracle迁移到MariaDB
步骤1:分析MariaDB中当前的SQL模式
- 仔细检查SQL MODE是否被启用是很关键的,因为变量是波动的,并且可以被第三方应用程序改变。
- 从一个Linux终端,检查当前的SQL模式。
sudo mariadb -e "show global variables like 'sql_mode';"
- 你可以尝试使用默认的SQL_MODE,用Oracle语法创建一个表。
MariaDB [oracle_migration]> CREATE TABLE "customers" (
"CUST_ID" NUMBER(8,0),
"FIRST_NAME" VARCHAR2(50 BYTE),
"LAST_NAME" VARCHAR2(50 BYTE),
"ADDRESS1" VARCHAR2(128 BYTE)
);
- 这将产生一个错误,因为MariaDB客户端默认不识别这种语法。
步骤2:将SQLMode配置为Oracle兼容模式
- 将会话的SQL MODE改为Oracle兼容模式。
SET SESSION sql_mode='ORACLE';
- 尝试再次创建同一个表。
MariaDB [oracle_migration]> CREATE TABLE "customers" (
"CUST_ID" NUMBER(8,0),
"FIRST_NAME" VARCHAR2(50 BYTE),
"LAST_NAME" VARCHAR2(50 BYTE),
"ADDRESS1" VARCHAR2(128 BYTE)
);
- 这将以显示BYTE错误而告终。
第3步:启动MariaDB MaxScale GUI
你可以在MaxScale上设置一个规则,在将实时查询发送到MariaDB服务器之前对其进行修改。当需要改变特定的活动查询而不影响应用程序时,这个功能就很方便了。
这些功能也可用于纠正应用程序中的错误,而不需要任何部署或影响生产。
-
一旦配置好了,MaxScale GUI的默认访问端口为8989。你可以通过进入https://127.0.0.1:8989,进入这个界面。
-
连接后,导航到MaxScale GUI监控页面,选择所需的服务。
-
MaxScale的设置由多个组件组成。所有这些模块都在 "服务 "中连接在一起。前面的图片显示,服务连接了许多服务器、一个监控系统、一个监听端口、一个路由规则,也许还有几个过滤器。
-
在这种情况下,只有一个服务--"读写服务"--被定义。你可以通过点击这个服务的名称来访问它的定义。
第4步:为迁移创建一个新的Regex规则
你可以在MariaDB MaxScale上使用一个Regex过滤器来重写实时查询。
-
首先,返回到MaxScale概览面板,点击 +创建新的过滤器来配置一个新的过滤器。
-
选择创建一个新的过滤器的选项。
-
选择 "regexfilter",并提供一个与过滤器目的对应的名称。
-
在参数中,在匹配参数中输入要替换的值。BYTE(记住要用反斜杠添加转义的特殊字符,如图所示。)
-
在替换框中填入适当的值。在这种情况下,它是小括号,没有转义的特殊字符。
-
完成后,验证这个新规则。
第5步:将你的Migration Regex与MariaDB服务连接起来
-
返回到服务定义页面,在新的过滤器创建完成后,点击过滤器部分的**+添加过滤器** 按钮。
-
在添加过滤器框中启用新创建的过滤器,将其与当前服务和监听器相关联。
-
之后,你可以再次测试你的CREATE TABLE命令。
第6步:在MaxScale中测试创建的MariaDB规则
- 使用MariaDB命令行访问MaxScale服务。
$ mariadb -hmaxscale1.example.com -P4006 -utest -p
- 我们可以在通过MaxScale界面正确链接后测试新建立的重写规则。
- 检查之前创建的数据库。
MariaDB [(none)]> use oracle_migration
- 在考虑的会话中启用Oracle模式。
MariaDB [(none)]> SET SESSION sql_mode='ORACLE';
- 用同样的语法再次创建表,你会发现,由于应用程序没有被修改,表的创建没有任何错误。
MariaDB [oracle_migration]> CREATE TABLE "customers" (
"CUST_ID" NUMBER(8,0),
"FIRST_NAME" VARCHAR2(50 BYTE),
"LAST_NAME" VARCHAR2(50 BYTE),
"ADDRESS1" VARCHAR2(128 BYTE)
);
通过所有这些步骤,你可以将数据从Oracle迁移到MariaDB。
是什么让Hevo的ETL流程成为同类中最好的?
如果你有大量的数据,提供一个高质量的ETL解决方案可能是一个挑战。Hevo的 自动化,无代码平台 为你提供了无缝数据复制体验所需的一切。
看看什么使Hevo如此独特。
- **完全管理。**因为Hevo是一个完全自动化的平台,它不需要管理或维护。
- 数据转换。Hevo提供了一个直接的界面来完善,修改和充实你想传达的数据。
- **更快的洞察力生成。**Hevo提供了近乎实时的数据复制,使你能够产生实时的洞察力并做出更快的决策。
- 模式管理。Hevo可以自动识别传入数据的模式,并将其转移到目标模式中。
- **可扩展的基础设施。**Hevo有内置的100多个数据源的集成 ,如Oracle和MariaDB (有40多个免费来源),可以帮助你根据需要扩展你的数据基础设施。
- **实时支持。**Hevo团队可以24小时通过聊天、电子邮件和支持电话为客户提供巨大帮助。
方法2:使用ESF数据库工具箱将数据从Oracle迁移到MariaDB
第一步:在选择数据源对话框中选择Oracle作为数据源
- 输入服务器名称(默认为localhost)和端口(默认:1521)。
- 输入用户名(默认为 "系统")和密码。
- 选择你的登录方式(SID,服务名称,或TNS)。
- 在 "数据库 "字段中,提供源Oracle SID或Service_Name,如果使用TNS技术,则留空。
- 输入模式名称或留空(默认与用户名相同,你可以按 "刷新 "按钮来列出所有模式)。
第2步:在选择目的地对话框中选择MariaDB作为目的地
- 输入服务器名称(localhost)、端口(3306)、用户名和密码。
- MariaDB支持多种存储引擎;关于MariaDB存储引擎的更多信息,请访问这里。
- 选择一个字符集,例如UTF-8。
- 要以编程方式列出所有MariaDB数据库,请点击 "刷新 "按钮。你可以选择一个现有的数据库或输入一个新的数据库名称;这个工具包将在迁移过程中构建新的数据库。
第3步:选择源表(s)和视图(s)将弹出。
-
选择将被迁移的表/视图。
-
要改变表的参数或重新映射表的结构,点击"..."。
-
在传输数据之前,你可以指定数据传输技术(覆盖表/空数据/添加数据/跳过表)并过滤数据。
-
如果你选择 "字段映射",你可以重新定义目标表中的字段,如字段名、数据类型、默认值、注释等。
第4步:将弹出执行对话框
-
要开始迁移,点击 "提交"。这个工具包将帮助你迅速地将数据从Oracle迁移到MariaDB,而无需干预。
-
要查看完整的迁移日志,点击 "浏览日志"。
-
点击 "Save as job "将迁移设置保存到一个作业文件中,然后你可以通过 "Load Task "快速重新加载迁移作业或在将来通过命令提示执行。要获得完整的命令参数,请在命令提示符下使用 "esf-cmd -help"。
第5步:迁移执行完毕
- 程序将在可行的情况下尽快完成从Oracle到MariaDB的数据迁移,并向你提供一份迁移报告。
从Oracle迁移数据到MariaDB的最佳实践是什么?
有多种方法可以将数据从Oracle迁移到MariaDB。你可以使用诸如Oracle到MariaDB迁移工具,或者你可以利用MariaDB MaxScale和MariaDB Enterprise Server的优势来迁移数据。无论你使用哪种方法进行数据迁移,都有几个最佳实践需要牢记。
- **数据备份。**在进行迁移之前,先对数据进行备份。如果在安装过程中出现问题,你不能承担数据丢失的后果。在进行之前,确保备份资源是可用的,并且已经过测试。
- 确定数据迁移时间表。一旦你决定了规则和责任区域,创建一个有开始和结束日期的计划。如果需要,包括进度检查或里程碑的日期。
- 执行多次测试。在规划和设计阶段以及实施和维护阶段测试数据迁移,以确保你最终会得到预期的结果。
- **保持数据安全。**在迁移数据时,很容易忽视安全设置或权限。如果忽视了安全问题,你的数据就会被滥用或损坏。
总结
这篇文章让你了解了Oracle和MariaDB的概况。它还反映了可以用来将数据从Oracle迁移到MariaDB的两种方法。这两种方法都为其用户提供了具体的优势和劣势,但方法2比另一种方法有一定的优势。ESF数据库迁移工具包是强大的,在执行Oracle到MariaDB迁移时提供高性能。使用ESF数据库迁移工具包移动你的数据,可以让你快速将数据从Oracle转移到MariaDB,节省你的时间和精力。
Hevo Data是一个无代码的数据管道,可以将实时数据从100多个数据源,如Oracle,或MariaDB (包括40多个免费的数据源),传输到数据仓库或您选择的任何其他目的地。它是一个强大的、完全自动化的、安全的解决方案,不需要编码!
Hevo可以毫不费力地实现数据集成的自动化,让你专注于你的业务的其他方面,如分析,客户管理等。