練習 - 透過還原 Azure SQL 資料庫來復原資料
試驗還原是任何嚴重損壞修復策略的重要元件。
您需要熟悉在必要時,將已備份的資料庫還原至特定時間點的步驟。 您也需要調查還原作業需要多久時間。 如此一來,您可以在貴組織的指引中規劃此時間。
讓我們將會從自動化的 Azure SQL Database 備份執行還原。
確認備份為作用中
最長可能需要 15 分鐘的時間,才能完成第一次成功的備份。 我們必須先確定備份正在執行,再繼續進行練習。
在 Azure Cloud Shell 中,執行下列 PowerShell 命令,將變數設為您 SQL Server 執行個體的值:
$sqlserver=Get-AzSqlServer
使用此指令驗證連續備份是否正在執行:
Get-AzSqlDatabaseRestorePoint ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -DatabaseName sql-erp-db ` -ServerName $sqlserver.ServerName
如果您的備份正在執行,則應該會看到類似下列程式碼的輸出。 如果命令未傳回任何值,則表示備份尚未開始。 請在幾分鐘後重新執行此命令。
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> ServerName : erpserver-53903 DatabaseName : sql-erp-db Location : East US RestorePointType : CONTINUOUS RestorePointCreationDate : EarliestRestoreDate : 9/24/19 4:21:21 PM RestorePointLabel :
RestorePointType
是CONTINUOUS
,表示備份會自動進行。EarliestRestoreDate
表示第一次備份的時間戳記。 備份準備就緒後,讓我們繼續進行練習。
從資料庫卸載資料表
讓我們從模擬錯誤的資料庫修改開始著手。
在 [Azure 入口網站] 功能表上,或從 [首頁] 頁面中,依序選取 [所有資源]、[erpserver-NNNN]、[SQL 資料庫],然後選取 [sql-erp-db] 資料庫。
選取 [查詢編輯器 (預覽)],然後使用 dbadmin 使用者和您為此帳戶指定的密碼登入。
讓我們卸載先前建立的 Person 資料表。 在新的查詢視窗中,執行此命令。
DROP TABLE Person
若要檢查資料庫中的資料表,請選取 [新增查詢]。 接著,在 [查詢 2] 視窗中,執行此命令以列出資料庫中的所有資料表:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables t ORDER BY schema_name, table_name;
您應該會看到傳回「沒有結果」,因為我們刪除了 Person 資料表。
執行還原時間點
已誤刪 Person 資料表。 現在,讓我們將資料庫還原到先前的狀態。
在 [Azure 入口網站] 功能表上,或從 [首頁] 頁面,選取 [所有資源],然後選取 sql-erp-db 資料庫。
在 [概觀] 頁面頂端,選取 [還原]。
使用這些值完成 [還原資料庫] 頁面上的 [基本資料] 索引標籤,然後選取 [檢閱 + 建立]。
設定 值 選取來源 時間點 資料庫名稱 sql-erp-db-xxxxx 還原點 在卸載 Person 資料表之前,請選取 10 分鐘前的時間 伺服器 erpserver-xxxxx 想使用 SQL 彈性集區嗎? No 計算 + 儲存體 預設值 [備份儲存體備援] 本機備援備份儲存體 選取 建立。 資料庫還原需要幾分鐘的時間才能完成。
檢視還原的資料庫
還原的資料庫應該包含 Person 資料表。 您可以在入口網站中進行檢查。
在 [Azure 入口網站] 功能表上,或從 [首頁] 頁面,選取 [所有資源],然後選取 [sql-erp-db-restored] 資料庫。
選取 [查詢編輯器 (預覽)],然後使用 dbadmin 使用者和您為此帳戶指定的密碼登入。
若要檢查資料庫中的資料表,請在 [查詢 1] 視窗中執行此命令:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables t ORDER BY schema_name, table_name;
現在應該會顯示 Person 資料表。
執行此命令以確認資料位於資料表中:
SELECT * FROM Person
您應該會看到您先前輸入的資料。
您現在已了解如何在資料發生非預期狀況時還原資料庫。 您已熟悉還原程序。 您現在可以向貴組織確保您已正確定義您的備份及還原程序。