前提條件
- ECS執行個體的作業系統屬于Windows Server 2019、Windows Server 2016或Windows Server 2012 R2。
- ECS執行個體中雲盤必須是ESSD類型雲盤,且檔案系統為EXT3、EXT4、XFS或NTFS。同時,不支援網絡檔案系統和共享檔案系統。
- ECS執行個體已安裝雲助手用戶端。具體操作,請參見 安裝雲助手用戶端
。
說明 2017年12月01日之後使用公共鏡像建立的ECS執行個體,已預設預裝雲助手用戶端。
- 您已經了解如何安裝和使用SQL Server資料庫。更多資訊,請參見官方文檔。
背景資訊
本文使用的驗證環境資訊如下所示。
環境 | 說明 |
ECS執行個體規格 | ecs.g7.2xlarge |
作業系統 | Windows Server 2019 資料中心版 64位中文版 |
雲盤 | ESSD雲盤 |
應用 | Microsoft SQL Server 2019(64位) 說明 如何安裝部署Microsoft SQL Server,請參見官方文檔。 |
操作流程
在操作之前,您已經安裝好Microsoft SQL Server 2019(64位)環境,此操作介紹如何準備資料庫驗證環境。
- 遠端連接配接ECS執行個體。具體操作,請參見 連接配接方式概述
- 連接配接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)。
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角色。
- 使用阿裡雲賬号登入 RAM控制台
- 建立應用一緻性快照相關的RAM角色。具體操作,請參見 建立可信實體為阿裡雲服務的RAM角色 。示例為建立一個AppSnapshotRoleName的RAM角色。
- 建立應用一緻性快照相關權限政策。具體操作,請參見 建立自定義政策
建立一個AppSnapshotPolicy權限政策,具有查詢快照相關資訊、建立快照、設定标簽和查詢雲盤資訊等相關權限。您可以直接使用以下政策内容。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:DescribeSnapshot*",
"ecs:CreateSnapshot*",
"ecs:TagResources",
"ecs:DescribeDisks"
],
"Resource": [
"*"
],
"Condition": {}
}
]
}
- 為RAM角色(AppSnapshotRoleName)設定自定義權限(AppSnapshotPolicy)。具體操作,請參見 為RAM角色授權
- 為目标執行個體設定RAM角色(AppSnapshotRoleName)。具體操作,請參見 授予執行個體RAM角色
此操作介紹如何在控制台為SQL Server資料庫所在的Windows執行個體建立應用一緻性快照。
- 進入ECS執行個體清單頁面。
-
- 登入 ECS管理控制台
- 在左側導航欄,選擇執行個體與鏡像 > 執行個體。
- 在頂部菜單欄處,選擇目标ECS執行個體所在地域。
- 找到目标執行個體,在操作列中選擇更多 > 雲盤和鏡像 > 建立執行個體快照。
- 在建立執行個體快照對話框中,設定執行個體快照參數并啟用快照極速可用功能。
-
- 關于執行個體快照參數設定,請參見 建立多個雲盤快照(執行個體快照)
- 關于快照極速可用功能,請參見 快照極速可用功能
- 在建立執行個體快照對話框中,選中啟用應用一緻性快照和是否預設包含Writer。
- 單擊确定。建立後會傳回雲助手指令ID和指令執行ID,您可以根據指令執行ID檢視建立結果。
此操作介紹如何在ECS管理控制台檢視應用一緻性快照建立結果,并在資料庫中檢視資料暫停送出的效果。
- 在雲助手頁面,檢視指令執行結果。
如上圖所示,ExitCode傳回值為
,表示雲助手上建立應用一緻性快照執行成功,此時回顯資訊中顯示建立應用一緻性快照和執行個體快照ID。
說明 如果ExitCode傳回值不為
,請根據ExitCode錯誤碼資訊排查相關問題。更多資訊,請參見
錯誤碼資訊- 在雲助手的傳回資訊中,檢視執行個體快照建立過程資訊。
-
- 檢查一緻性元件,如果沒有則自動安裝。
-
- 自動識别并加載邏輯卷。
-
- 自動加入SQL Server中相應的資料庫。
-
- 快照當機時間點為
2021-08-05 16:42:59
- 快照當機時間點為
- 在快照頁面檢視執行個體快照和雲盤快照資訊。
-
- 在左側導航欄,選擇存儲與快照 > 快照。
- 單擊執行個體快照頁簽,檢視已建立的執行個體快照。
- 單擊雲盤快照頁簽,根據快照的标簽資訊,檢查是否成功建立應用一緻性快照。示例中雲盤快照的标簽顯示
,表示建立的是應用一緻性快照。APPConsistent:True
- 連接配接資料庫,檢視資料暫停送出時間。
-
- 遠端連接配接ECS執行個體。
- 通過Microsoft SQL Server Management Studio 18連接配接SQL Server資料庫。
USE AdventureWorks
select * from PointInTime
GO
-
- 在查詢結果中,您可以發現在當機時間段内,資料庫沒有寫入記錄插入進來。
通過應用一緻性快照恢複資料後,檢查MySQL資料最後寫入時間是在應用當機腳本執行前,是以可以判斷應用一緻性快照的資料恢複有效果。
- 在ECS管理控制台,通過上面建立的執行個體快照復原ECS執行個體。具體操作,請參見 通過執行個體快照復原雲盤
- 登入SQL Server并查詢資料庫表PointInTime的内容。
USE AdventureWorks
select * from PointInTime
GO
-
- 在查詢結果中,您可以檢視恢複資料後最後一條記錄的時間點。
資料庫當機成功之前會停止插入資料。使用應用一緻性的執行個體快照恢複資料後,最後一條資料對應的時間為
2021-08-05 16:42:57.
,早于步驟四中查詢的當機時間點
2021-08-05 16:42:59.9732143
。是以證明關于SQL Server的應用一緻性快照備份的結果是正确的。