Postgresql

從 Oracle 物化視圖日誌刷新 Postgresql MVIEW

  • March 31, 2022

我是否可以在我的源數據庫中使用 Oracle MVIEW 日誌並使用此 MVIEW 日誌刷新 Postgresql 數據庫 MVIEW?我知道我可以查詢 MVIEW 日誌,我已經做到了。但是由於查詢日誌不是一個好習慣,是否甚至可以像 Oracle MVIEW 使用日誌一樣使用 Postgresql 中的 MVIEW 日誌?

如果那不可能,那麼從 Postgresql 到 Oracle 的 dblink 是否可能?

您可以使用 oracle_fdw 從 PostgreSQL 連接到 Oracle 並查詢物化視圖日誌。我已經做到了。

那時我試圖以這種方式實現複製。導致我放棄該項目的問題是 Oracle 物化視圖日誌沒有記錄,我無法獲得所需的所有資訊。但除此之外,應該沒有問題。

Oracle 和 Postgres 中物化視圖的實現是不同的。你要問的需要將 Postgres 集成到 Oracle 的專有 API 中——註冊為已知的客戶端 MV,以便日誌正確更新自身——我認為這不存在。它還需要到 Oracle 數據庫的有效數據庫連結。

這個擴展看起來可以幫助 Postgres 連接到 Oracle;我自己沒有使用過它,但它看起來應該可以工作(儘管它似乎也有一些限制):https ://pgxn.org/dist/oracle_fdw/

此時,您需要直接查詢源表,而不是現有的 MV 日誌。Oracle 會自動維護這些日誌,當它確定所有註冊的 MV 都已刷新了一組特定的更改時,會截斷它們或刪除行。如果沒有註冊的 MV,那麼日誌將永遠失控。用不了多久,它們就會嚴重影響您的更新和 Oracle 數據庫(儲存要求、備份、記憶體等)的性能。在 Oracle 中也存在整個 MV 日誌可能變得無效並需要完全刷新 MV 才能重置的情況。我的觀點是,如果沒有正確的客戶端註冊,這些日誌中的數據幾乎毫無用處,或者比無用更糟糕:對維護有害。

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