将数据从Oracle迁移到PostgreSQL数据库。
dbForge Studio for PostgreSQL最新版
您可能出于以下几个原因将数据库从Oracle迁移到PostgreSQL:
- Oracle可能非常昂贵,其中一些重要功能需要在此之上进行额外投资。
- PostgreSQL提供了方便而强大的开源许可,包括各种免费的附加组件,可以帮助提高性能并扩展数据库的功能。
- PostgreSQL的语言可能更易于使用(例如,它处理数据类型的方式),或者您发现它比Oracle的语言更受欢迎。
许多其他方面也可以帮助您做出决定。但是,如果您已经确定必须迁移到PostgreSQL,则需要牢记一些注意事项。
要了解的最重要的一点是,没有任何工具可以帮助您完全自动化迁移过程。由于两种环境的工作方式存在许多差异,因此必须手动执行其中的某些部分。
其次,虽然较小的数据库(大小不超过100GB)可以相对轻松地迁移,但是如果要确保大型数据库在迁移过程中不会花费大量时间和资源,则将需要使用其他方法。具体来说,在这种情况下,最好使用基于日期的分区–这将大大有助于数据处理。
有了这些信息,下面是描述在迁移数据之前需要检查的内容的步骤:
1、初步检查
找出确切需要迁移的内容–找到并排除所有不必要复制的数据,例如旧备份和过时的临时表。
2、评估迁移
分析应用程序和数据库中的对象,查找数据库之间的差异,并将数据导出到迁移 告中,以了解迁移过程的估计时间和资源使用量。像Ora2pg这样的工具将极大地帮助这一步。
3、映射数据类型
与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存档并解压缩。

将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并创建超级用户连接:

关于迁移的具体过程要求,点击查看下一篇
了解更多产品信息或想要购买产品正版授权请点击【咨询在线客服】
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!