前面已經(jīng)完成了鏡像數(shù)據(jù)庫(kù)的配置,并進(jìn)行那個(gè)了故障轉(zhuǎn)移測(cè)試。接下來(lái)將部署見(jiàn)證服務(wù)器,實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移。
一、關(guān)于見(jiàn)證服務(wù)器
1、若要支持自動(dòng)故障轉(zhuǎn)移,必須在高安全性模式下配置數(shù)據(jù)庫(kù)鏡像會(huì)話(huà),并且還要具有第三個(gè)服務(wù)器實(shí)例(也稱(chēng)為“見(jiàn)證服務(wù)器”)。見(jiàn)證服務(wù)器是 SQL Server 的可選實(shí)例,它能使高安全性模式會(huì)話(huà)中的鏡像服務(wù)器識(shí)別出是否要啟動(dòng)自動(dòng)故障轉(zhuǎn)移。與這兩個(gè)伙伴不同的是,見(jiàn)證服務(wù)器并不能用于數(shù)據(jù)庫(kù)。見(jiàn)證服務(wù)器的唯一角色是支持自動(dòng)故障轉(zhuǎn)移。
2、為了給數(shù)據(jù)庫(kù)設(shè)置見(jiàn)證服務(wù)器,數(shù)據(jù)庫(kù)所有者為見(jiàn)證服務(wù)器的角色分配數(shù)據(jù)庫(kù)引擎實(shí)例。見(jiàn)證服務(wù)器實(shí)例可以與主體服務(wù)器實(shí)例或鏡像服務(wù)器實(shí)例運(yùn)行于同一臺(tái)計(jì)算機(jī)上,但這樣會(huì)明顯降低自動(dòng)故障轉(zhuǎn)移的可靠性。因此建議見(jiàn)證服務(wù)器應(yīng)位于另外一臺(tái)計(jì)算機(jī)上。
3、在高性能模式下,見(jiàn)證服務(wù)器對(duì)可用性會(huì)有不利影響。如果見(jiàn)證服務(wù)器是針對(duì)數(shù)據(jù)庫(kù)鏡像會(huì)話(huà)而配置,則主體服務(wù)器必須至少連接到一個(gè)其他服務(wù)器實(shí)例,即鏡像服務(wù)器或見(jiàn)證服務(wù)器,或者是連接到這兩個(gè)服務(wù)器。否則,將無(wú)法使用數(shù)據(jù)庫(kù),并且不能進(jìn)行強(qiáng)制服務(wù)(可能丟失數(shù)據(jù))。因此,對(duì)于高性能模式,我們極力建議您始終將見(jiàn)證服務(wù)器設(shè)置為 OFF。
二、關(guān)于自動(dòng)故障轉(zhuǎn)移
1、只有在高安全性模式(“具有自動(dòng)故障轉(zhuǎn)移功能的高安全性模式”)下運(yùn)行并且具有見(jiàn)證服務(wù)器的數(shù)據(jù)庫(kù)鏡像會(huì)話(huà)支持自動(dòng)故障轉(zhuǎn)移。在具有自動(dòng)故障轉(zhuǎn)移功能的高安全性模式下,同步數(shù)據(jù)庫(kù)后,如果主體數(shù)據(jù)庫(kù)變得不可用,則會(huì)發(fā)生自動(dòng)故障轉(zhuǎn)移。自動(dòng)故障轉(zhuǎn)移將導(dǎo)致鏡像服務(wù)器接管主體服務(wù)器的角色,并使其數(shù)據(jù)庫(kù)的副本聯(lián)機(jī)以作為主體數(shù)據(jù)庫(kù)。因?yàn)槊總€(gè)在主體數(shù)據(jù)庫(kù)中提交的事務(wù)同時(shí)也在鏡像數(shù)據(jù)庫(kù)中提交,所以需要使數(shù)據(jù)庫(kù)保持同步以防止在故障轉(zhuǎn)移過(guò)程中丟失數(shù)據(jù)。
2、自動(dòng)故障轉(zhuǎn)移所需條件
A、數(shù)據(jù)庫(kù)鏡像會(huì)話(huà)必須在高安全性模式下運(yùn)行,并且必須處理見(jiàn)證服務(wù)器。
B、鏡像數(shù)據(jù)庫(kù)必須已經(jīng)同步。這將保證發(fā)送到鏡像服務(wù)器的所有日志都已寫(xiě)入磁盤(pán)。
C、主體服務(wù)器已中斷了與其余數(shù)據(jù)庫(kù)鏡像配置的通信,而鏡像服務(wù)器和見(jiàn)證服務(wù)器將保留仲裁。但是,如果所有服務(wù)器實(shí)例都已中斷通信,而見(jiàn)證服務(wù)器和鏡像服務(wù)器稍后重新建立通信,則不會(huì)發(fā)生自動(dòng)故障轉(zhuǎn)移。
D、鏡像服務(wù)器已檢測(cè)到丟失了主體服務(wù)器
E、鏡像服務(wù)器檢測(cè)主體服務(wù)器故障的方式取決于故障是硬故障還是軟故障。
更多自動(dòng)故障轉(zhuǎn)移內(nèi)容參考
http://msdn.microsoft.com/zh-cn/library/ms189590.aspx
三、自動(dòng)故障轉(zhuǎn)移原理
1、如果主體服務(wù)器仍在運(yùn)行中,則將主體數(shù)據(jù)庫(kù)的狀態(tài)更改為 DISCONNECTED 并斷開(kāi)所有客戶(hù)端與主體數(shù)據(jù)庫(kù)的連接。
2、見(jiàn)證服務(wù)器和鏡像服務(wù)器將主體服務(wù)器注冊(cè)為不可用。
3、如果重做隊(duì)列中有任何等待的日志,則鏡像服務(wù)器將完成前滾鏡像數(shù)據(jù)庫(kù)的操作
4、前一個(gè)鏡像數(shù)據(jù)庫(kù)作為新的聯(lián)機(jī)主體數(shù)據(jù)庫(kù),恢復(fù)通過(guò)盡快回滾未提交的事務(wù)將這些事務(wù)全部清除。鎖將隔離這些事務(wù)。
5、當(dāng)前一個(gè)主體服務(wù)器重新聯(lián)接到會(huì)話(huà)時(shí),它將認(rèn)定其故障轉(zhuǎn)移伙伴現(xiàn)在擁有主體角色。前一個(gè)主體服務(wù)器接管鏡像角色,并將其數(shù)據(jù)庫(kù)作為鏡像數(shù)據(jù)庫(kù)。新的鏡像服務(wù)器會(huì)盡快將新的鏡像數(shù)據(jù)庫(kù)與主體數(shù)據(jù)庫(kù)同步。新的鏡像服務(wù)器重新同步數(shù)據(jù)庫(kù)后,就可以再次執(zhí)行故障轉(zhuǎn)移,但按反向執(zhí)行。。
下圖說(shuō)明了自動(dòng)故障轉(zhuǎn)移的一個(gè)實(shí)例。
四、在見(jiàn)證服務(wù)器上看裝SQL Server 2008
詳見(jiàn)《SQL Server 2008 數(shù)據(jù)庫(kù)鏡像部署實(shí)例之一》
五、配置見(jiàn)證服務(wù)器
1、主體數(shù)據(jù)庫(kù)服務(wù)器上,右鍵點(diǎn)擊數(shù)據(jù)庫(kù),選擇任務(wù)——鏡像
2、在彈出的數(shù)據(jù)庫(kù)屬性頁(yè)面中,選定鏡像頁(yè),點(diǎn)擊右側(cè)的配置安全
3、點(diǎn)擊下一步,選擇包括見(jiàn)證服務(wù)器
4、點(diǎn)擊下一步,進(jìn)行見(jiàn)證服務(wù)器配置
5、點(diǎn)擊兩次下一步,填入見(jiàn)證服務(wù)器地址或機(jī)器名及站點(diǎn)名稱(chēng)
6、填入服務(wù)賬戶(hù)
7、查看摘要信息,點(diǎn)擊完成
六、測(cè)試自動(dòng)故障轉(zhuǎn)移
1、當(dāng)前主體服務(wù)器為Hytest01,鏡像數(shù)據(jù)庫(kù)是Hytest02
2、將主體服務(wù)器Hytest1的網(wǎng)絡(luò)斷開(kāi),看數(shù)據(jù)庫(kù)是否自動(dòng)轉(zhuǎn)移到鏡像服務(wù)器Hytest02上
鏡像設(shè)置顯示,主體服務(wù)器、鏡像服務(wù)器角色也互換了。
有人會(huì)說(shuō),兩個(gè)數(shù)據(jù)庫(kù),IP地址都不一樣,怎么寫(xiě)連接代碼呢?難道出現(xiàn)故障后要手動(dòng)更改代碼嗎?其實(shí)使用ADO.NET或者SQL Native Client能夠自動(dòng)連接到故障轉(zhuǎn)移后的伙伴,連接字符串如下所示:
ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A;
這樣設(shè)置之后,客戶(hù)端就可以自動(dòng)切換數(shù)據(jù)庫(kù)了
至此SQL Server 2008 的鏡像高可用配置實(shí)例全部完成。
您可能感興趣的文章:- SQLServer 鏡像功能完全實(shí)現(xiàn)
- SQL Server 2008 R2數(shù)據(jù)庫(kù)鏡像部署圖文教程
- SQL Server 2008 數(shù)據(jù)庫(kù)鏡像部署實(shí)例之一 數(shù)據(jù)庫(kù)準(zhǔn)備
- SQL Server 2008 數(shù)據(jù)庫(kù)鏡像部署實(shí)例之二 配置鏡像,實(shí)施手動(dòng)故障轉(zhuǎn)移
- SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)
- SQL Server中避免觸發(fā)鏡像SUSPEND的N種方法