全部產品
Search
文件中心

Elastic Compute Service:為SQL Server建立應用一致性快照最佳實務(Windows)

更新時間:May 20, 2025

在建立應用一致性快照時,系統會暫停正在寫入的資料,確保快照捕獲到的資料的完整性和一致性。通過應用一致性快照恢複資料時,可以減少資料損毀和丟失的風險,可以確保應用(例如SQL Server)能夠正常啟動,且資料與建立快照時的狀態一致。本文以在Windows Server 2019執行個體上部署Microsoft SQL Server 2019(64位)資料庫為例,驗證應用一致性快照的資料備份效果。

前提條件

  • ECS執行個體的雲端硬碟類型是ESSD雲端硬碟,且雲端硬碟未開啟多重掛載功能

  • ECS執行個體處於運行中且雲助手運行正常。如何查看雲助手狀態請參見查看雲助手狀態及異常狀態處理

  • 您已安裝Windows SQL Server資料庫。

  • 已為ECS執行個體配置應用一致性快照相關的RAM角色以及自訂權限原則。具體操作,請參見建立RAM角色並授予給ECS執行個體

    說明

    建立應用一致性快照時,需要調用雲助手訪問ECS執行個體並執行命令,因此需要通過RAM角色授予雲助手相應的許可權。

    • RAM角色:自訂,例如AppSnapshotRoleName。

    • 自訂權限原則:策略內容如下,表示在建立快照過程中具有查詢快照、建立快照、設定標籤和查詢雲端硬碟資訊等相關許可權。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:DescribeSnapshot*",
                      "ecs:CreateSnapshot*",
                      "ecs:TagResources",
                      "ecs:DescribeDisks"
                  ],
                  "Resource": [
                      "*"
                  ],
                  "Condition": {}
              }
          ]
      }

操作思路

本實踐通過如下操作來驗證,如何通過建立應用一致性快照來確保在建立快照的瞬間,資料庫狀態與建立快照時的狀態一致,從而保證應用一致性。操作流程如下:

  1. 步驟一:準備資料庫驗證環境

    建立資料庫表和預存程序,用於類比資料寫入操作,以便後續驗證應用一致性快照的效果。

  2. 步驟二:通過控制台建立應用一致性快照

    為SQL Server資料庫所在的Windows執行個體建立應用一致性快照。建立應用一致性快照時,資料庫的寫操作會暫時停止,確保資料一致性。

  3. 步驟三:驗證應用一致性快照是否建立成功

    通過雲助手命令執行結果確認應用一致性快照是否建立成功,並查看資料庫暫停和恢複寫操作的時間點。

  4. 步驟四:驗證通過應用一致性快照恢複資料的效果

    先通過應用一致性快照復原雲端硬碟,然後將SQL Server資料庫最後寫入時間與資料庫暫停時間做對比,來判斷應用一致性快照的資料恢複是否正確。

    • 如果SQL Server資料最後寫入時間早於資料庫暫停時間:說明資料庫在暫停期間沒有寫入操作,資料恢複後SQL Server資料最後寫入時間反映了暫停前的最後狀態,資料庫狀態與快照建立時的狀態一致。

    • 如果SQL Server資料最後寫入時間等於或晚於資料庫暫停時間:說明資料庫在暫停期間仍有寫入操作,應用一致性快照的效果未達到預期。

操作步驟

步驟一:準備資料庫驗證環境

  1. 遠端連線ECS執行個體。

  2. 串連SQL Server資料庫。

    1. 在左下角單擊搜尋按鈕,在搜尋欄中輸入ssms

    2. 單擊Microsoft SQL Server Management Studio 18

    3. 串連到伺服器對話方塊中,設定伺服器串連資訊,單擊串連

  3. Microsoft SQL Server Management Studio 18中,建立驗證需要的資料庫(AdventureWorks)。

    1. 單擊建立查詢

    2. 在查詢時段中,輸入以下SQL語句。

      CREATE DATABASE AdventureWorks;
    3. 按右鍵執行

  4. Microsoft SQL Server Management Studio 18中,建立驗證需要的資料庫表 (PointInTime)。

    1. 單擊建立查詢

    2. 在查詢時段中,輸入以下SQL語句。

      USE AdventureWorks
      GO
      IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'PointInTime' AND TYPE ='U')
      CREATE TABLE PointInTime (PIT datetime)
      WHILE ( 1 = 1 )
      BEGIN
          INSERT PointInTime SELECT GETDATE()
          WAITFOR DELAY '00:00:001'
      END
    3. 按右鍵執行

  5. 在左側分類樹中,您可以查看建立的資料庫和表。

