在 SQL Server (OracleToSQL) 安裝 SSMA 元件

除了安裝 SQL Server 移轉小幫手(SSMA),你還必須在執行 SQL Server 的電腦上安裝元件。 這些元件包括支援資料遷移的 SSMA 擴充包,以及 Oracle 提供者以實現伺服器間的連接。

適用於 Oracle 的 SSMA 擴充套件包

SSMA 擴充包部署擴充的儲存程序,並將資料庫加入sysdb指定的 SQL Server 實例中。 擴充的儲存程序提供模擬 Oracle 功能與行為所需的功能,而 sysdb 資料庫則包含遷移資料所需的資料表與儲存程序。

備註

擴充儲存程序在 SQL Server 中已被棄用,未來版本將被移除。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 改用建立 通用語言執行時(CLR)程序 。

此外,當你將資料遷移到 SQL Server 時,當伺服器端的資料遷移引擎用於遷移資料時,SSMA 會建立 SQL Server 代理工作。

先決條件

在你在 SQL Server 上安裝 SSMA for Oracle 伺服器元件之前,請確保系統符合以下要求:

  • Windows 11 及更新版本,或是 Windows Server 2022 及更新版本。

  • .NET Framework 4.7.2 版或更新版本。 下載 .NET Framework。

  • 已安裝一個 SQL Server 實例。

  • Oracle 的 OLE DB 提供者(如果使用 OLE DB),以及你想遷移的 Oracle 資料庫的連接。 你可以從 Oracle 產品媒體或 Oracle 網站安裝服務提供者。

    這很重要

    SSMA 擴充套件的延伸預存程序與 UTF-8 伺服器定序 不相容(例如 Latin1_General_100_CI_AI_SC_UTF8)。 SSMA 產生的函式將輸出參數宣告為 varchar(max),內部 ODBC 驅動程式會將其映射到舊有的 LOB 類型。 在使用 UTF-8 整合的伺服器上, master 資料庫也會使用 UTF-8,這會導致擴充儲存程序的迴圈呼叫失敗。 使用 ODBC 驅動程式 17 時,這種失誤會產生無聲的錯誤結果。 使用 ODBC 驅動程式 18 時,您會收到錯誤訊息: Cannot convert to text/ntext or collate to 'Latin1_General_100_CI_AI_SC_UTF8'。 如果您的伺服器使用 UTF-8 定序,請勿依賴 SSMA 擴充套件的延伸預存程序。

  • SQL Server 瀏覽器服務必須在安裝時持續執行。 該服務會在設定精靈中填入 SQL Server 實例清單。 安裝後你可以停用 SQL Server 瀏覽器服務。

    如果 SQL Server 瀏覽器服務正在執行,但在設定中仍看不到實例清單,你必須解除封鎖 UDP 埠 1434。 你可以用 Windows 防火牆暫時解除埠口封鎖,或者暫時停用 Windows 防火牆。 你可能還得暫時停用防毒軟體。 安裝後務必啟用防火牆和防毒軟體。

安裝擴充包

你可以在遷移資料到 SQL Server 之前,隨時安裝擴充包。

這很重要

要安裝擴充包,您必須是 SQL Server 實例中系統管理員固定伺服器角色的成員。

安裝擴充包:

  1. 複製SSMAforOracleExtensionPack_<n>.msi(其中<n>是建置號)到執行 SQL Server 的電腦。

  2. 雙擊 MSI 就能執行。

  3. 在 [歡迎] 頁面上,選取 [下一步] 。

  4. 在 End-User 授權協議 頁面,請閱讀授權協議。 如果您同意,請選取 [我接受合約],然後選取 [下一步]。

  5. 在 [Choose Setup Type] 頁面,選取 [Typical]。

  6. 在 [已可安裝] 頁面上,選取 [安裝] 。

  7. 在 「完成安裝第一步 」頁面,選擇 「下一步」。

    會出現一個新的對話框。 選擇擴充包類型。

  8. 選擇想要的安裝類型,然後選擇 下一步。

    這很重要

    只有在 Linux 上執行的 SQL Server 安裝擴充包,或是針對 Azure SQL 受控執行個體 安裝擴充包時,才使用遠端選項。 對於在 Windows 上執行的 SQL Server 安裝,請一律於本機安裝擴充套件。 Azure SQL Database 和 Azure Synapse Analytics 不支援擴充包。

    如果你在本地 SQL Server 實例安裝擴充包,你可以選擇一個本地的 SQL Server 實例,將 Oracle 架構遷移到那裡。 在下拉選單中選擇一個實例,然後選擇 「下一步」。

    預設實例名稱與電腦相同。 已命名的實例後面會跟著一個反斜線和實例名稱。

  9. 在連線頁面,選擇驗證方式,然後選擇 下一步。

    Windows 認證會利用你的 Windows 憑證嘗試登入 SQL Server 實例。 選擇伺服器認證時,必須輸入 SQL Server 登入名稱和密碼。

  10. 下一步你需要設定主金鑰密碼,以加密伺服器端資料遷移期間儲存在擴充包資料庫中的任何敏感資料。 輸入強密碼並選擇 下一步。

  11. 在下一頁,選擇 「安裝工具資料庫 n 」和「安裝擴充包」函式庫,其中 n 是版本號,然後選擇 「下一步」。

    sysdb資料庫由資料表建立,資料遷移所需的儲存程序則在此資料庫中建立(使用伺服器端資料遷移引擎)。

  12. 安裝完成後,會跳出提示,詢問是否要在另一個 SQL Server 實例上安裝 Utilities Database。 選擇 「是」,然後選擇 「下一步」。 要退出精靈,請選擇 「不」 ,然後再選擇 「退出」。

  13. 在 SQL Server Management Studio 或使用 sqlcmd 該工具時,執行以下腳本以啟用 CLR:

    EXECUTE sp_configure 'clr enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    

    若未啟用 CLR,當 SSMA 連接 SQL Server 時,會收到以下錯誤:

    SSMA could not retrieve the extension pack assembly version information. Reinstall the extension pack on the database server.
    

SQL Server 資料庫物件

安裝擴充套件後,ssma_oracle.bcp_migration_packages 表格會出現在 sysdb 資料庫中。

每次你將資料遷移到 SQL Server,SSMA 都會建立一個 SQL Server 代理工作。 這些作業名為 ssma_oracle data migration package {GUID},您可以在 SQL Server Management Studio 的 SQL Server Agent 節點下的 [作業] 資料夾中看到它們。

以下擴充的儲存程序被加入資料庫:master

  • xp_ora2ms_exec2
  • xp_ora2ms_exec2_ex
  • xp_ora2ms_versioninfo2