Ora2Pg v21.0 已發布

發布於 2020-10-13,作者:Gilles Darold
相關開源專案

法國格勒諾勃 - 2020年10月12日

Ora2Pg 21.0 發布

Ora2Pg 21.0 版已正式發布並公開提供下載。Ora2Pg 是一個免費且可靠的工具,用於將 Oracle 資料庫遷移到 PostgreSQL。

此版本修正了自上次發布以來報告的幾個問題,並新增了多項新功能和改進。

新功能與改進

  • 當資料表具有 IDENTITY 欄位時,將 OVERRIDING SYSTEM VALUE 子句新增至 INSERT 語句。
  • 大幅提高產生遷移評估報告的速度,尤其是對於具有大量物件的資料庫。
  • 減少進度列中經過的時間。 根據資料庫物件的數量,我們花費了太多時間來刷新進度列。
  • 在遷移評估報告中新增 identity 欄位的數量。
  • 使用 HTML5 標籤 details+summary 使評估詳細資訊報告初始為隱藏狀態
  • 提高 BLOB/CLOB 資料匯出的速度。 Oracle 建議使用 LOB 區塊大小的倍數分批讀取和寫入 LOB。 此區塊大小預設為 8k (8192)。 最近的測試表明,使用較高的值(例如 512K 或 4Mb)可以達到最佳效能。
  • 在使用單進程模式下的 --oracle_speed 時新增進度列。
  • 當連線使用者沒有 DBA 權限時,自動啟用 USER_GRANTS。 會顯示警告訊息。
  • 透過在 ora2pg 命令列呼叫時使用 Windows 分隔符號將 stdout 重新導向到檔案,來完成移植到 Windows 的作業,並改進 Windows 作業系統上的 ora2pg_scanner 移植。
  • 新增使用 WHERE 子句而不是 ON 重寫 MySQL JOIN。
  • 將 MGDSYS (Oracle E-Business Suite) 和 APEX_040000 新增到從匯出中排除的綱要清單中。
  • 在設定檔中未定義密碼時,以互動方式提供憑證。 需要安裝新的 Perl 模組 Term::ReadKey。
  • 新增支援使用使用者名稱 "/" 和空白密碼以 "as sysdba" 身分連線至本機 Oracle 實例的 Oracle 連線。
  • 新增將 Oracle 18c 中的 PRIVATE TEMPORARY TABLE 翻譯成 PostgreSQL 基本暫存資料表,僅針對 on commit 變更的預設行為。

新的命令列選項

  • 為 ora2pg_scanner 新增新的命令列選項:-b | --binpath DIR,以設定 ora2pg 二進位檔案所在的目錄完整路徑。 可能僅在 Windows 作業系統上才有用。
  • 新增 -r | --relative 命令列選項和 PSQL_RELATIVE_PATH 設定指令。 預設情況下,如果您想在使用指令檔執行檔案之後使用相對路徑,Ora2Pg 會使用 \i psql 命令來執行產生的 SQL 檔案,啟用此選項將使用 \ir。 請參閱 psql 說明以獲取更多資訊。

新的設定指令

  • NO_VIEW_ORDERING 預設情況下,Ora2Pg 會嘗試對檢視進行排序,以避免在匯入時發生巢狀檢視的錯誤。 如果檢視數量龐大,這可能需要很長時間,您可以透過啟用此指令來繞過此排序。
  • NO_FUNCTION_METADATA:強制 Ora2Pg 不要尋找函數宣告。 如果需要,這將防止 Ora2Pg 重寫函數替換呼叫。 除非期望函數中斷其他匯出,否則不要啟用它。
  • LOB_CHUNK_SIZE:請參閱新功能和改進清單中關於 BLOB/CLOB 匯出速度改進的說明。
  • ALTERNATIVE_QUOTING_REGEXP:為了支援字串文字的替代引號機制('Q' 或 'q'),請設定 regexp 以及要用於擷取文字部分的文字擷取。 此指令的值可以是使用分號分隔的 regexp 清單。 如果您想還原字串常數,則每個 regexp 中的擷取部分是強制性的。

向下相容性變更

  • NO_LOB_LOCATOR 的預設值現在為 1,以便從 LOB_CHUNK_SIZE 效能增益中受益。
  • 預設情況下,啟用綱要編譯(COMPILE_SCHEMA 設定為 1)以加快 DDL 提取。
  • 使用具有預設值的參數變更 Ora2Pg 的行為。 Ora2Pg 過去常常變更參數函數的順序,以將所有具有預設值的參數放在清單的末尾,這需要重寫函數呼叫。 這已被放棄,現在將在具有預設值的參數之後附加任何沒有預設值的參數 DEFAULT NULL。

有關變更的完整清單,請參閱 https://github.com/darold/ora2pg/blob/master/changelog

感謝所有貢獻者,他們都列在變更日誌檔案中。

實用連結

  • 網站:http://www.ora2pg.com/
  • 下載 1:https://github.com/darold/ora2pg/releases
  • 下載 2:http://sourceforge.net/projects/ora2pg/
  • 開發:https://github.com/darold/ora2pg
  • 變更日誌:https://github.com/darold/ora2pg/blob/master/changelog
  • 文件:http://www.ora2pg.com/documentation.html

  • PostgreSQL 的全域暫存表擴充功能:https://github.com/darold/pgtt

  • PostgreSQL 的 BFILE 擴充功能:https://github.com/darold/external_file

關於 Ora2Pg

Ora2Pg 是一種簡單且可靠的工具,用於從 Oracle 遷移到 PostgreSQL。 它由 Gilles Darold 自 2001 年以來開發,可以匯出大多數 Oracle 物件(資料表、檢視、具體化檢視、表空間、序列、索引、觸發器、授權、函數、程序、套件、分割區、資料、blob、外部資料表等)。

Ora2Pg 可以在任何平台上執行,並在 GPL v3 授權下提供。

文件、下載和支援請參閱 http://www.ora2pg.com/