Ora2Pg 16 發布

發布於 2015-10-16,作者:Dalibo

法國巴黎 - 2015年10月16日

Ora2Pg 16 發布

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

這個主要版本改進了 PL/SQL 程式碼替換,修復了一些錯誤,並新增了一些重要的新功能。

  • 完整遷移 MySQL 資料庫,其運作方式與 Oracle 資料庫相同。
  • MySQL 資料庫的完整遷移評估報告。
  • 新的腳本 ora2pg_scanner,用於對網路上的所有 Oracle 和 MySQL 實例執行遷移評估。
  • 在遷移評估中加入技術難度級別。
  • 允許對從 AUDIT_TRAIL (Oracle) 或 general_log 表 (MySQL) 提取的用戶端查詢進行遷移評估。
  • Ora2Pg 有一個 "一夜之間完成" 的全新網站(仍需要一些工作) http://ora2pg.darold.net/

使用 sakila 資料庫和更多難度的技術難度級別評估輸出範例

總共 83.90 個成本遷移單位,意味著大約 1 個人天。遷移等級:B-5

以下是遷移等級代碼的解釋

  • 遷移等級
  • A - 可以自動運行的遷移
  • B - 需要重寫程式碼的遷移,人工成本最多 5 天
  • C - 需要重寫程式碼的遷移,人工成本超過 5 天
  • 技術等級
  • 1 = 簡單:沒有預存函數,也沒有觸發程序
  • 2 = 容易:沒有預存函數,但有觸發程序,無需手動重寫
  • 3 = 簡單:有預存函數和/或觸發程序,無需手動重寫
  • 4 = 手動:沒有預存函數,但有觸發程序或需要重寫程式碼的檢視
  • 5 = 困難:有預存函數和/或需要重寫程式碼的觸發程序

這有助於您找到可以首先以少量努力遷移的資料庫(A 和 B),以及那些需要執行完整遷移專案的資料庫(C)。

此版本還有一些新的有用功能

  • 匯出類型 SHOW_TABLE 現在顯示關於表格類型的額外資訊(FOREIGN、EXTERNAL 或 PARTITIONED 以及分割區的數量)。
  • 連線的使用者和密碼可以通過環境變數 ORA2PG_USER 和 ORA2PG_PASSWD 傳遞,以避免在 ora2pg 命令列中設定它們。
  • 改進 ADD_MONTH()、ADD_YEAR()、TRUNC()、INSTR() 上的 PL/SQL 替換,並移除 DECODE() 上的替換限制。
  • 新增了在檢視中偵測遷移難度的功能,之前僅限於函數、程序、包和觸發程序。
  • 當使用 --init_project 時,從命令列選項 -s、-n、-u 和 -p 替換自動產生的設定檔中的值。
  • 根據 Ora2Pg 中的新功能調整了很多分數,例如:自主事務、dblink 或同義詞現在更容易遷移。

ora2pg 腳本有一些新的命令列選項

  • -m | --mysql:與 --init_project 和 -i 選項一起使用,以通知 ora2pg 我們正在使用 MySQL 格式
  • -T | --temp_dir:選項,可以設定一個不同的臨時目錄來並行執行 ora2pg。
  • --audit_user:選項,用於設定稽核過濾器中使用的使用者,並啟用對來自 AUDIT_TRAIL (Oracle) 或 general_log 表 (MySQL) 的查詢的遷移評估報告。
  • --dump_as_sheet 和 --print_header 選項,以便能夠從 Oracle 資料庫清單中計算出包含所有遷移評估的 CSV 檔案。
  • --dump_as_csv 選項,用於將評估報告到 csv 檔案中。 它將不包含評論或細節,只有物件名稱、數字和成本。

一些變更可能會破壞向後相容性

  • 將 NULL_EQUAL_EMPTY 變更為預設停用,以強制應用程式進行變更,而不是轉換 PL/SQL。

此版本新增了一些新的配置指令

  • MYSQL_PIPES_AS_CONCAT:如果雙管道和雙符號 (|| 和 &&) 不應被視為等同於 OR 和 AND,則啟用它。
  • MYSQL_INTERNAL_EXTRACT_FORMAT:如果您希望 EXTRACT() 替換使用作為整數傳回的內部格式,則啟用它。
  • AUDIT_USER:設定必須用於從 DBA_AUDIT_TRAIL 或 general_log 表中過濾的使用者名稱的逗號分隔清單。
  • REPLACE_ZERO_DATE:預設情況下,"零" 日期:0000-00-00 00:00:00 將被替換為 NULL,使用它來使用您選擇的日期。當您有 NOT NULL 約束時很有用。
  • INDEXES_RENAMING:強制使用帶有 tablename_columnsnames 的名稱重新命名所有索引。 對於多次具有相同索引名稱或使用與表相同的名稱的資料庫非常有用。
  • HUMAN_DAYS_LIMIT:預設為 5 天,用於設定 C 類遷移的人工天數限制。

與往常一樣,還有一些錯誤修復和 Oracle 到 PostgreSQL 轉換調整,完整清單請參閱 changelog

連結 & 鳴謝

感謝所有貢獻者,他們都被記錄在 changelog 檔案中。

有用的連結


關於 Ora2Pg

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

Ora2Pg 可在任何平台上運作,並以 GPL v3 許可證提供。

文件、下載 & 支援:ora2pg.darold.net