--SQL SERVER鏡像切換
------------------------------2013/11/30
切換條件
|
高性能 |
沒有見證服務器的高安全性模式 |
具有見證服務器的高安全性模式 |
自動故障轉移 |
否 |
否 |
是 |
手動故障轉移 |
否 |
是 |
是 |
強制服務 |
是 |
是 |
否 |
手動切換條件
手動故障轉移
這要求使用高安全性模式。 伙伴雙方必須互相連接,並且數據庫必須已同步。
打開事務安全
連接到主體服務器。
發出以下 Transact-SQL 語句:
ALTER DATABASE <database> SET PARTNER SAFETY FULL
其中,<database> 為鏡像數據庫的名稱。
關閉事務安全
連接到主體服務器。
發出以下語句:
ALTER DATABASE <database> SET PARTNER SAFETY OFF
其中,<database> 是鏡像數據庫。
手動故障轉移數據庫鏡像會話 (Transact-SQL)
同步鏡像數據庫時(即數據庫處於 SYNCHRONIZED 狀態時),數據庫所有者可以啟動到鏡像服務器的手動故障轉移。 手動故障轉移只能從主體服務器啟動。
手動故障轉移數據庫鏡像會話
-
連接到主體服務器。
-
將數據庫上下文設置為 master 數據庫:
USE master;
-
在主體服務器上執行下列語句:
ALTER DATABASE database_name SET PARTNER FAILOVER,其中 database_name 是鏡像數據庫。
此語句將立即啟動從鏡像服務器到主體角色的轉換。
在數據庫鏡像會話中強制服務 (Transact-SQL)
強制服務(可能造成數據丟失)
數據庫鏡像提供強制服務(可能造成數據丟失)作為災難恢復方法,以允許將鏡像服務器用作溫備用服務器。 僅當主體服務器在鏡像會話中與鏡像服務器斷開連接時,才能強制服務運行。 因為強制服務運行存在數據丟失的風險,所以應該謹慎使用。
是否支持強制服務取決於會話的運行模式和狀態,如下所示:
通常,當主體服務器斷開連接時,高性能模式支持強制服務。 但是,高性能模式會話可能存在見證服務器(雖然並非必需)。 在這種情況下,強制服務要求鏡像服務器和見證服務器相互連接。
當主體服務器斷開連接時,不帶自動故障轉移功能的高安全性模式支持強制服務。
當鏡像服務器和見證服務器相互連接並且它們都未連接到主體服務器時,具有自動故障轉移功能的高安全性模式支持強制服務(只要當鏡像服務器上次連接到主體服務器時,不回滾鏡像數據庫)。
建議僅當您必須立即還原數據庫服務並願意承擔數據丟失的風險時,才能強制服務運行。 強制服務的結果相當於刪除鏡像,但強制服務在恢復鏡像時便於重新同步數據庫,並且可能存在數據丟失的風險。 強制服務將把主體角色平滑轉換給鏡像數據庫。 鏡像服務器將擔當主體服務器角色並立即向客戶端提供數據庫的副本。 新的主體數據庫在沒有鏡像的情況下運行(即公開運行)。
在高性能模式和不帶自動故障轉移功能的高安全性模式下,如果主體服務器失敗而鏡像服務器可用,則數據庫所有者可以強制將服務故障轉移到鏡像數據庫(可能造成數據丟失),從而使數據庫可用。 此選項僅在以下情況中可用:
1. 主體服務器已關閉。
2. WITNESS 設置為 OFF 或連接到鏡像服務器。
ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
刪除數據庫鏡像 (SQL Server)
本主題說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中從數據庫刪除數據庫鏡像。 數據庫所有者可以隨時通過從數據庫中刪除鏡像來手動停止數據庫鏡像會話。
本主題內容
安全性
SQL Server Management Studio
Transact-SQL
開始之前
安全性
權限
需要對數據庫具有 ALTER 權限。
[返回頁首]
使用 SQL Server Management Studio
刪除數據庫鏡像
-
在數據庫鏡像會話期間,連接到主體服務器實例,然后在對象資源管理器中,單擊服務器名稱以展開服務器樹。
-
展開“數據庫”並選擇數據庫。
-
右鍵單擊數據庫,選擇“任務”,再單擊“鏡像”。 這樣便可打開“數據庫屬性”對話框的“鏡像”頁。
-
在“選擇頁”窗格中,單擊“鏡像”。
-
若要刪除鏡像,請單擊“刪除鏡像”。 此時,將顯示一個提示,要求您進行確認。 如果單擊“是”,會話將停止,並從數據庫中刪除鏡像。
[返回頁首]
使用 Transact-SQL
若要刪除數據庫鏡像,請使用“數據庫屬性”, 即使用“數據庫屬性”對話框的“鏡像”頁。
刪除數據庫鏡像
-
為任一鏡像伙伴連接到數據庫引擎。
-
在標准菜單欄上,單擊“新建查詢”。
-
發出以下 Transact-SQL 語句:
-
ALTER DATABASE database_name SET PARTNER OFF
其中,database_name 是要刪除其會話的鏡像數據庫。
以下示例從 AdventureWorks2012 示例數據庫刪除數據庫鏡像。
ALTER DATABASE AdventureWorks2012 SET PARTNER OFF;
后續操作:在刪除數據庫鏡像之后
重新啟動鏡像之前,必須將在刪除鏡像后對主體數據庫執行的日志備份全部應用到鏡像數據庫中。
或者,可以恢復以前的鏡像數據庫。 在作為鏡像服務器的服務器實例上,可以使用以下 Transact-SQL 語句:
RESTORE DATABASE database_name WITH RECOVERY;
重要提示 |
如果恢復該數據庫,則兩個同名的不同數據庫處於聯機狀態。 因此,需要確保客戶端僅可訪問其中一個數據庫,通常為最新的主體數據庫。 |
[返回頁首]
參考:http://msdn.microsoft.com/zh-cn/library/ms190471.aspx
http://msdn.microsoft.com/zh-cn/library/ms175082.aspx
http://msdn.microsoft.com/zh-cn/library/ms189850.aspx
http://msdn.microsoft.com/zh-cn/library/ms189852.aspx