全部產品
Search
文件中心

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

更新時間:Sep 03, 2024

在建立應用一致性快照時,系統會暫停正在寫入的資料,確保快照捕獲到的資料的完整性和一致性。通過應用一致性快照復原雲端硬碟,資料不會損壞和丟失,可以確保應用(例如SQL Server)處於一致的啟動狀態。本文以在Windows執行個體部署SQL Server資料庫為例,驗證應用一致性快照的資料備份效果。

前提條件

  • ECS執行個體的作業系統屬於Windows Server 2012 R2及上版本。

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

  • ECS執行個體已安裝雲助手Agent。具體操作,請參見安裝雲助手Agent

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

操作步驟

本操作以Windows Server 2019作業系統安裝的Microsoft SQL Server 2019(64位)來驗證應用一致性快照的資料備份效果為例,請您根據實際環境進行操作。

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

準備資料庫驗證環境,用於後續驗證應用程式與資料庫的互動是否正常。

  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. 在左側分類樹中,您可以查看建立的資料庫和表。

步驟二:為ECS執行個體授予RAM角色

開啟應用一致性快照前,必須先為ECS執行個體配置相關的RAM角色,賦予ECS執行個體查詢快照、建立快照等相關許可權。

  1. 登入RAM控制台

  2. 建立應用一致性快照相關的RAM角色、為RAM角色授權並授予ECS執行個體。具體操作,請參見建立ECS執行個體RAM角色並授予給ECS。其中:

    • RAM角色:樣本名稱為AppSnapshotRoleName

    • 可信實體類型:阿里雲服務

    • 自訂權限原則:樣本名稱為AppSnapshotPolicy,內容如下:

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

      該策略具有查詢快照相關資訊、建立快照、設定標籤和查詢雲端硬碟資訊等許可權。

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

此操作介紹如何在控制台為SQL Server資料庫所在的Windows執行個體建立應用一致性快照。

  1. 進入ECS執行個體列表頁面。

    1. 登入ECS管理主控台

    2. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

    3. 在頂部功能表列處,選擇目標ECS執行個體所在地區。image.png

  2. 找到目標執行個體,在操作列選擇更多 > 雲端硬碟與鏡像 > 建立快照一致性組

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

    1. 選擇需要建立快照一致性組的ESSD雲端硬碟並設定其他快照參數。

    2. 設定應用一致性快照,選中啟用應用一致性快照是否預設包含Writer

  4. 單擊確定

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

    image.png

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

此操作介紹如何在ECS管理主控台查看應用一致性快照建立結果,並在資料庫中查看資料暫停提交的效果。

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

    1. 登入ECS管理主控台

    2. 在左側導覽列,選擇營運與監控 > 雲助手

    3. 單擊命令執行結果頁簽。

    4. 單擊目標命令執行ID,查看執行結果。

      win結果

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

      說明

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

  2. 在雲助手的返回資訊中,查看快照一致性組建立過程資訊。

    • 檢查一致性組件,如果沒有則自動安裝。檢查依賴

    • 自動識別並載入邏輯卷。邏輯卷

    • 自動加入SQL Server中相應的資料庫。資料庫

    • 快照暫停資料庫寫入時間點為2021-08-05 16:42:59凍結時間點

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

    1. 在左側導覽列,選擇儲存與快照 > 快照

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

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

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

      image

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

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

      具體操作,請參見通過密碼或密鑰認證登入Windows執行個體

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

    3. 單擊建立查詢

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

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

    6. 在查詢結果中,您可以發現在暫停時間段內,資料庫沒有寫入記錄插入進來。

      查看凍結時間

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

先通過應用一致性快照恢複資料,然後將SQL Server資料最後寫入時間與prescript.sh指令碼執行的時間做對比,來判斷應用一致性快照的資料恢複是否正確。

  1. 在ECS管理主控台,通過上面建立的快照一致性組復原ECS執行個體。

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

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

      具體操作,請參見通過密碼或密鑰認證登入Windows執行個體

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

    3. 單擊建立查詢

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

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

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

      恢複

      資料庫暫停成功之前會停止插入資料。使用應用一致性的快照一致性組恢複資料後,最後一條資料對應的時間為2021-08-05 16:42:57.,早於步驟四中查詢的暫停時間點2021-08-05 16:42:59.9732143。因此證明關於SQL Server的應用一致性快照備份的結果是正確的。