使用每個租用戶一個資料庫的 SaaS 應用程式模式來還原單一租用戶

適用於:Azure SQL Database

每個租用戶一個資料庫這一模型可輕鬆地將單一租用戶還原到先前的時間點,而不會影響其他租用戶。

在本教學課程中,您將了解兩種資料恢復模式:

  • 將資料庫還原至平行資料庫 (並排)。
  • 將資料庫還原到位,取代現有的資料庫。
模式 描述
還原至平行資料庫 此模式可用於檢閱、稽核和合規性等工作,以允許租用戶從先前的時間點檢查其資料。 租用戶的目前資料庫會維持為線上狀態並保持不變。
還原到位 此模式通常用來在租用戶意外刪除或損毀資料之後,將租用戶復原到較早的時間點。 原始資料庫會離線,並取代為已還原的資料庫。

若要完成本教學課程,請確定已完成下列必要條件:

SaaS 租用戶還原模式簡介

還原個人租用戶資料有兩種簡單模式。 由於租用戶資料庫彼此隔離,因此還原一個租用戶不會影響任何其他租用戶的資料。 Azure SQL 資料庫時間點還原 (PITR) 功能用於這兩種模式。 PITR 一律會建立新資料庫。

  • 平行還原:在第一個模式中,會隨租用戶的目前資料庫一起建立新的平行資料庫。 租用戶接著會獲得還原資料庫的唯讀存取權。 可以檢閱還原的資料,並可用來覆寫目前的資料值。 由應用程式設計師決定租用戶如何存取已還原的資料庫,以及提供哪些恢復選項。 在某些情況下,只允許租用戶在稍早的時間點檢閱其資料。

  • 還原到位:如果資料遺失或損毀,且租用戶想要還原為先前的時間點,則第二個模式很有用。 還原資料庫時,租用戶會離線。 會刪除原始資料庫,並重新命名已還原的資料庫。 刪除之後,仍可存取原始資料庫的備份鏈結,因此您可以視需要將資料庫還原到先前的時間點。

如果資料庫使用作用中異地複寫與平行還原,建議您將任何必要資料從已還原的複本中複製到原始資料庫。 如果您將原始資料庫取代為還原的資料庫,則需要重新設定及重新同步異地複寫。

取得每一租用戶一個資料庫的 Wingtip Tickets SaaS 應用程式指令碼

可在 WingtipTicketsSaaS-DbPerTenant GitHub 存放庫中使用 Wingtip Tickets SaaS 多租用戶資料庫指令碼和應用程式來源程式碼。 如需有關下載和解除封鎖 Wingtip Tickets SaaS 指令碼的步驟,請參閱一般指引

在您開始使用 Intune 之前

建立資料庫時,可能需要 10 到 15 分鐘的時間,才能從中還原第一次完整備份。 如果剛剛安裝應用程式,可能需要等候幾分鐘,才能嘗試此方案。

模擬租用戶不小心刪除資料

為了展示這些恢復案例,請先「不小心」刪除其中一個租用戶資料庫中的事件。

