移轉指南:Oracle 至 SQL Server

適用於:SQL Server

在本指南中,您將了解如何使用適用於 Oracle 的 SQL Server 移轉小幫手 (SSMA for Oracle),將 Oracle 資料庫移轉到 SQL Server。

如需其他移轉指南,請參閱 Azure 資料庫移轉指南

重要

試用 Azure Data Studio 中的新 Database Migration Assessment for Oracle 延伸模組,進行 Oracle 移轉至 SQL 的預先評定和工作負載分類。 如果您在 Oracle 移轉至 SQL 的早期階段中,而且需要執行高階工作負載評估,有興趣調整 Oracle 工作負載 Azure SQL 目標的大小,或瞭解功能移轉同位,請嘗試新的延伸功能。 如需詳細的程式碼評定和轉換,請繼續使用 SSMA for Oracle。

必要條件

開始將 Oracle 資料庫移轉到 SQL Server 之前,請執行下列步驟:

移轉前

當您準備移轉到雲端時,請確認您的來源環境支援此操作,而且您已符合了所有其他必要條件。 這麼做有助於確保有效率且成功的移轉。

這部分的程序牽涉到清查您需要移轉的資料庫、評定這些資料庫是否有潛在的移轉問題或阻礙,然後解決您已發現的任何問題。

探索

若要進一步了解並規劃移轉,請使用 Microsoft Assessment and Planning (MAP) Toolkit 來識別組織正在使用之功能的現有資料來源和詳細資料。 此程序牽涉到掃描網路,以識別您組織的所有 Oracle 執行個體、版本和功能。

若要使用 MAP Toolkit 執行詳細目錄掃描,請執行下列步驟:

  1. 開啟 MAP Toolkit

  2. 在 [Overview] 窗格上,選取 [Create/Select database]。

    Screenshot of the 'Create/Select database' link on the MAP Toolkit Overview pane.

  3. 在 [Create or select a database] 下,選取 [Create an inventory database],輸入您要建立的清查資料庫名稱,提供簡短描述,然後選取 [OK]。

    Screenshot of the 'Create an inventory database' option in the MAPS Toolkit.

  4. 選取 [Collect inventory data] 以開啟 [Inventory and Assessment Wizard]。

    Screenshot of the 'Collect inventory data' link in the Inventory and Assessment Wizard.

  5. 在精靈中,選取 [Oracle],然後選取 [Next]。

    Screenshot of the Oracle option and Next button in the Inventory and Assessment Wizard.

  6. 選取最符合您組織需求和環境的電腦搜尋選項,然後選取 [Next]。

    Screenshot of the list of computer-discovery methods that best suit your organization's needs.

  7. 為您想要探索的系統輸入目前認證或建立新認證,然後選取 [Next]。

    Screenshot of the wizard pane for entering your computer credentials.

  8. 設定認證的順序,然後選取 [Next]。

    Screenshot of the wizard pane for setting the order of credentials.

  9. 為您想要探索的每部電腦指定認證。 您可以針對每部電腦或機器使用唯一認證,也可以從 [Computers] 清單中進行選取。

    Screenshot of the 'Use all computers credential list' option for specifying the credentials for each computer you want to discover.

  10. 驗證您的選取項目摘要,然後選取 [Finish]。

    Screenshot of the wizard summary page for reviewing your selections.

  11. 掃描完成之後,請檢視 [Data Collection] 摘要報告。 掃描可能需要幾分鐘的時間,視資料庫的數量而定。 完成後,請選取 [Close]。

    Screenshot of the Data Collection summary report page.

  12. 選取 [Options] 以產生有關 Oracle 評定和資料庫詳細資料的報告。 選取這兩個選項 (一次一個) 以產生報告。

評定

識別資料來源之後,請使用 SSMA for Oracle 來評定您要移轉到 SQL Server 虛擬機器的 Oracle 執行個體,讓您了解兩者之間的差距。 使用移轉小幫手,您可以檢閱資料庫物件和資料、評定要移轉的資料庫、將資料庫物件移轉到 SQL Server,然後將資料移轉到 SQL Server。

