Devart数据库工具【教程】:将数据从Oracle迁移到PostgreSQL数据库(上)

将数据从Oracle迁移到PostgreSQL数据库。

dbForge Studio for PostgreSQL最新版

您可能出于以下几个原因将数据库从Oracle迁移到PostgreSQL:

  1. Oracle可能非常昂贵,其中一些重要功能需要在此之上进行额外投资。
  2. PostgreSQL提供了方便而强大的开源许可,包括各种免费的附加组件,可以帮助提高性能并扩展数据库的功能。
  3. PostgreSQL的语言可能更易于使用(例如,它处理数据类型的方式),或者您发现它比Oracle的语言更受欢迎。

许多其他方面也可以帮助您做出决定。但是,如果您已经确定必须迁移到PostgreSQL,则需要牢记一些注意事项。

要了解的最重要的一点是,没有任何工具可以帮助您完全自动化迁移过程。由于两种环境的工作方式存在许多差异,因此必须手动执行其中的某些部分。

其次,虽然较小的数据库(大小不超过100GB)可以相对轻松地迁移,但是如果要确保大型数据库在迁移过程中不会花费大量时间和资源,则将需要使用其他方法。具体来说,在这种情况下,最好使用基于日期的分区–这将大大有助于数据处理。

有了这些信息,下面是描述在迁移数据之前需要检查的内容的步骤:

1、初步检查

找出确切需要迁移的内容–找到并排除所有不必要复制的数据,例如旧备份和过时的临时表。

2、评估迁移

分析应用程序和数据库中的对象,查找数据库之间的差异,并将数据导出到迁移 告中,以了解迁移过程的估计时间和资源使用量。像Ora2pg这样的工具将极大地帮助这一步。

3、映射数据类型

与Oracle数据类型相比,PostgreSQL中的数据类型具有一些差异。因此,在大多数情况下,需要进行一些转换。这是这两种环境中使用的一些数据类型的比较表:

Devart数据库工具【教程】:将数据从Oracle迁移到PostgreSQL数据库(上)

4.交易

Oracle和PostgreSQL中的事务以略有不同的方式实现。任何执行的语句将触发Oracle中的事务,而COMMIT语句将结束事务。在PostgreSQL中,在激活事务之前需要一个BEGIN语句。

在环境之间移植代码时,这可能会导致其他工作。

5.其他技术差异

在迁移过程中需要考虑的一些最重要的差异是:

  • 双表– Oracle数据库的每个SELECT语句都需要FROM子句,因此将DUAL表用于此类语句。另一方面,在PostgreSQL中,不需要FROM子句(以及扩展的DUAL表)。
  • DELETE语句–与Oracle中不同,PostgreSQL中的DELETE语句仅与FROM子句一起使用。
  • SUBSTR –此函数在Oracle和PostgreSQL中产生不同的结果,这可能会导致问题。
  • SYSDATE – PostgreSQL不具有与Oracle的SSYSDATE函数等效的功能,该函数提供执行日期和时间。应根据您的需要使用以下方法:
所需时间信息 对应 功能
SQL开始时间 Statement_timestamp()
交易开始时间 Transaction_timestamp()
功能实施时间 Clock_timestamp()

6. 语言 转换

PL / pgSQL和PL / SQL语言非常相似,但是应该牢记一些重要的区别:

  • 如前所述,在这两种语言中数据类型的实现方式有所不同,因此需要进行一些工作才能正确转换它们。
  • PostgreSQL没有软件包,因此架构用于根据需要对功能进行分组。这也意味着不能使用包级变量。
  • 光标变量在这两种语言中的表示方式不同
  • 因为需要在PostgreSQL中将函数体写为字符串文字,所以应使用美元符 引 ,或者,应在函数体中转义单引 。

如您所见,在迁移过程之前和期间,您需要记住很多事情。因此,为确保数据库成功迁移,应在迁移后对其进行全面测试。

现在,利用所有这些信息,让我们看看如何在dbForge Studio for PostgreSQL的帮助下将数据库从Oracle迁移到PostgreSQL

如何将数据从Oracle迁移到PostgreSQL数据库/strong>

前提条件是,您正在使用的计算机应安装PostgreSQL服务器(我们正在使用v.12)和Oracle客户端。

首先,我们需要oracle_fdw。它是PostgreSQL的扩展,提供了外部数据包装器,可简单有效地访问Oracle数据库,并支持EXPLAIN和WHERE。

oracle_fdw可以在这里下载:https : //github.com/laurenz/oracle_fdw/releases

对于不同的PostgreSQL服务器版本和OS位深度,有不同的包装器版本。

让我们看一下oracle_fdw v.2.2.0 win64的过程:

  • 下载oracle_fdw-2.2.0-pg12-win64.zip存档并解压缩。

Devart数据库工具【教程】:将数据从Oracle迁移到PostgreSQL数据库

将oracle_fdw.dll从lib文件夹移至C: Program Files PostgreSQL 12 lib 文件夹(或基于您的计算机上PostgreSQL服务器安装位置的相应文件夹)

将oracle_fdw.control和两个SQL脚本从share extension  文件夹移至C: Program Files PostgreSQL 12 share extension

启动dbForge Studio for PostgreSQL并创建超级用户连接:

Devart数据库工具【教程】:将数据从Oracle迁移到PostgreSQL数据库

关于迁移的具体过程要求,点击查看下一篇


了解更多产品信息或想要购买产品正版授权请点击【咨询在线客服】
标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月11日
下一篇 2020年3月11日

相关推荐

发表回复

登录后才能评论