Ora2Pg 23.2 發布

發表於 2022-10-17 作者:MigOps
相關開源

馬達加斯加,安塔那那利佛 - 2022 年 10 月 8 日

Ora2Pg 23.2 發布

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

此版本修復了過去數月回報的幾個問題,並新增了一些新功能和改進。

  • 新增匯出 MySQL KEY 和 LINEAR KEY 分區,並將其轉換為 HASH 分區。
  • 允許匯出名稱中帶有錢字符號的物件。
  • 新增匯出 MySQL >= 8.0 的 CHECK 約束。
  • 新增從 MYSQL 匯出函數/表達式索引。
  • 新增匯出 MySQL 虛擬欄位。
  • 如果刻度大於精度,則移除數值的刻度和精度。 PostgreSQL 不支援刻度顯式高於精度的 decimal/numeric 屬性。
  • 新增命令列選項 --drop_if_exists,如果在建立物件之前物件已存在,則新增刪除物件的陳述式。 它對應於 DROP_IF_EXISTS 組態指令。
  • 新增選項 -C | --cdc_file,可以變更預設檔案的名稱,該檔案用於儲存/讀取匯出期間每個資料表的 SCN。預設值是目前目錄中的 TABLES_SCN.log。這是 --cdc_ready 選項寫入的檔案。
  • 新增多進程以使用 -P 命令列選項計算 PostgreSQL 資料表 (TEST_COUNT) 中的列數。
  • 新增對具有輸出參數的 PostgreSQL 14 程序的支援。
  • 將預設 PostgreSQL 資料庫目標版本設定為 14。

新的組態指令

  • 新增組態指令 MVIEW_AS_TABLE 和命令列選項 --mview_as_table,以設定要匯出為資料表的實體化視窗。預設值為無。該值必須是以空格或逗號分隔的實體化視窗名稱或 regexp 的列表。如果物件名稱是實體化視窗且匯出類型為 TABLE,則該視窗將匯出為 create table 陳述式。如果匯出類型為 COPY 或 INSERT,則將匯出相應的資料。
  • 新增組態變數 FDW_IMPORT_SCHEMA 以重新命名將在其中建立用於資料遷移的外部資料表的結構描述。如果您使用多個 ora2pg 實例透過外部資料包裝器進行資料遷移,您可能需要變更每個實例的結構描述名稱。預設值:ora2pg_fdw_import
  • 新增 TRANSFORM_VALUE 組態指令,以在從 Oracle 檢索資料時套用表達式。例如:TRANSFORM_VALUE CLOB_TABLE[CHARDATA:translate("CHARDATA", chr(0), ' ')] 以將字串中的所有 Oracle char(0) 替換為空格字元。
  • 新增 EXCLUDE_COLUMNS 組態指令。與用於重新定義資料表結構的 MODIFY_STRUCT 不同,此指令允許指定每個資料表必須從匯出中排除的欄位列表。例如:EXCLUDE_COLUMNS T1(nocol1,nocol2) T2(nocol1,nocol2)
  • 新增組態指令 EXPORT_GTT,以使用 pgtt 擴充功能識別的語法匯出 Oracle 全域臨時表。有關更多資訊,請參閱 https://github.com/darold/pgtt 預設值是不匯出全域臨時表,因為 PostgreSQL 本機不支援它們。
  • 新增組態選項 NO_EXCLUDED_TABLE。預設情況下,Ora2Pg 會從匯出中排除一些永遠不應成為匯出一部分的 Oracle「垃圾」資料表。此行為會產生大量 REGEXP_LIKE 表達式,從而在查看資料表時會減慢匯出速度。若要停用此行為,請啟用此指令,您將必須稍後自行排除或清理不需要的資料表。用於排除資料表的 regexp 定義在 lib/Ora2Pg.pm 中的陣列 @EXCLUDED_TABLES 中。請注意,此行為獨立於 EXCLUDE 組態指令。

向下相容性

  • 強制將所有以零年 0000 開頭的無效日期,在預設值時重寫為 1970-01-01,資料則重寫為 NULL。舊的行為是僅替換 0000-00-00 日期。
  • 到目前為止,有很多未翻譯的 TRUNC(date) 呼叫,因為 Ora2Pg 無法檢測到參數是日期還是數字。問題是 Oracle 也有 TRUNC(number),並且 Ora2Pg 嘗試在有疑問時不套用轉換。在大多數遷移中都遇到了很少的 TRUNC(number),因此現在所有 TRUNC() 呼叫都將轉換為 date_trunc()。必須有誤報的重寫,但這應該比實際情況少很多工作。

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

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

連結與鳴謝

我要感謝所有提交修補程式的使用者和回報錯誤和功能請求的使用者,他們都在 ChangeLog 檔案中被引用。

Ora2Pg 是一個開放專案。歡迎為建立更好的工具做出任何貢獻。您只需使用 GitHub 工具或直接發送到 ora2pg@darold.net 發送您的想法、功能請求或修補程式。

連結


關於 Ora2Pg :

Ora2Pg 是一個簡單且可靠的工具,用於從 Oracle 遷移到 PostgreSQL。它自 2001 年以來一直在開發,可以將大多數 Oracle 物件和資料匯出為與 PostgreSQL 相容的程式碼。

Ora2Pg 在任何平台上都可以使用,並在 GPL v3 許可下提供。

文件、下載和支援位於 http://www.ora2pg.com/