若要建立評定,請執行下列步驟:

  1. 開啟 SSMA for Oracle

  2. 選取 [檔案],然後選取 [新增專案]。

  3. 提供專案名稱與位置,然後從下拉式清單中選取 SQL Server 移轉目標。 選取 [確定]。

    Screenshot of the New Project pane in SSMA for Oracle.

  4. 選取 [連線到 Oracle],輸入 Oracle 連線詳細資料,然後選取 [連線]。

    Screenshot of the Connect to Oracle pane.

  5. 在 [篩選物件] 窗格上,選取您要移轉的 Oracle 結構描述,然後選取 [確定]。

    Screenshot of the 'Filter objects' pane for selecting the schemas to load.

  6. 在 [Oracle 中繼資料總管] 窗格中,選取您要使用的 Oracle 結構描述,然後選取 [建立報告] 以產生具有轉換統計資料以及錯誤或警告 (如果有) 的 HTML 報告。 或者,您也可以選取右上方的 [建立報告] 索引標籤。

    Screenshot of the 'Create Report' links in Oracle Metadata Explorer.

  7. 檢閱 HTML 報告,以了解轉換統計資料及任何錯誤或警告。 您也可以在 Excel 中開啟報告,以取得 Oracle 物件的詳細目錄,以及執行結構描述轉換所需的工作。 報告的預設位置是 SSMAProjects 內的報告資料夾。 例如:

    drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2016_11_12T02_47_55\

    Screenshot of a conversion report in SSMA.

驗證資料類型

驗證預設資料類型對應,並視需要來根據需求加以變更。 操作方法:

  1. 選取 [工具],然後選取 [專案設定]。

  2. 選取 [類型對應] 索引標籤。

    Screenshot of the 'Type Mapping' pane in SSMA for Oracle.

  3. 您可以在 [Oracle 中繼資料總管] 窗格上選取資料表名稱,變更每個資料表的類型對應。

轉換結構描述

若要轉換結構描述,請執行下列步驟:

  1. (選用) 若要轉換動態或特殊化查詢,請使用滑鼠右鍵按一下節點,然後選取 [新增陳述式]。

  2. 選取 [連線到 SQL Server] 索引標籤,然後輸入您 SQL Server 執行個體的連線詳細資料。

    1. 資料庫下拉式清單中,選取您的目標資料庫,或提供新名稱以在目標伺服器上建立資料庫。

    2. 提供驗證詳細資料。

    3. 選取 [連線]。

      Screenshot of the Connect to SQL Server pane in SSMA for Oracle.

  3. 在 [Oracle 中繼資料總管] 窗格中,以滑鼠右鍵按一下您要使用的結構描述,然後選取 [轉換結構描述]。 或者,您也可以選取右上方的 [轉換結構描述] 索引標籤。

    Screenshot of the 'Convert Schema' command on the 'Oracle Metadata Explorer' pane.

  4. 轉換完成之後,請將轉換後的物件與原始物件進行比較以找出潛在問題,並根據建議加以解決。

    Screenshot showing a comparison of the converted objects to the original objects.

    將已轉換的 Transact-SQL 與原始程式碼進行比較,並檢閱建議。

    Screenshot showing a comparison of the converted text to the original code.

  5. 在 [輸出] 窗格上,選取檢閱結果圖示,然後檢閱 [錯誤清單] 窗格上的任何錯誤。

  6. 如需離線結構描述補救練習,請選取 [檔案] >[儲存專案],將專案儲存在本機。 這麼做讓您有機會離線評定來源和目標結構描述,並進行補救,再將結構描述發佈到您的 SQL Server 執行個體。

移轉資料庫

當您符合必要條件並完成與「移轉前」階段相關的工作之後,就可以開始執行結構描述和資料移轉。 移轉需要執行兩個步驟:發佈結構描述和移轉資料庫。

若要發佈結構描述並移轉資料庫,請執行下列步驟:

  1. 發佈結構描述。 在 [SQL Server 中繼資料總管] 窗格上,以滑鼠右鍵按一下資料庫,然後選取 [與資料庫同步]。 此動作會將 Oracle 結構描述發佈到您的 SQL Server 執行個體。

    Screenshot of the 'Synchronize with Database' command on the SQL Server Metadata Explorer pane.

  2. 檢閱來源專案與目標之間的對應,如下所示:

    Screenshot of the 'Synchronize with the Database' pane for reviewing database mapping.

  3. 移轉資料。 在 [Oracle 中繼資料瀏覽器] 窗格上,以滑鼠右鍵按一下您要移轉的結構描述或物件,然後選取 [移轉資料]。 或者,您也可以選取右上方的 [移轉資料] 索引標籤。

    若要移轉整個資料庫的資料,請選取資料庫名稱旁的核取方塊。 若要移轉個別資料表中的資料,請依序展開資料庫和 [資料表],然後選取資料表旁的核取方塊。 若要省略個別資料表中的資料,請清除此核取方塊。

    Screenshot of the Migrate Data links.

  4. 在 [移轉資料]窗格上,輸入 Oracle 和 SQL Server 的連線詳細資料。

  5. 完成移轉之後,請檢視 [資料移轉報告]。

    Screenshot of the Data Migration Report.

  6. 使用 SQL Server Management Studio (SSMS) 連線至您的 SQL Server 執行個體,然後檢閱資料和結構描述來驗證移轉。

    Screenshot of SQL Server Management Server.除了使用 SSMA 之外,您也可以使用 SQL Server Integration Services (SSIS) 來移轉資料。 若要深入了解,請參閱:

