在建立應用一致性快照時,系統會暫停正在寫入的資料,確保快照捕獲到的資料的完整性和一致性。通過應用一致性快照復原雲端硬碟,資料不會損壞和丟失,可以確保應用(例如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位)來驗證應用一致性快照的資料備份效果為例,請您根據實際環境進行操作。
步驟一:準備資料庫驗證環境
準備資料庫驗證環境,用於後續驗證應用程式與資料庫的互動是否正常。
遠端連線ECS執行個體。
具體操作,請參見通過密碼或密鑰認證登入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
按右鍵執行。
在左側分類樹中,您可以查看建立的資料庫和表。
步驟二:為ECS執行個體授予RAM角色
開啟應用一致性快照前,必須先為ECS執行個體配置相關的RAM角色,賦予ECS執行個體查詢快照、建立快照等相關許可權。
登入RAM控制台。
建立應用一致性快照相關的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執行個體建立應用一致性快照。
進入ECS執行個體列表頁面。
登入ECS管理主控台。
在左側導覽列,選擇 。
在頂部功能表列處,選擇目標ECS執行個體所在地區。
找到目標執行個體,在操作列選擇
。在建立快照一致性組對話方塊中,設定參數。
選擇需要建立快照一致性組的ESSD雲端硬碟並設定其他快照參數。
設定應用一致性快照,選中啟用應用一致性快照和是否預設包含Writer。
單擊確定。
建立後會返回雲助手命令ID和命令執行ID,您可以根據命令執行ID查看建立結果。
步驟四:驗證是否成功建立應用一致性快照
此操作介紹如何在ECS管理主控台查看應用一致性快照建立結果,並在資料庫中查看資料暫停提交的效果。
在雲助手頁面,查看命令執行結果。
在雲助手的返回資訊中,查看快照一致性組建立過程資訊。
檢查一致性組件,如果沒有則自動安裝。
自動識別並載入邏輯卷。
自動加入SQL Server中相應的資料庫。
快照暫停資料庫寫入時間點為
2021-08-05 16:42:59
。
在快照頁面查看快照一致性組和雲端硬碟快照資訊。
在左側導覽列,選擇 。
單擊快照一致性組頁簽,找到已建立的快照一致性組,單擊快照一致性組ID查看快照詳情。
在快照資訊地區,根據快照的標籤資訊,檢查是否成功建立應用一致性快照。
樣本中雲端硬碟快照的標籤顯示
APPConsistent:True
,表示建立的是應用一致性快照。
串連SQL Server資料庫,查看資料暫停提交時間。
遠端連線ECS執行個體。
具體操作,請參見通過密碼或密鑰認證登入Windows執行個體。
通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。
單擊建立查詢。
在查詢時段中,輸入以下SQL語句。
USE AdventureWorks select * from PointInTime GO
按右鍵執行。
在查詢結果中,您可以發現在暫停時間段內,資料庫沒有寫入記錄插入進來。
步驟五:驗證通過應用一致性快照恢複資料的效果
先通過應用一致性快照恢複資料,然後將SQL Server資料最後寫入時間與prescript.sh指令碼執行的時間做對比,來判斷應用一致性快照的資料恢複是否正確。
在ECS管理主控台,通過上面建立的快照一致性組復原ECS執行個體。
具體操作,請參見通過快照一致性組復原雲端硬碟。
登入SQL Server並查詢資料庫表PointInTime的內容。
遠端連線ECS執行個體。
具體操作,請參見通過密碼或密鑰認證登入Windows執行個體。
通過Microsoft SQL Server Management Studio 18串連SQL Server資料庫。
單擊建立查詢。
在查詢時段中,輸入以下SQL語句。
USE AdventureWorks select * from PointInTime GO
按右鍵執行。
在查詢結果中,您可以查看恢複資料後最後一條記錄的時間點。
資料庫暫停成功之前會停止插入資料。使用應用一致性的快照一致性組恢複資料後,最後一條資料對應的時間為
2021-08-05 16:42:57.
,早於步驟四中查詢的暫停時間點2021-08-05 16:42:59.9732143
。因此證明關於SQL Server的應用一致性快照備份的結果是正確的。