步驟二:通過控制台建立應用一致性快照

  1. 訪問ECS控制台-快照一致性組

  2. 在頁面左側頂部,選擇目標資源所在的資源群組和地區。地區

  3. 快照一致性組頁簽中單擊建立快照一致性組

  4. 建立快照對話方塊中,設定快照一致性組參數。

    1. 資源類型預設選中執行個體

    2. 選擇單台執行個體及執行個體中的ESSD類型雲端硬碟。

    3. 展開進階配置,選中啟用應用一致性快照後,選中是否預設包含Writer

      說明

      Writer是VSS架構中的關鍵組件,Windows作業系統內建了許多Writer,負責確保在備份過程中資料的一致性。更多資訊,請參見磁碟區陰影複製服務

  5. 單擊確認

    建立後會返回雲助手命令執行ID,您可以根據命令執行ID查看建立結果。

步驟三:驗證應用一致性快照是否建立成功

  1. 單擊雲助手命令執行ID,在雲助手頁面查看執行結果。

    image

    如上圖所示,ExitCode傳回值為0,表示雲助手上建立應用一致性快照執行成功,此時回顯資訊中顯示建立應用一致性快照和快照一致性組ID。

    說明

    如果ExitCode傳回值不為0,請根據ExitCode錯誤碼資訊排查相關問題。更多資訊,請參見錯誤碼資訊

  2. 在雲助手的返回資訊中,查看快照一致性組建立過程資訊,確保建立的快照滿足資料完整性和可用性的要求。

    • 檢查一致性組件是否安裝(COM+、VSS)。

      image

    • 確保系統能夠正確識別並載入所有需要備份的邏輯卷。

      image

    • 查看是否自動加入SQL Server中相應的資料庫,保證資料庫的完整性和一致性。

      image

    • 快照在2025-03-03 13:53:30建立成功,表示在這一時間點捕獲快照資料,資料庫的寫入操作暫停。

      image

  3. 查看快照一致性組和雲端硬碟快照資訊。

    1. 訪問ECS控制台-快照一致性組

    2. 快照一致性組頁簽中找到已建立的快照一致性組,單擊快照一致性組ID查看快照詳情。

    3. 快照資訊地區,根據快照的標籤資訊,檢查是否成功建立應用一致性快照。

      樣本中雲端硬碟快照的標籤顯示APPConsistent:True,表示建立的是應用一致性快照。

      image

  4. 串連SQL Server資料庫,查看資料庫的暫停提交時間。

    1. 遠端連線ECS執行個體。

      具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體

    2. 通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。

    3. 單擊建立查詢

    4. 在查詢時段中,輸入以下SQL語句。

      USE AdventureWorks
      select * from PointInTime
      GO
    5. 按右鍵執行

    6. 在查詢結果中,查看資料庫的暫停時間點。

      您可以發現在2025-03-03 13:53:30~2025-03-03 13:53:33時間段內沒有插入資料,說明13:53:30暫停資料庫的寫入操作,13:53:33恢複了資料庫的寫入操作。

      image

步驟四:驗證通過應用一致性快照恢複資料的效果

  1. 通過已建立的快照一致性組復原雲端硬碟。

  2. 重新登入SQL Server資料庫並查詢資料庫表PointInTime的內容。

    1. 遠端連線ECS執行個體。

      具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體

    2. 通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。

    3. 單擊建立查詢

    4. 在查詢時段中,輸入以下SQL語句。

      USE AdventureWorks
      select * from PointInTime
      GO
    5. 按右鍵執行

    6. 在查詢結果中,查看恢複資料後資料庫最後一條記錄的時間點。

      您可以探索資料庫最後一條插入資料的時間點為2025-03-03 13:53:29,早於步驟三中查詢的暫停時間點2025-03-03 13:53:30,因此證明關於SQL Server的應用一致性快照備份的結果是正確的。

      image