移轉後

成功完成移轉階段之後,您需要完成一系列的移轉後工作,以確保所有項目盡可能順暢且有效率地運作。

修復應用程式

在將資料移轉到目標環境之後,先前取用來源的所有應用程式都必須開始取用目標。 完成這個步驟需要對應用程式進行變更。

Data Access Migration Toolkit 是 Visual Studio Code 的延伸模組,可讓您分析 Java 原始程式碼,以及偵測資料存取 API 呼叫和查詢。 此工具組為您提供有關待解決項目的單一窗格檢視,以支援新資料庫後端。 若要深入了解,請參閱從 Oracle 移轉 Java 應用程式 (英文) 部落格。

執行測試

資料庫移轉的測試方法包含下列活動:

  1. 開發驗證測試:若要測試資料庫移轉,您需要使用 SQL 查詢。 您必須建立驗證查詢,以針對來源及目標資料庫執行。 驗證查詢應涵蓋已定義的範圍。

  2. 設定測試環境:測試環境應該包含來源資料庫及目標資料庫的複本。 請務必隔離測試環境。

  3. 執行驗證測試:對來源及目標執行驗證測試,然後分析結果。

  4. 執行效能測試:對來源及目標執行效能測試,然後分析並比較結果。

最佳化

移轉後階段對於協調任何資料精確度問題、驗證完整性以及解決工作負載的效能問題而言至關重要。

如需這些問題的詳細資訊及減輕問題的步驟,請參閱移轉後驗證和最佳化指南

移轉資產

如需獲得更多協助來完成此遷移,請參閱下列資源。 這些都是為了支援實際遷移專案活動而開發。

標題 說明
資料工作負載評定模型及工具 針對指定的工作負載,提供建議的「最適合」目標平台、雲端整備,以及應用程式/資料庫補救等級。 提供自動化和統一的目標平台決策程序,簡單按一下就能計算和報告,有助於加快評估大型資產。
Oracle 詳細目錄指令碼成品 包含叫用 Oracle 系統資料表的 PL/SQL 查詢,並依結構描述類型、物件類型和狀態來提供物件計數。 此外,也會提供每個結構描述中「原始資料」的粗略估計,以及每個結構描述中的資料表大小,並以 CSV 格式儲存這些結果。
自動化 SSMA Oracle 評定收集與彙總 這組資源使用 .csv 檔案 (專案資料夾中的 sources.csv) 作為輸入,產生在主控台模式中執行 SSMA 評定所需的 xml 檔案。 source.csv 檔案是由客戶依據現有 Oracle 執行個體的詳細目錄所提供。 輸出檔案為 AssessmentReportGeneration_source_1.xml、ServersConnectionFile.xml 和 VariableValueFile.xml。
移轉 Oracle 資料庫時可能碰到的 SSMA 問題和可能的因應措施 討論 Oracle 如何讓您在 WHERE 子句中指派非純量條件。 不過,SQL Server 不支援這種類型的條件。 因此,SSMA for Oracle 不會轉換 WHERE 子句中具有非純量條件的查詢,而是產生錯誤 O2SS0001。 這份白皮書提供了關於此問題的更多詳細資料,以及解決的方法。
Oracle 至 SQL Server 移轉手冊 (英文) 著重於將 Oracle 結構描述移轉到最新版本 SQL Server 基底的相關工作。 如果移轉需要對功能進行變更,請務必仔細考慮每項變更可能會對使用資料庫的應用程式造成的影響。
Oracle 移轉至 SQL Server - 資料庫比較公用程式 「SSMA for Oracle 測試器」是自動驗證資料庫物件轉換和資料移轉的建議工具,此工具是資料庫比較功能的超集。

如果您要尋找替代的資料驗證選項,可以使用「資料庫比較」公用程式,將所有或選定資料表、資料列和資料行中的資料,按資料列或資料行層級進行比較。

資料 SQL 工程小組開發這些資源。 此小組的核心任務是為資料平台遷移專案的複雜現代化排除障礙,加速遷移至 Microsoft 的 Azure 資料平台。