將 SQL Server 資料庫移轉至 Azure SQL Database

適用于:Azure SQL資料庫

在本文中,您將了解用來將 SQL Server 2005 或更新版本資料庫移轉至 Azure SQL Database 的主要方法。 如需移轉至 Azure SQL 受控執行個體的資訊,請參閱將 SQL Server 執行個體移轉至 Azure SQL 受控執行個體。 如需選擇用於移轉至 Azure SQL 移轉選項和工具的指南,請參閱移轉至 Azure SQL

移轉至單一資料庫或集區資料庫

將 SQL Server 2005 或更新版本的資料庫移轉至 Azure SQL Database 中有兩種主要方法。 第一種方法比較簡單,但在移轉期間需要一些可能較長期的停機時間。 第二種方法比較複雜,但可大幅免去移轉期間的停機時間。

不論是哪一種方法,您都需要使用 Data Migration Assistant (DMA) 來確定來源資料庫與 Azure SQL Database 相容。 除了伺服器層級和跨資料庫作業的問題相關之外,SQL Database 的功能正逐漸與 SQL Server 的功能相等。 依賴部分支援或未支援功能的資料庫和應用程式需要一些再造來修正這些不相容情況,然後才能移轉 SQL Server 資料。

注意

若要將非 SQL Server 資料庫 (包括 Microsoft Access、Sybase、MySQL Oracle 和 DB2) 移轉到 Azure SQL Database,請參閱 SQL Server 移轉小幫手

方法 1:在移轉期間會停機的移轉作業

如果您可負擔部分停機時間,或是要執行生產環境資料庫的測試移轉以便稍後進行移轉,請使用此方法來移轉至單一或集區資料庫。 如需教學課程,請參閱移轉 SQL Server Database

下列清單包含使用此方法來進行 SQL Server 資料庫之單一或集區資料庫移轉時的一般工作流程。 若要移轉至 SQL 受控執行個體,請參閱將 SQL Server 移轉到 Azure SQL 受控執行個體指南

VSSSDT 移轉圖表

  1. 使用最新版的 Data Migration Assistant (DMA) \(英文\) 來評估 \(英文\) 資料庫的相容性。
  2. 準備 Transact-SQL 指令碼形式的任何必要修正。
  3. 針對要移轉的來源資料庫建立交易一致性複本,或是在進行移轉時,防止在來源資料庫中進行新交易。 完成後面這個選項的方法包括停用用戶端連線或建立資料庫快照集。 移轉之後,您可能能夠使用異動複寫來更新所移轉的資料庫,以反映在移轉截止點之後所發生的變更。 請參閱使用異動移轉來進行移轉
  4. 部署 Transact-SQL 指令碼,將修正套用至資料庫複本。
  5. 使用 Data Migration Assistant 將資料庫複本移轉 至 Azure SQL Database 中的新資料庫。

注意

您也可以不使用 DMA,而是使用 BACPAC 檔案。 請參閱將 BACPAC 檔案匯入到 Azure SQL Database 中的新資料庫

將移轉期間的資料傳輸效能最佳化

下列清單包含可在匯入程序期間獲得最佳效能的建議。

  • 選擇預算許可的最高服務層級和計算大小,以獲得最大傳輸效能。 移轉完成後,您可以縮小層級以節省成本。
  • 盡量縮短 BACPAC 檔案和目的地資料中心之間的距離。
  • 在移轉期間停用自動統計資料
  • 分割區資料表與索引
  • 捨棄索引檢視表,然後於移轉完成後重新建立
  • 將鮮少查詢的歷程記錄資料移除到另一個資料庫,然後將此歷程記錄資料移轉至 Azure SQL Database 中不同的資料庫內。 您接著可以使用彈性查詢查詢此歷程記錄資料。

在移轉完成後將效能最佳化

在移轉完成後,執行完整掃描以更新統計資料

方法 2:使用異動複寫

當您在移轉發生時無法負擔從實際執行中移除 SQL Server 資料庫時,可以使用 SQL Server 異動複寫作為移轉解決方案。 若要使用此方法,來源資料庫必須符合異動複寫需求且與 Azure SQL Database 相容。 如需使用 AlwaysOn 的 SQL 複寫相關資訊,請參閱設定 AlwaysOn 可用性群組 (SQL Server) 的複寫

若要使用此解決方案,您需將 Azure SQL Database 中的資料庫設定為想要移轉 SQL Server 執行個體的訂閱者。 異動複寫散發者會在新交易繼續進行的同時,從要被同步處理的資料庫 (發行者) 同步處理資料。

使用異動複寫時,對您資料或結構描述所做的一切變更都會顯示在 Azure SQL Database 中的資料庫內。 同步處理完成且您已準備好進行移轉之後,請將您應用程式的連接字串變更成指向您的資料庫。 當異動複寫清空留在來源資料庫上的所有變更,並且您的所有應用程式都指向 Azure DB 之後,您便可以將異動複寫解除安裝。 您 Azure SQL Database 中的資料庫現在已是您的生產環境系統。

SeedCloudTR 圖表

提示

您也可以使用異動複寫以移轉來源資料庫的子集。 您複寫至 Azure SQL Database 的發佈可以限制為複寫的資料庫中資料表的子集。 針對要複寫的每一個資料表,您可以將資料限制在資料列的子集和 (或) 資料行的子集。

使用異動複寫工作流程移轉到 SQL Database

重要

請使用最新版的 SQL Server Management Studio 以便與 Azure 及 SQL Database 更新保持同步。 舊版 SQL Server Management Studio 無法將 SQL Database 設定為訂閱者。 更新 SQL Server Management Studio

  1. 設定散發套件

  2. 建立發佈

  3. 建立訂閱

一些秘訣和移轉至 SQL Database 的差異

  • 使用本機散發者
    • 這麼做會影響伺服器的效能。
    • 如果無法接受效能影響,您可以使用另一部伺服器,但它會增加管理和系統管理的複雜度。
  • 當選取快照集資料夾時,請確定您選取的資料夾足以容納要複寫的每個資料表 BCP。
  • 建立快照集會鎖定相關聯的資料表直到建立完成為止,因此請適當排程快照集。
  • Azure SQL Database 僅支援推送訂用帳戶。 您只能從來源資料庫新增訂閱者。

解決資料庫移轉相容性問題

您可能會發現各種不同的不相容問題,取決於來源資料庫中的 SQL Server 版本,以及您正在移轉的資料庫複雜度。 舊版 SQL Server 有更多的相容性問題。 除了使用您選擇之搜尋引擎的目標網際網路搜尋之外,請使用下列資源︰

除了搜尋網際網路和使用這些資源,另請使用 Azure SQL Database 的 Microsoft 問答頁 (英文) 或 StackOverflow (英文)。

重要

「Azure SQL 受控執行個體」可在將相容性問題降到最低至零的情況下,讓您移轉現有的 SQL Server 執行個體及其資料庫。 請參閱什麼是受控執行個體

後續步驟