開啟 [事件] 應用程式以檢閱目前的事件

  1. 開啟事件中樞 (http://events.wtp.<user>.trafficmanager.net),然後選取 Contoso Concert Hall

    A screenshot of the events hub page of the sample application. The entry for Contoso Concert Hall is boxed in red.

  2. 捲動事件清單,並記下清單中的最後一個事件。

    A screenshot from the sample application. The last event appears.

「不小心」刪除最後一個事件

  1. 在 PowerShell ISE 中,開啟 ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1,並設定下列值:

    • $DemoScenario = 1刪除最後一個事件 (沒有票證銷售)
  2. 按 F5 以執行指令碼,並刪除最後一個事件。 會出現下列確認訊息:

    Deleting last unsold event from Contoso Concert Hall ...
    Deleted event 'Seriously Strauss' from Contoso Concert Hall venue.
    
  3. Contoso 事件頁面隨即開啟。 向下捲動並確認事件已消失。 如果事件仍在清單中,請選取 [重新整理],並確認它已消失。 A screenshot from the sample application. The last event is removed.

與生產資料庫一起平行還原租用戶資料庫

本練習會將 Contoso Concert Hall 資料庫還原到刪除事件之前的時間點。 此案例假設您想要檢閱平行資料庫中已刪除的資料。

Restore-TenantInParallel.ps1 指令碼會建立名為 ContosoConcertHall_old 的平行租用戶資料庫,其中包含平行目錄項目。 此還原模式最適合復原輕微的資料遺失。 如果出於合規性或稽核目的而需要檢閱資料,也可以使用此模式。 使用作用中異地複寫時,建議使用此方法。

  1. 完成模擬租用戶不小心刪除資料一節。
  2. 在 PowerShell ISE 中,開啟 ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1
  3. 設定 $DemoScenario = 2平行還原租用戶
  4. 若要執行指令碼,請按 F5。

指令碼會將租用戶資料庫還原到刪除事件之前的時間點。 資料庫會還原至名為 ContosoConcertHall_old 的新資料庫。 刪除此還原資料庫中存在的目錄中繼資料,然後使用由名稱 ContosoConcertHall_old 建構的索引鍵,將資料庫新增至目錄。

示範指令碼會在瀏覽器中開啟此新租用戶資料庫的事件頁面。 請注意,在 URL http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall_old 中,此頁面會顯示已還原資料庫中的資料,其中 _old 新增至名稱。

捲動瀏覽器中所列的事件,以確認在上一節中刪除的事件已還原。

將還原的租用戶公開為其他租用戶 (利用它自己的 Events 應用程式),這不太可能是為租用戶提供已還原資料存取權的方式。 它可用來說明還原模式。 通常,會提供舊資料的唯讀存取權,並將已還原的資料庫保留一段定義的期間。 在範例中,可以執行移除已還原的租用戶案例,以刪除已還原的租用戶項目。

  1. 設定 $DemoScenario = 4移除已還原的租用戶
  2. 若要執行指令碼,請按 F5。
  3. 現在會從目錄中刪除 ContosoConcertHall_old 項目。 在瀏覽器中關閉此租用戶的事件頁面。

將租用戶還原到位,取代現有的租用戶資料庫

本練習會將 Contoso Concert Hall 租用戶還原到刪除事件之前的時間點。 Restore-TenantInPlace 指令碼會將租用戶資料庫還原至新的資料庫,並刪除原始資料庫。 此還原模式最適合復原嚴重的資料損毀,而且租用戶可能必須考慮到重大資料遺失。

  1. 在 PowerShell ISE 中,開啟 Demo-RestoreTenant.ps1 檔案。
  2. 設定 $DemoScenario = 5將租用戶還原到位
  3. 若要執行指令碼,請按 F5。

指令碼會將租用戶資料庫還原到刪除事件之前的時間點。 它會先讓 Contoso Concert Hall 租用戶離線,以防止進一步更新。 然後,透過從還原點還原來建立平行資料庫。 還原的資料庫會以時間戳記命名,以確保資料庫名稱不會與現有的租用戶資料庫名稱衝突。 接下來,會刪除舊的租用戶資料庫,並將已還原的資料庫重新命名為原始資料庫名稱。 最後,Contoso Concert Hall 會上線,以允許應用程式存取已還原的資料庫。

您已成功將資料庫還原到刪除事件之前的時間點。 當 [事件] 頁面開啟時,確認最後一個事件已還原。

還原資料庫之後,第一次完整備份需要 10 到 15 分鐘的時間,然後才能再次還原。

注意

無法從多租用戶資料庫還原至單一租用戶。

下一步

在本教學課程中,您已了解如何:

  • 將資料庫還原至平行資料庫 (並排)。
  • 將資料庫還原到位。

其他資源