Postgresql

通過 dblink 將 Oracle 11g 連接到 Postgres

  • March 25, 2017

我對我們的 Oracle 數據庫具有管理員訪問權限,但想知道是否可以將 Oracle 11g 數據庫連接到 Postgres 數據庫,如果可以,我需要遵循哪些步驟。

我看過一些教程提到需要安裝的 ODBC 驅動程序,但看起來這個驅動程序需要安裝在 Oracle 伺服器本身上?

Community Wiki answer收集問題評論中留下的答案


a_horse_with_no_name

ODBC 驅動程序需要在連接到 Oracle 伺服器的電腦上,而不是在 Oracle 伺服器本身上。另外:您不能為此使用 dblink,Postgres 的 DBLink 只能連接到其他 Postgres 伺服器。但是您可以使用外部數據包裝器。您只需要 Postgres 伺服器上的 Oracle 客戶端庫(而不是 ODBC 驅動程序),不需要在 Oracle 伺服器上安裝任何東西。

如果您沒有 Oracle 數據庫的管理員訪問權限,也無法更改 Postgres 中的任何內容,那麼您無能為力。Oracle 的 DBLink 只能連接到其他 Oracle 伺服器。您可以安裝 Oracle 的“異構服務”以便能夠通過 ODBC(Postgres ODBC 驅動程序,而不是 Oracle 驅動程序)進行連接,但這再次要求您具有對 Oracle 數據庫的管理員訪問權限。

您需要安裝 Oracle 的“異構服務”,然後安裝Postgres的 ODBC 驅動程序,而不是 Oracle 的驅動程序。


埃德史蒂文斯

它不僅僅是 ODBC 驅動程序。您需要為 ODBC 安裝 Oracle 透明網關。Oracle 數據庫向 Oracle 偵聽器發送客戶端請求,該偵聽器使用網關配置文件進一步解析對 ODBC DSN 的請求。完整的說明非常複雜,但我有一篇文章概述了這些部分及其聯繫。這應該為您提供一個很好的概述和框架,以幫助您理解更詳細的說明。

您將需要 Oracle 網關Postgres ODBC 驅動程序。我能找到的最佳連結是:

從哪裡下載 DG4ODBC?

當然,當你到達那裡時,你會想要調整你的版本。對於 ODBC 驅動程序,它將來自 Postgres。

需要做什麼取決於連接計劃在哪裡完成。如果該計劃是從 Oracle 端完成的,您可以使用 dg4odbc 並使用 odbc 驅動程序和 Postgress 數據庫的連接詳細資訊對其進行配置。

dg4odbc 設置了一種特殊類型的偵聽器程序,您可以使用正常 tns 別名來引用該程序。此偵聽器程序必須與 ODBC 驅動程序位於同一台機器上,但不一定必須位於數據庫伺服器上。當然,數據庫伺服器有一個偵聽器程序,但沒有什麼(也許是許可)阻止您在單獨的機器上為 dg4odbc 設置專用偵聽器。

在您的 Oracle 數據庫中,您設置了一個數據庫連結,該連結使用指向特殊偵聽器的 tns 別名。

引用自:https://dba.stackexchange.com/questions/138856