使用 Azure 資料庫移轉服務的相關常見問題集

本文列出使用 Azure 資料庫移轉服務的相關常見問題集以及相關解答。

概觀

何謂 Azure 資料庫移轉服務?

Azure 資料庫移轉服務是一個完全受控的服務,能夠從多個資料庫來源無縫移轉到 Azure 資料平台,將停機時間降到最低。 服務目前已正式發行,後續開發重點放在下列工作:

  • 可靠性和效能。
  • 反覆新增來源目標組。
  • 持續投資無衝突的移轉。

Azure 資料庫移轉服務目前支援哪些來源/目標組?

服務目前支援各種來源/目標群組或移轉案例。 如需每個可用移轉案例狀態的完整清單,請參閱 Azure 資料庫移轉服務支援的移轉案例狀態一文。

Azure 資料庫移轉服務支援使用哪些版本的 SQL Server 作為來源?

從 SQL Server 移轉時,Azure 資料移轉服務的支援來源SQL Server 2008 和更新版本。 如果您使用 Azure Data Studio 搭配 SQL 移轉延伸模組,則支援的來源會SQL Server 2008 到 SQL Server 2022。

使用Azure 資料移轉服務時,離線移轉與線上移轉之間的差異為何?

您可以使用 Azure 資料移轉服務來執行離線和線上移轉。 若使用離線移轉,當移轉開始時,應用程式也會開始停機。 若使用線上移轉,則只會在移轉結束時於完全移轉期間停機。 建議您先測試離線移轉來決定停機時間是否在容忍範圍內;如果無法容忍,則請進行線上移轉。

注意

若要使用「Azure 資料庫移轉服務」來執行線上移轉,必須根據「進階」定價層建立執行個體。 如需詳細資訊,請參閱 Azure 資料庫移轉服務的定價頁面。

Azure 資料庫移轉服務和其他 Microsoft 資料庫移轉工具 (例如,資料庫移轉小幫手 (DMA) 或 SQL Server 移轉小幫手 (SSMA)) 相較之下,孰優孰劣?

若要將資料庫大規模移轉至 Microsoft Azure,建議您使用 Azure 資料庫移轉服務這個方法。 如需Azure 資料移轉服務與其他 Microsoft 資料庫移轉工具比較的詳細資訊,以及針對各種案例使用服務的建議,請參閱區分 Microsoft 的資料庫移轉工具和服務

Azure 資料庫移轉服務和 Azure Migrate 供應項目相較之下,孰優孰劣?

Azure Migrate 可協助將內部部署虛擬機器移轉至 Azure IaaS。 此服務會評估移轉適用性,以及如何根據效能來調整大小,並估計在 Azure 中執行內部部署機器的成本。 Azure Migrate 可用來將內部部署的 VM 型工作負載隨即移轉到 Azure IaaS VM。 不過,不同于Azure 資料移轉服務,Azure Migrate 不是 Azure PaaS 關係資料庫平臺的特殊資料庫移轉服務,例如 Azure SQL Database 或 Azure SQL 受控執行個體。

資料移轉服務會儲存客戶資料嗎?

否。 資料移轉服務不會儲存客戶資料。

安全性

建立和執行 DMS 實例時,會建立及取用哪些服務?

下列清單包含可在幕後建立以執行資料移轉的 Azure 資源。 所使用的服務可能會因移轉案例而異。

  • Azure 監視器
  • Azure VM
  • Azure 儲存體
  • Azure 服務匯流排
  • Azure Data Factory

如何從來源擷取中繼資料和用戶端資料,並將其寫入目標?

在內部,DMS 會維護中繼資料存放區,其中包含網路位置、認證、備份檔案和工作完成的相關資訊。 認證和選取的欄位會加密,例如帳戶金鑰。 資料會雜湊,例如可能包含在遙測中的資料表名稱。 使用者名稱可能會在服務記錄中以純文字顯示,但密碼永遠不會出現。 遙測依區域、受保留原則控管,且僅適用于 Microsoft 內的授權人員,以供有效疑難排解之用。 Azure 資源名稱,例如伺服器和資料庫名稱,遵循 Azure 資源的規則。

DMS (傳統) 利用Azure 服務匯流排主題來促進計算層之間的通訊。 Azure 服務匯流排主題對每個 DMS 實例而言都是唯一的,而且所有個人資料都會加密。

Azure 虛擬機器上的Azure SQL 受控執行個體和SQL Server

