程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> SqlServer2005 >> 簡述SQL Server 2005數據庫鏡像相關知識

簡述SQL Server 2005數據庫鏡像相關知識

編輯:SqlServer2005

SQL Server 數據庫中,數據庫鏡像是用於提高數據庫可用性的主要軟件解決方案。數據庫鏡像基於每個數據庫實現,並且只適用於使用完整恢復模式的數據庫。簡單恢復模式和大容量日志恢復模式不支持數據庫鏡像,數據庫鏡像不能鏡像master、msdb、tempdb 或 model 數據庫。本文我們主要就介紹一下數據庫鏡像的相關知識,接在來就讓我們來一起了解一下吧!

數據庫鏡像維護一個數據庫的兩個副本,這兩個副本必須駐留在不同的SQL Server 數據庫引擎實例(服務器實例)上。通常,這些服務器實例駐留在不同位置的計算機上。其中一個服務器實例使數據庫服務於客戶端(“主體服務器”),而另一個服務器實例則充當熱備用或備用服務器(“鏡像服務器”),具體取決於鏡像會話的配置和狀態。同步數據庫鏡像會話時,數據庫鏡像提供了熱備用服務器,可支持在已提交事務不丟失數據的情況下進行快速故障轉移。未同步會話時,鏡像服務器通常用作備用服務器(可能造成數據丟失)。

數據庫鏡像的優點

數據庫鏡像是一種簡單的策略,具有下列優點:

增強數據保護功能。

數據庫鏡像提供完整或接近完整的數據冗余,具體取決於運行模式是高安全性模式還是高性能模式。有關詳細信息,請參閱本主題後面的“運行模式”。

提高數據庫的可用性。

發生災難時,在具有自動故障轉移功能的高安全性模式下,自動故障轉移可快速使數據庫的備用副本在線(而不會丟失數據)。在其他運行模式下,數據庫管理員可以選擇強制服務(可能丟失數據),以替代數據庫的備用副本。有關詳細信息,請參閱本主題後面的“角色切換”。

提高生產數據庫在升級期間的可用性。

若要使鏡像數據庫的停機時間減至最小,可以按順序升級要參加數據庫鏡像會話的 SQL Server 實例,從而使停機時間僅為一次故障轉移的時間。這種形式的升級稱為“滾動升級”。

數據庫鏡像工作方式

在“數據庫鏡像會話”中,主體服務器和鏡像服務器作為“伙伴”進行通信和協作。兩個伙伴在會話中扮演互補的角色:“主體角色”和“鏡像角色”。在任何給定的時間,都是一個伙伴扮演主體角色,另一個伙伴扮演鏡像角色。每個伙伴擁有其當前角色。擁有主體角色的伙伴稱為“主體服務器”,其數據庫副本為當前的主體數據庫。擁有鏡像角色的伙伴稱為“鏡像服務器”,其數據庫副本為當前的鏡像數據庫。如果數據庫鏡像部署在生產環境中,則主體數據庫即為生產數據庫。

數據庫鏡像涉及盡快將對主體數據庫執行的每項插入、更新和刪除操作重做到鏡像數據庫中。重做通過將每個活動事務日志記錄發送到鏡像服務器來完成,這會盡快將日志記錄按順序應用到鏡像數據庫中。與邏輯級別執行的復制不同,數據庫鏡像在物理日志記錄級別執行。

運行模式

數據庫鏡像會話以同步操作或異步操作運行。在異步操作下,事務不需要等待鏡像服務器將日志寫入磁盤便可提交,這樣可最大程度地提高性能。在同步操作下,已提交的事務將在伙伴雙方上提交,但會延長事務滯後時間。

有兩種鏡像運行模式。一種是“高安全性模式”,它支持同步操作。在高安全性模式下,當會話開始時,鏡像服務器將使鏡像數據庫盡快與主體數據庫同步。在同步數據庫之後,已提交的事務將在伙伴雙方上提交,但會延長事務滯後時間。

第二種運行模式,即“高性能模式”,異步運行。鏡像服務器嘗試與主體服務器發送的日志記錄保持同步。雖然鏡像數據庫可能稍微滯後於主體數據庫,但這兩個數據庫之間的時間間隔通常很小。但是,如果主體服務器的工作負荷過高或鏡像服務器系統的負荷過高,則時間間隔會增大。

