在建立應用一致性快照時,系統會暫停正在寫入的資料,確保快照捕獲到的資料的完整性和一致性。通過應用一致性快照恢複資料時,可以減少資料損毀和丟失的風險,可以確保應用(例如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": {} } ] }
操作思路
本實踐通過如下操作來驗證,如何通過建立應用一致性快照來確保在建立快照的瞬間,資料庫狀態與建立快照時的狀態一致,從而保證應用一致性。操作流程如下:
建立資料庫表和預存程序,用於類比資料寫入操作,以便後續驗證應用一致性快照的效果。
為SQL Server資料庫所在的Windows執行個體建立應用一致性快照。建立應用一致性快照時,資料庫的寫操作會暫時停止,確保資料一致性。
通過雲助手命令執行結果確認應用一致性快照是否建立成功,並查看資料庫暫停和恢複寫操作的時間點。
先通過應用一致性快照復原雲端硬碟,然後將SQL Server資料庫最後寫入時間與資料庫暫停時間做對比,來判斷應用一致性快照的資料恢複是否正確。
如果SQL Server資料最後寫入時間早於資料庫暫停時間:說明資料庫在暫停期間沒有寫入操作,資料恢複後SQL Server資料最後寫入時間反映了暫停前的最後狀態,資料庫狀態與快照建立時的狀態一致。
如果SQL Server資料最後寫入時間等於或晚於資料庫暫停時間:說明資料庫在暫停期間仍有寫入操作,應用一致性快照的效果未達到預期。
操作步驟
步驟一:準備資料庫驗證環境
遠端連線ECS執行個體。
具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
串連SQL Server資料庫。
在左下角單擊搜尋按鈕,在搜尋欄中輸入
ssms。單擊Microsoft SQL Server Management Studio 18。
在串連到伺服器對話方塊中,設定伺服器串連資訊,單擊串連。
在Microsoft SQL Server Management Studio 18中,建立驗證需要的資料庫(AdventureWorks)。
單擊建立查詢。
在查詢時段中,輸入以下SQL語句。
CREATE DATABASE AdventureWorks;按右鍵執行。
在Microsoft SQL Server Management Studio 18中,建立驗證需要的資料庫表 (PointInTime)。
單擊建立查詢。
在查詢時段中,輸入以下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按右鍵執行。
在左側分類樹中,您可以查看建立的資料庫和表。
步驟二:通過控制台建立應用一致性快照
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
在快照一致性組頁簽中單擊建立快照一致性組。
在建立快照對話方塊中,設定快照一致性組參數。
資源類型預設選中執行個體。
選擇單台執行個體及執行個體中的ESSD類型雲端硬碟。
展開進階配置,選中啟用應用一致性快照後,選中是否預設包含Writer。
說明Writer是VSS架構中的關鍵組件,Windows作業系統內建了許多Writer,負責確保在備份過程中資料的一致性。更多資訊,請參見磁碟區陰影複製服務。
單擊確認。
建立後會返回雲助手命令執行ID,您可以根據命令執行ID查看建立結果。
步驟三:驗證應用一致性快照是否建立成功
單擊雲助手命令執行ID,在雲助手頁面查看執行結果。

如上圖所示,ExitCode傳回值為
0,表示雲助手上建立應用一致性快照執行成功,此時回顯資訊中顯示建立應用一致性快照和快照一致性組ID。說明如果ExitCode傳回值不為
0,請根據ExitCode錯誤碼資訊排查相關問題。更多資訊,請參見錯誤碼資訊。在雲助手的返回資訊中,查看快照一致性組建立過程資訊,確保建立的快照滿足資料完整性和可用性的要求。
檢查一致性組件是否安裝(COM+、VSS)。

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

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

快照在
2025-03-03 13:53:30建立成功,表示在這一時間點捕獲快照資料,資料庫的寫入操作暫停。
查看快照一致性組和雲端硬碟快照資訊。
在快照一致性組頁簽中找到已建立的快照一致性組,單擊快照一致性組ID查看快照詳情。
在快照資訊地區,根據快照的標籤資訊,檢查是否成功建立應用一致性快照。
樣本中雲端硬碟快照的標籤顯示
APPConsistent:True,表示建立的是應用一致性快照。
串連SQL Server資料庫,查看資料庫的暫停提交時間。
遠端連線ECS執行個體。
具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。
單擊建立查詢。
在查詢時段中,輸入以下SQL語句。
USE AdventureWorks select * from PointInTime GO按右鍵執行。
在查詢結果中,查看資料庫的暫停時間點。
您可以發現在
2025-03-03 13:53:30~2025-03-03 13:53:33時間段內沒有插入資料,說明13:53:30暫停資料庫的寫入操作,13:53:33恢複了資料庫的寫入操作。
步驟四:驗證通過應用一致性快照恢複資料的效果
通過已建立的快照一致性組復原雲端硬碟。
具體操作,請參見通過快照一致性組復原雲端硬碟。
重新登入SQL Server資料庫並查詢資料庫表PointInTime的內容。
遠端連線ECS執行個體。
具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。
單擊建立查詢。
在查詢時段中,輸入以下SQL語句。
USE AdventureWorks select * from PointInTime GO按右鍵執行。
在查詢結果中,查看恢複資料後資料庫最後一條記錄的時間點。
您可以探索資料庫最後一條插入資料的時間點為
2025-03-03 13:53:29,早於步驟三中查詢的暫停時間點2025-03-03 13:53:30,因此證明關於SQL Server的應用一致性快照備份的結果是正確的。