架構和資料會使用備份和還原進行移轉。 客戶可以選擇從網路共用或直接從儲存體容器還原。 可能會取用包含 Windows 效能資料的檔案,以提供選擇性 (,但強烈建議) 工作負載大小調整建議。

Azure SQL Database

移轉至 Azure SQL 資料庫會以兩個步驟執行。 第一個步驟是架構移轉。 DMS (傳統) 會使用 SQL 管理物件 (SMO) 進行架構移轉。 第二個步驟是實際的資料移轉。 SqlBulkCopy 可用來執行資料移轉。 DMS 不支援架構移轉。 資料會使用 Azure Data Factory 進行移轉。 選擇性但強烈建議使用包含 Windows 效能資料的檔案,以提供工作負載大小調整建議。

適用於 PostgreSQL 的 Azure 資料庫

在此案例中,終端使用者會使用 pg_dumppg_restore 命令列公用程式來擷取中繼資料,在此案例中為架構。 設定 PostgreSQL 的異動資料擷取時,DMS 會在內部使用 pg_dumppg_restore 執行 CDC 的初始植入。 資料會儲存在只有 DMS 實例可存取的加密暫存儲存體中。 可能會取用包含 Windows 效能資料的檔案,以提供選擇性 (,但強烈建議) 工作負載大小調整建議。

適用於 MySQL 的 Azure 資料庫

在此案例中,DMS 會使用 mysql-net/MySqlConnector (傳統) 來完成架構擷取和移轉。 可能的話,MySQL 二進位記錄複寫是用來複寫資料和架構變更。 自訂程式碼可用來同步處理無法使用 binlog 複寫的變更。

MongoDB 至 Azure Cosmos DB

DMS 會從 MongoDB 擷取資料,並將其插入 Cosmos DB。 它也提供從 BSON 或 JSON 傾印擷取資料的選項。

針對 BSON 傾印,DMS 會使用 Blob 容器內相同資料夾內格式的資料 bsondump 。 DMS 只會使用 格式 collection.metadata.json 尋找中繼資料檔案。

針對 JSON 傾印,DMS 會讀取 Blob 容器檔案夾中的檔案,其名稱為包含的資料庫。 在每個資料庫檔案夾中,DMS 只會使用放在子資料夾中的 data 資料檔案。 DMS 只會查看位於子資料夾中的檔案, metadata 並使用中繼資料的格式 collection.json 來命名。

Oracle to Azure SQL Database

在此案例中,會取用 AWR 報表或 Windows perfmon 檔案來提供選擇性 (,但強烈建議) 工作負載大小調整建議。 執行移轉的使用者會使用 資料庫結構描述轉換工具組 來執行架構移轉,以準備目標資料庫。

Oracle 至 適用於 PostgreSQL 的 Azure 資料庫

與 Oracle Azure SQL 資料庫類似,在此案例中,會使用 AWR 報表或 Windows perfmon 檔案來提供選擇性 (,但強烈建議) 工作負載調整大小建議。 連結 ora2pg 庫是用來擷取架構,並由執行移轉的使用者手動移轉資料。

是否有使用任何公用端點?

DMS (傳統) 依賴客戶網路設定。 如果移轉來源使用私人端點,我們會使用私人端點,這是慣用的組態。 如果公用端點是唯一的選項,我們會使用公用端點。

DMS 會在幕後大量使用 ADF 來排程及協調資料移動。 此外,Self-Hosted Integration Runtime與您可能已經用於自己的 ADF 管線的不同。 如需防火牆和 Proxy 伺服器問題的詳細資訊,請參閱 建立和設定自我裝載整合執行時間

傳輸和待用中的所有資料是否加密?

所有客戶資料都會在待用時加密。 某些中繼資料,包括但不限於邏輯伺服器名稱和資料庫名稱,以及移轉狀態和移轉進度會出現在未加密的服務記錄中。

傳輸中的所有資料預設都會受到 TLS 1.2 加密的保護。 需要舊版 TLS 的舊版用戶端,需要 DMS (傳統) 入口網站頁面中啟用的必要版本。 針對 DMS,可以設定安裝Self-Hosted Integration Runtime的電腦,以允許必要的 TLS 設定來容納舊版用戶端。 如需 SQL Server TLS 組態的詳細資訊,請參閱KB3135244 - Microsoft SQL Server的 TLS 1.2 支援

所有支援 DMS 和 DMS 的 Azure 服務是否 (傳統) 使用私人端點?

