我在Oracle中有一个OLTP DB,在本地PostgreSQL中有一个下游OLAP System。来自Oracle的数据使用Oracle_FDW泵入PostgreSQL。
我正在探索将PostgreSQL迁移到AWS的可能性,但没有一个RDS具有Oracle_fdw功能。一种出路是在 EC2 实例上安装 PG,但这会留下一些功能,例如 AWS 原生提供的只读副本。有没有更好的解决方法?
还有没有办法从AWS中的Postgres RDS获取Oracle RDS中的数据?
使用 Amazon RDS 上的 PostgreSQL,您选择的扩展仅限于它们明确支持的扩展。据我所知,没有办法绕过这个限制。
就像你提到的,在这种情况下,一般的选择是自己在EC2而不是RDS上托管PostgreSQL。您将失去自动备份/复制/管理功能,但您可以获得所需的功能和灵活性。这当然会起作用,但需要一些腿部工作来弥补您因不使用 RDS 而失去的内容。
我能想到的唯一替代方案是,您可以托管一个安装了oracle-fdw扩展的不同(否则为空的(PostgreSQL服务器,并使用postgres-fdw扩展(RDS支持(代理来自RDS托管数据库的请求,通过代理PostgreSQL数据库,到Oracle数据库并返回。如果您要检索的数据量很大,或者每分钟的查询次数很多,这可能是一个糟糕的主意。但可能值得测试一下,看看它是否适用于您的用例。
我快速搜索了一下,我找不到任何对任何实际分层像这样的外国数据包装器的引用,但我在手册或网上也找不到任何说它也不受支持的内容。从理论上讲,它应该可以工作,但是如果您确实尝试过,请确保在使用它来执行任何重要操作之前对其进行彻底测试。
Oracle_FDW 现在在最新版本中受支持 - https://aws.amazon.com/about-aws/whats-new/2021/07/amazon-rds-for-postgresql-supports-oracle-fdw-extension-for-accessing-data-in-oracle-databases/