簡(jiǎn)述SQL Server 2005數(shù)據(jù)庫(kù)鏡像相關(guān)知識(shí)
SQL Server 數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)鏡像是用于提高數(shù)據(jù)庫(kù)可用性的主要軟件解決方案。數(shù)據(jù)庫(kù)鏡像基于每個(gè)數(shù)據(jù)庫(kù)實(shí)現(xiàn),并且只適用于使用完整恢復(fù)模式的數(shù)據(jù)庫(kù)。簡(jiǎn)單恢復(fù)模式和大容量日志恢復(fù)模式不支持?jǐn)?shù)據(jù)庫(kù)鏡像,數(shù)據(jù)庫(kù)鏡像不能鏡像master、msdb、tempdb 或 model 數(shù)據(jù)庫(kù)。本文我們主要就介紹一下數(shù)據(jù)庫(kù)鏡像的相關(guān)知識(shí),接在來就讓我們來一起了解一下吧!
數(shù)據(jù)庫(kù)鏡像維護(hù)一個(gè)數(shù)據(jù)庫(kù)的兩個(gè)副本,這兩個(gè)副本必須駐留在不同的SQL Server 數(shù)據(jù)庫(kù)引擎實(shí)例(服務(wù)器實(shí)例)上。通常,這些服務(wù)器實(shí)例駐留在不同位置的計(jì)算機(jī)上。其中一個(gè)服務(wù)器實(shí)例使數(shù)據(jù)庫(kù)服務(wù)于客戶端(“主體服務(wù)器”),而另一個(gè)服務(wù)器實(shí)例則充當(dāng)熱備用或備用服務(wù)器(“鏡像服務(wù)器”),具體取決于鏡像會(huì)話的配置和狀態(tài)。同步數(shù)據(jù)庫(kù)鏡像會(huì)話時(shí),數(shù)據(jù)庫(kù)鏡像提供了熱備用服務(wù)器,可支持在已提交事務(wù)不丟失數(shù)據(jù)的情況下進(jìn)行快速故障轉(zhuǎn)移。未同步會(huì)話時(shí),鏡像服務(wù)器通常用作備用服務(wù)器(可能造成數(shù)據(jù)丟失)。
數(shù)據(jù)庫(kù)鏡像的優(yōu)點(diǎn)
數(shù)據(jù)庫(kù)鏡像是一種簡(jiǎn)單的策略,具有下列優(yōu)點(diǎn):
增強(qiáng)數(shù)據(jù)保護(hù)功能。
數(shù)據(jù)庫(kù)鏡像提供完整或接近完整的數(shù)據(jù)冗余,具體取決于運(yùn)行模式是高安全性模式還是高性能模式。有關(guān)詳細(xì)信息,請(qǐng)參閱本主題后面的“運(yùn)行模式”。
提高數(shù)據(jù)庫(kù)的可用性。
發(fā)生災(zāi)難時(shí),在具有自動(dòng)故障轉(zhuǎn)移功能的高安全性模式下,自動(dòng)故障轉(zhuǎn)移可快速使數(shù)據(jù)庫(kù)的備用副本在線(而不會(huì)丟失數(shù)據(jù))。在其他運(yùn)行模式下,數(shù)據(jù)庫(kù)管理員可以選擇強(qiáng)制服務(wù)(可能丟失數(shù)據(jù)),以替代數(shù)據(jù)庫(kù)的備用副本。有關(guān)詳細(xì)信息,請(qǐng)參閱本主題后面的“角色切換”。
提高生產(chǎn)數(shù)據(jù)庫(kù)在升級(jí)期間的可用性。
若要使鏡像數(shù)據(jù)庫(kù)的停機(jī)時(shí)間減至最小,可以按順序升級(jí)要參加數(shù)據(jù)庫(kù)鏡像會(huì)話的 SQL Server 實(shí)例,從而使停機(jī)時(shí)間僅為一次故障轉(zhuǎn)移的時(shí)間。這種形式的升級(jí)稱為“滾動(dòng)升級(jí)”。
數(shù)據(jù)庫(kù)鏡像工作方式
在“數(shù)據(jù)庫(kù)鏡像會(huì)話”中,主體服務(wù)器和鏡像服務(wù)器作為“伙伴”進(jìn)行通信和協(xié)作。兩個(gè)伙伴在會(huì)話中扮演互補(bǔ)的角色:“主體角色”和“鏡像角色”。在任何給定的時(shí)間,都是一個(gè)伙伴扮演主體角色,另一個(gè)伙伴扮演鏡像角色。每個(gè)伙伴擁有其當(dāng)前角色。擁有主體角色的伙伴稱為“主體服務(wù)器”,其數(shù)據(jù)庫(kù)副本為當(dāng)前的主體數(shù)據(jù)庫(kù)。擁有鏡像角色的伙伴稱為“鏡像服務(wù)器”,其數(shù)據(jù)庫(kù)副本為當(dāng)前的鏡像數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)鏡像部署在生產(chǎn)環(huán)境中,則主體數(shù)據(jù)庫(kù)即為生產(chǎn)數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)鏡像涉及盡快將對(duì)主體數(shù)據(jù)庫(kù)執(zhí)行的每項(xiàng)插入、更新和刪除操作重做到鏡像數(shù)據(jù)庫(kù)中。重做通過將每個(gè)活動(dòng)事務(wù)日志記錄發(fā)送到鏡像服務(wù)器來完成,這會(huì)盡快將日志記錄按順序應(yīng)用到鏡像數(shù)據(jù)庫(kù)中。與邏輯級(jí)別執(zhí)行的復(fù)制不同,數(shù)據(jù)庫(kù)鏡像在物理日志記錄級(jí)別執(zhí)行。
運(yùn)行模式
數(shù)據(jù)庫(kù)鏡像會(huì)話以同步操作或異步操作運(yùn)行。在異步操作下,事務(wù)不需要等待鏡像服務(wù)器將日志寫入磁盤便可提交,這樣可最大程度地提高性能。在同步操作下,已提交的事務(wù)將在伙伴雙方上提交,但會(huì)延長(zhǎng)事務(wù)滯后時(shí)間。
有兩種鏡像運(yùn)行模式。一種是“高安全性模式”,它支持同步操作。在高安全性模式下,當(dāng)會(huì)話開始時(shí),鏡像服務(wù)器將使鏡像數(shù)據(jù)庫(kù)盡快與主體數(shù)據(jù)庫(kù)同步。在同步數(shù)據(jù)庫(kù)之后,已提交的事務(wù)將在伙伴雙方上提交,但會(huì)延長(zhǎng)事務(wù)滯后時(shí)間。
第二種運(yùn)行模式,即“高性能模式”,異步運(yùn)行。鏡像服務(wù)器嘗試與主體服務(wù)器發(fā)送的日志記錄保持同步。雖然鏡像數(shù)據(jù)庫(kù)可能稍微滯后于主體數(shù)據(jù)庫(kù),但這兩個(gè)數(shù)據(jù)庫(kù)之間的時(shí)間間隔通常很小。但是,如果主體服務(wù)器的工作負(fù)荷過高或鏡像服務(wù)器系統(tǒng)的負(fù)荷過高,則時(shí)間間隔會(huì)增大。
在高性能模式中,主體服務(wù)器向鏡像服務(wù)器發(fā)送日志記錄之后會(huì)立即再向客戶端發(fā)送確認(rèn)一條消息,而不需要等待鏡像服務(wù)器的確認(rèn)。這意味著事務(wù)不需要等待鏡像服務(wù)器將日志寫入磁盤便可提交。此異步操作允許主體服務(wù)器在事務(wù)滯后時(shí)間最小的條件下運(yùn)行,但可能會(huì)丟失某些數(shù)據(jù)。
所有數(shù)據(jù)庫(kù)鏡像會(huì)話都只支持一臺(tái)主體服務(wù)器和一臺(tái)鏡像服務(wù)器。下圖闡釋了這種配置。
具有自動(dòng)故障轉(zhuǎn)移功能的高安全性模式要求使用第三個(gè)服務(wù)器實(shí)例,稱為“見證服務(wù)器”。與這兩個(gè)伙伴不同的是,見證服務(wù)器并不能用于數(shù)據(jù)庫(kù)。見證服務(wù)器通過驗(yàn)證主體服務(wù)器是否已啟用并運(yùn)行來僅支持自動(dòng)故障轉(zhuǎn)移。只有在鏡像服務(wù)器和見證服務(wù)器與主體服務(wù)器斷開連接之后而保持相互連接時(shí),鏡像服務(wù)器才啟動(dòng)自動(dòng)故障轉(zhuǎn)移。
下圖顯示了包含見證服務(wù)器的配置。
事務(wù)安全與運(yùn)行模式
運(yùn)行模式是異步還是同步取決于事務(wù)安全設(shè)置。如果專門使用 SQL Server Management Studio 來配置數(shù)據(jù)庫(kù)鏡像,則在您選擇運(yùn)行模式時(shí),將自動(dòng)配置事務(wù)安全設(shè)置。
如果使用 Transact-SQL 配置數(shù)據(jù)庫(kù)鏡像,則需要了解如何設(shè)置事務(wù)安全。事務(wù)安全由 ALTER DATABASE 語(yǔ)句的 SAFETY 屬性控制。在正在鏡像的數(shù)據(jù)庫(kù)中,SAFETY 為 FULL 或 OFF。
如果將 SAFETY 選項(xiàng)設(shè)置為 FULL,則在初始同步階段后,數(shù)據(jù)庫(kù)鏡像操作將同步執(zhí)行。如果在高安全性模式下設(shè)置見證服務(wù)器,則會(huì)話支持自動(dòng)故障轉(zhuǎn)移。
如果將 SAFETY 選項(xiàng)設(shè)置為 OFF,則數(shù)據(jù)庫(kù)鏡像操作將異步執(zhí)行。會(huì)話在高性能模式下運(yùn)行,并且 WITNESS 選項(xiàng)也應(yīng)設(shè)置為 OFF。
角色切換
在數(shù)據(jù)庫(kù)鏡像會(huì)話上下文中,通??梢允褂靡粋€(gè)稱為“角色切換”的過程來互換主體角色和鏡像角色。角色切換涉及將主體角色轉(zhuǎn)換給鏡像服務(wù)器的操作。在角色切換中,鏡像服務(wù)器充當(dāng)主體服務(wù)器的“故障轉(zhuǎn)移伙伴”。進(jìn)行角色切換時(shí),鏡像服務(wù)器將接管主體角色,并使其數(shù)據(jù)庫(kù)的副本在線以作為新的主體數(shù)據(jù)庫(kù)。以前的主體服務(wù)器(如果有)將充當(dāng)鏡像角色,并且其數(shù)據(jù)庫(kù)將變?yōu)樾碌溺R像數(shù)據(jù)庫(kù)。這些角色可以反復(fù)地來回切換。
存在以下三種角色切換形式:
自動(dòng)故障轉(zhuǎn)移
這要求使用高安全性模式并具有鏡像服務(wù)器和見證服務(wù)器。數(shù)據(jù)庫(kù)必須已同步,并且見證服務(wù)器必須連接到鏡像服務(wù)器。
見證服務(wù)器的作用是驗(yàn)證給定的伙伴服務(wù)器是否已啟動(dòng)并運(yùn)行。如果鏡像服務(wù)器與主體服務(wù)器斷開連接,但見證服務(wù)器仍與主體服務(wù)器保持連接,則鏡像服務(wù)器無(wú)法啟動(dòng)故障轉(zhuǎn)移。
手動(dòng)故障轉(zhuǎn)移
這要求使用高安全性模式?;锇殡p方必須互相連接,并且數(shù)據(jù)庫(kù)必須已同步。
強(qiáng)制服務(wù)(可能造成數(shù)據(jù)丟失)
在高性能模式和不帶自動(dòng)故障轉(zhuǎn)移功能的高安全性模式下,如果主體服務(wù)器出現(xiàn)故障而鏡像服務(wù)器可用,則可以強(qiáng)制服務(wù)運(yùn)行。
重要提示:
高性能模式用于在沒有見證服務(wù)器的情況下運(yùn)行。但如果存在見證服務(wù)器,則強(qiáng)制服務(wù)將要求見證服務(wù)器連接到鏡像服務(wù)器。
在任一種角色切換情況下,一旦新的主體數(shù)據(jù)庫(kù)在線,客戶端應(yīng)用程序便會(huì)通過重新連接到數(shù)據(jù)庫(kù)來快速恢復(fù)。
數(shù)據(jù)庫(kù)鏡像支持
數(shù)據(jù)庫(kù)鏡像伙伴和見證服務(wù)器受到 SQL Server 2005 Standard Edition SP1 和更高版本支持,還受到 SQL Server 2005 Enterprise Edition SP1 和更高版本支持。前提是各伙伴都必須使用相同的版本,只有 SQL Server 2005 Enterprise Edition SP1 及更高版本支持異步數(shù)據(jù)庫(kù)鏡像(高性能模式)。見證服務(wù)器還受到 SQL Server 2005 Workgroup Edition SP1 和更高版本以及 SQL Server 2005 Express Edition SP1 和更高版本支持。
關(guān)于SQL Server 2005數(shù)據(jù)庫(kù)鏡像的知識(shí)就介紹到這里了,希望能夠給您帶來收獲的!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。