盡可能使用私人端點。 如果私人端點不是選項,則公用端點會用於服務層級之間的通訊。 不論端點類型為何,所有資源都是專用/限定于特定 DMS 實例,並使用唯一認證來保護。

支援 DMS 和 DMS 的所有 Azure 服務是否 (傳統) 使用 CMK 進行待用資料?

我們不支援客戶管理金鑰,以加密資料平面或控制平面內的資料。 不過,所有客戶資料都會使用服務所管理的金鑰來加密待用資料。 某些中繼資料,包括但不限於邏輯伺服器名稱和資料庫名稱,以及移轉狀態和進度會顯示在未加密格式的服務記錄中。

傳輸中的資料會使用哪種加密類型?

傳輸中的所有資料預設都會使用 TLS 1.2 加密進行加密。 DMS (傳統) 入口網站頁面允許舊版 TLS 用於舊版用戶端。 針對 DMS,可以設定安裝Self-Hosted Integration Runtime的電腦,以允許管理 TLS 設定以容納舊版用戶端。 如需 SQL Server TLS 組態的詳細資訊,請參閱KB3135244 - Microsoft SQL Server的 TLS 1.2 支援

是否有任何不受 CMK 保護的資料,以及哪種類型的資料? 例如,中繼資料、記錄等等。

我們不會公開使用客戶管理金鑰來加密控制項或資料平面上的資料的功能。 所有客戶資料都會在刪除 DMS 實例時刪除,但服務記錄除外。 DMS 服務記錄只會保留 30 天。

DMS 如何支援客戶管理的金鑰 (CMK) ?

TDE

DMS 支援將客戶管理的金鑰 (CMK) 移轉至透明資料庫加密 (TDE) 的Azure SQL。 如需移轉 TDE 金鑰的逐步指示,請參閱教學課程:將已啟用 TDE 的資料庫 (預覽) 移轉至 Azure Data Studio 中的Azure SQL

儲存格加密

資料格層級加密是在架構層級處理。 架構移轉工具會移轉所有架構物件,包括實作資料格層級加密所需的函式和預存程式。

Always Encrypted

DMS 目前不支援透過在來源和目標之間移轉個別資料列的案例來移轉Always Encrypted。 透過Always Encrypted加密的資料行會在使用備份/還原的案例中如預期般移轉,例如從現有的SQL Server實例移至Azure SQL VM 或Azure SQL受控實例。

DMS 是否確保使用位置感知存取控制控制資料的存取?

我們不會在 Azure 中已提供的任何位置感知存取控制之外實作任何位置感知存取控制。 與 DMS 實例相關聯的所有資料都位於與 DMS 資源相同的區域中。

DMS 如何確保某個環境中的資料無法使用 DMS 移至另一個環境?

我們的服務會用於具有不同內部控制和商務程式的各種環境中。 DMS 會將資料從 和 移至其所使用的帳戶可存取的任何位置。 使用者必須負責瞭解其工作環境的許可權和內部控制。 請務必確定 DMS 用來連線到來源的帳戶具有存取權,以查看要從來源移轉的所有資料。

如何在 DMS 中插入 VNET (傳統) ? 它是否可讓 Microsoft 存取我的網路?

VNET 插入 是將位於 Microsoft 租使用者內的 Azure 資源新增至客戶租使用者下 VNet 中的子網的動作。 在 DMS 中採用這種方法,可讓我們代表客戶管理計算,同時仍維持客戶資源的存取權。 由於網路位於客戶訂用帳戶中,因此 Microsoft 無法管理 VM,而無法發出啟動、停止、刪除或部署命令。 所有其他需要存取 VM 的管理動作都需要客戶起始的支援要求和核准。

安裝程式

使用 Azure 資料庫移轉服務的必要條件為何?

您必須注意數個必要條件,以確保在執行資料庫移轉時,Azure 資料庫移轉服務能順利執行。 某些必要條件會套用到服務所支援的所有案例 (來源目標組),而有些必要條件則是特定案例獨有的。

Azure 資料庫移轉服務必要條件在所有支援的移轉案例中都是通用的,包含以下需求:

  • 使用 Azure Resource Manager 部署模型建立 Azure 資料庫移轉服務的 Microsoft Azure 虛擬網路,以使用 ExpressRouteVPN 為您的內部部署來源伺服器提供站對站連線能力。
  • 請確定您虛擬網路的網路安全性群組規則不會封鎖服務匯流排、儲存體和 Azure 監視器服務標籤的連接埠 443。 如需虛擬網路 NSG 流量篩選的詳細資訊,請參閱使用網路安全性群組來篩選網路流量
  • 使用來源資料庫前面的防火牆應用裝置時,您可能必須新增防火牆規則,才能讓 Azure 資料庫移轉服務存取來源資料庫,以進行移轉。