在高性能模式中,主體服務器向鏡像服務器發送日志記錄之後會立即再向客戶端發送確認一條消息,而不需要等待鏡像服務器的確認。這意味著事務不需要等待鏡像服務器將日志寫入磁盤便可提交。此異步操作允許主體服務器在事務滯後時間最小的條件下運行,但可能會丟失某些數據。

所有數據庫鏡像會話都只支持一台主體服務器和一台鏡像服務器。下圖闡釋了這種配置。

具有自動故障轉移功能的高安全性模式要求使用第三個服務器實例,稱為“見證服務器”。與這兩個伙伴不同的是,見證服務器並不能用於數據庫。見證服務器通過驗證主體服務器是否已啟用並運行來僅支持自動故障轉移。只有在鏡像服務器和見證服務器與主體服務器斷開連接之後而保持相互連接時,鏡像服務器才啟動自動故障轉移。

下圖顯示了包含見證服務器的配置。

事務安全與運行模式

運行模式是異步還是同步取決於事務安全設置。如果專門使用 SQL Server Management Studio 來配置數據庫鏡像,則在您選擇運行模式時,將自動配置事務安全設置。

如果使用 Transact-SQL 配置數據庫鏡像,則需要了解如何設置事務安全。事務安全由 ALTER DATABASE 語句的 SAFETY 屬性控制。在正在鏡像的數據庫中,SAFETY 為 FULL 或 OFF。

如果將 SAFETY 選項設置為 FULL,則在初始同步階段後,數據庫鏡像操作將同步執行。如果在高安全性模式下設置見證服務器,則會話支持自動故障轉移。

如果將 SAFETY 選項設置為 OFF,則數據庫鏡像操作將異步執行。會話在高性能模式下運行,並且 WITNESS 選項也應設置為 OFF。

角色切換

在數據庫鏡像會話上下文中,通常可以使用一個稱為“角色切換”的過程來互換主體角色和鏡像角色。角色切換涉及將主體角色轉換給鏡像服務器的操作。在角色切換中,鏡像服務器充當主體服務器的“故障轉移伙伴”。進行角色切換時,鏡像服務器將接管主體角色,並使其數據庫的副本在線以作為新的主體數據庫。以前的主體服務器(如果有)將充當鏡像角色,並且其數據庫將變為新的鏡像數據庫。這些角色可以反復地來回切換。

存在以下三種角色切換形式:

自動故障轉移

這要求使用高安全性模式並具有鏡像服務器和見證服務器。數據庫必須已同步,並且見證服務器必須連接到鏡像服務器。

見證服務器的作用是驗證給定的伙伴服務器是否已啟動並運行。如果鏡像服務器與主體服務器斷開連接,但見證服務器仍與主體服務器保持連接,則鏡像服務器無法啟動故障轉移。

手動故障轉移

這要求使用高安全性模式。伙伴雙方必須互相連接,並且數據庫必須已同步。

強制服務(可能造成數據丟失)

在高性能模式和不帶自動故障轉移功能的高安全性模式下,如果主體服務器出現故障而鏡像服務器可用,則可以強制服務運行。

重要提示:

高性能模式用於在沒有見證服務器的情況下運行。但如果存在見證服務器,則強制服務將要求見證服務器連接到鏡像服務器。

在任一種角色切換情況下,一旦新的主體數據庫在線,客戶端應用程序便會通過重新連接到數據庫來快速恢復。

數據庫鏡像支持

數據庫鏡像伙伴和見證服務器受到 SQL Server 2005 Standard Edition SP1 和更高版本支持,還受到 SQL Server 2005 Enterprise Edition SP1 和更高版本支持。前提是各伙伴都必須使用相同的版本,只有 SQL Server 2005 Enterprise Edition SP1 及更高版本支持異步數據庫鏡像(高性能模式)。見證服務器還受到 SQL Server 2005 Workgroup Edition SP1 和更高版本以及 SQL Server 2005 Express Edition SP1 和更高版本支持。

關於SQL Server 2005數據庫鏡像的知識就介紹到這裡了,希望能夠給您帶來收獲的!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved