还可以使用FDW迁移到PostgreSQL数据库

2021-04-07 03:15:06

今天正在迁移数百万个数据库到PostgreSQL。这是因为自由主义的PostgreSQL许可,特别是对PostgreSQL邀请更多贡献,并最终使IT企业等级。我已经介绍了一些富裕的企业功能,如以下内容,否则有一些商业数据库的额外费用。

虽然Postgres有几个功能默认情况下很棒,但如果没有解决方法,可能会具有挑战性,可能会有助于迁移到Postgres。幸运的是,通过扩展和开源工具有几个贡献,使迁移到PostgreSQL非常容易。在这个博客文章中,我们将只讨论其中一个功能。

截至最近更新的SQL标准,ISO / IEC 9075:2016 AKA SQL:2016,PostgreSQL与Oracle,DB2,SQL Server和MySQL相比,符合性图表,177个SQL标准的符合条件170。

SQL / MED是最初定义为2003年更新的SQL标准一部分的标准之一(SQL:2003)。 Med代表外部数据的管理,可访问的数据,但不能由DBMS本身管理。使用FDW(s),异构数据库的对象可以透明地映射到PostgreSQL。这有助于用户从Postgres数据库中选择或写入远程同一性/异构数据库。

如下图所示,我们可以使用Postgres服务器上的Oracle FDW加入Oracle表。

来自Oracle等数据库的一些数据库迁移可以简单地使用Oracle_fdw如外来数据包装器完成。使用Import Outhe Schema语法,可以在Postgres数据库中创建类似于Oracle的模式。 Oracle_FDW执行Oracle数据类型的自动转换为适当的Postgres数据类型,并创建具有与Oracle架构相同结构的表和视图。

以下是Oracle数据库的模式:XepdB1在主机上运行的XepdB1:192.168.10.1正在使用Oracle_fdw迁移到postgreSQL。所有这些步骤都将在Postgres数据库上执行,并且在Oracle数据库上没有任何内容。

创建服务器Oracle_server外国数据包装器Oracle_fdw选项(DBServer' // 192.168.10.1:1521/xepdb1');授予对外服务器Oracle_Server到Postgres的用法;为Postgres服务器oracle_server选项创建用户映射(用户'系统'密码'系统');创建架构hr_fdw;进口外国架构" HR"从Server Oracle_Server进入HR_FDW; postgres =#从hr_fdw.countries中选择count(*);伯爵------- 25(1行)

如上所述,我们可以在Postgres数据库上运行一个选择,该数据库正在从Oracle表中获取表的记录数。

FDW(s)可用于将数据从远程异构数据库迁移到PostgreSQL。如下面的示例中所见,使用Oracle_FDW,我们可以运行一个简单的插入命令,可以从Oracle数据库表中选择数据并将其插入Postgres表中。

开发人员和管理员迁移到PostgreSQL面临的挑战之一是数据验证。验证2个异构数据库之间的数据非常困难。一个人可能必须编写一个应用程序比较数据或找到其他复杂方法来做同样的方法。外国数据包装器可以在这里成为一个救主。我们可以加入Postgres表和源表,以检查使用强大的SQL语言的不同组合的缺失数据。

从Oracle_table ORA中选择ID,其中不存在(从postgres_table pg中选择*,其中pg.id = ora.id);

并非所有DBAAS平台都允许我们创建外国数据包装器。例如,Amazon RDS或Aurora不会将Oracle_fdw列为支持的扩展之一。在这种情况下该怎么办?让我们在我们的下一个博客文章中逐步逐步地处理该方法。请订阅我们的博客文章,以遵循我们最新的迁移到Postgres更新。请联系我们了解我们如何在执行迁移到PostgreSQL时如何提供帮助。