如需使用 Azure 資料庫移轉服務完成特定移轉案例所需的所有必要條件清單,請參閱 Azure 資料庫移轉服務文件中的相關教學課程。

要如何找到 Azure 資料庫移轉服務的 IP 位址,以便建立用來存取移轉來源資料庫之防火牆規則的允許清單?

請新增防火牆規則,允許 Azure 資料庫移轉服務存取移轉來源資料庫。 服務的 IP 位址是動態的,但如果您使用的是 ExpressRoute,則會由公司網路私下指派此位址。 若要識別適當的 IP 位址,最簡單的方式是查看和所佈建 Azure 資料庫移轉服務資源相同的資源群組,以尋找相關聯的網路介面。 網路介面資源的名稱通常會以 NIC 前置詞開頭,後面接著唯一的字元和數位序列,例如 'NIC-jj6tnztnmarpsskr82rbndyp'。 藉由選取此網路介面資源,您即可在 Azure 入口網站的 [資源概觀] 頁面上,看到必須包含在允許清單中的 IP 位址。

此外,您可能還需要在允許清單上包含 SQL Server 所接聽的連接埠來源。 根據預設,來源是連接埠 1433,但您也可以將來源 SQL Server 設定為接聽其他連接埠。 在此情況下,您也必須在允許清單上包含這些連接埠。 您可以使用動態管理檢視查詢來判斷 SQL Server 所接聽的連接埠:

SELECT DISTINCT
    local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL;

您也可以藉由查詢 SQL Server 錯誤記錄來判斷 SQL Server 所接聽的連接埠:

USE master;
GO
xp_readerrorlog 0, 1, N'Server is listening on';
GO

如何設定 Microsoft Azure 虛擬網路?

有多個 Microsoft 教學課程可逐步引導您完成虛擬網路的設定程序,至於官方文件,則會在 Azure 虛擬網路一文中出現。

使用方式

使用 Azure 資料庫移轉服務來執行資料庫移轉所需進行之步驟大致為何?

在典型的簡單資料庫移轉期間,您必須:

  1. 建立目標資料庫。
  2. 評估您的來源資料庫。
    • 若要進行同質移轉,請使用 DMA 評估現有的資料庫。
    • 若要進行異質移轉 (從競爭來源),請使用 SSMA 評估現有的資料庫。 您也可以使用 SSMA 來轉換資料庫物件,並將結構描述移轉至目標平台。
  3. 建立 Azure 資料庫移轉服務的執行個體。
  4. 建立移轉專案,以指定用於移轉的來源資料庫、目標資料庫和資料表。
  5. 啟動完整載入。
  6. 挑選後續驗證。
  7. 將生產環境手動轉換至新的雲端型資料庫。

疑難排解和最佳化

我在 DMS 中設定移轉專案,而且很難連線到源資料庫。 我該怎麼辦?

如果您在進行移轉時無法連線到來源資料庫系統,請在用於設定 DMS 執行個體的虛擬網路的同一個子網路中建立一台虛擬機器。 在虛擬機器中,您應該可以執行連線測試,例如使用 UDL 檔案來測試與 SQL Server 的連線,或下載 Robo 3T 以測試 MongoDB 連線。 如果連線測試成功,您就應該不會有連線到來源資料庫的問題。 如果連線測試失敗,請連絡您的網路管理員。

為什麼我的 Azure 資料庫移轉服務無法使用或已停止?

如果使用者明確停止Azure 資料移轉服務 (DMS) ,或服務處於非使用中狀態 24 小時,服務就會處於已停止或自動暫停的狀態。 在每個案例中,服務都無法使用且處於已停止狀態。 若要繼續使用中的移轉,請重新啟動服務。

是否有任何將 Azure 資料庫移轉服務效能最佳化的建議?

若要提升使用服務來移轉資料庫的速度,您可以執行幾項工作:

  • 在建立服務執行個體時,請使用多重 CPU 一般用途定價層,以讓服務充分利用多個 vCPU 來進行平行處理,提升資料轉送速度。
  • 在資料移轉作業期間,暫時將Azure SQL資料庫目標實例相應增加至進階層 SKU,以將Azure SQL資料庫節流降到可能會影響較低層級 SKU 時的資料傳輸活動。