劉建軍
(吉林省教育學(xué)院,長(zhǎng)春 130022)
Windows2008下Sqlserver2008數(shù)據(jù)庫(kù)故障轉(zhuǎn)移集群部署方案探析
劉建軍
(吉林省教育學(xué)院,長(zhǎng)春 130022)
隨著信息化的推廣和普及,數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的應(yīng)用范圍越來(lái)越廣,數(shù)據(jù)基礎(chǔ)信息量成幾何級(jí)數(shù)倍增。但系統(tǒng)經(jīng)常因?yàn)閿?shù)據(jù)庫(kù)服務(wù)器的宕機(jī)而出現(xiàn)運(yùn)行停止的情況,系統(tǒng)無(wú)法實(shí)現(xiàn)7*24小時(shí)運(yùn)行,如何保證系統(tǒng)的高可用就成為難題。上述問(wèn)題可以采用集群技術(shù)來(lái)解決。集群分為負(fù)載均衡集群和故障轉(zhuǎn)移集群,故障轉(zhuǎn)移集群主要針對(duì)數(shù)據(jù)庫(kù)服務(wù)器,用來(lái)保證服務(wù)器的高可用性和數(shù)據(jù)的高安全性。本文的主要目的是研究如何采用故障轉(zhuǎn)移集群對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行規(guī)劃和設(shè)計(jì),探析如何在Windows2008操作系統(tǒng)下部署故障轉(zhuǎn)移集群。
Windows2008;SQLServer2008;故障轉(zhuǎn)移集群;高可用
集群是一種針對(duì)負(fù)載進(jìn)行均衡和針對(duì)故障進(jìn)行轉(zhuǎn)移的技術(shù),可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對(duì)較高的收益,是由相互獨(dú)立的、通過(guò)網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)構(gòu)建成一個(gè)組,可用來(lái)進(jìn)行單點(diǎn)管理,對(duì)外提供統(tǒng)一服務(wù)。
故障轉(zhuǎn)移集群的基本思路為由一組服務(wù)器構(gòu)建一個(gè)故障轉(zhuǎn)移集群,對(duì)外提供獨(dú)立的Ip地址,群內(nèi)的每個(gè)節(jié)點(diǎn)服務(wù)器均安裝數(shù)據(jù)庫(kù)。通過(guò)集群提供IP地址來(lái)進(jìn)行對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。同一時(shí)刻多臺(tái)節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器均運(yùn)行,但只有一臺(tái)服務(wù)器對(duì)外提供數(shù)據(jù)庫(kù)服務(wù),而其他服務(wù)器處在等待狀態(tài),集群來(lái)管理和調(diào)配數(shù)據(jù)庫(kù)請(qǐng)求綁定到當(dāng)前對(duì)外提供服務(wù)的的數(shù)據(jù)庫(kù)服務(wù)器。當(dāng)該服務(wù)器因宕機(jī)或網(wǎng)絡(luò)故障等原因停止數(shù)據(jù)庫(kù)服務(wù)時(shí),待用數(shù)據(jù)庫(kù)服務(wù)器順序啟用,轉(zhuǎn)化為主服務(wù)器,接管其工作,繼續(xù)提供數(shù)據(jù)庫(kù)服務(wù)。

圖1 單仲裁多節(jié)點(diǎn)服務(wù)器群集結(jié)構(gòu)
服務(wù)器群集分為:單節(jié)點(diǎn)群集、單仲裁設(shè)備群集和多數(shù)節(jié)點(diǎn)集群集三種集群模型。單仲裁設(shè)備服務(wù)器群集能滿足目前一般信息系統(tǒng)群集部署的需要,而單節(jié)點(diǎn)群集轉(zhuǎn)移不支持故障轉(zhuǎn)移。單仲裁多節(jié)點(diǎn)服務(wù)器群集結(jié)構(gòu)和基本思路如圖1所示。
上述單仲裁多節(jié)點(diǎn)服務(wù)器群集為多對(duì)一結(jié)構(gòu),即故障轉(zhuǎn)移集群服務(wù)器節(jié)點(diǎn)最少為兩個(gè)節(jié)點(diǎn),除了服務(wù)器本身的Ip地址外,需要配置一個(gè)共有的集群Ip地址,做為外部數(shù)據(jù)庫(kù)訪問(wèn)的入口。在對(duì)外提供服務(wù)時(shí),雖然這多臺(tái)節(jié)點(diǎn)服務(wù)器均能提供服務(wù),但實(shí)際上只有主節(jié)點(diǎn)服務(wù)器一臺(tái)對(duì)外真正工作。當(dāng)主節(jié)點(diǎn)服務(wù)器宕機(jī)等故障時(shí),備用節(jié)點(diǎn)依次啟用。集群狀態(tài)實(shí)際上為多臺(tái)數(shù)據(jù)庫(kù)服務(wù)器均共用磁盤陣列上的數(shù)據(jù)文件,同一時(shí)間段內(nèi),只有一臺(tái)服務(wù)器能對(duì)該數(shù)據(jù)文件進(jìn)行訪問(wèn),即只有一臺(tái)服務(wù)器對(duì)外提供數(shù)據(jù)庫(kù)服務(wù)。
(1)數(shù)據(jù)庫(kù)故障轉(zhuǎn)移集群,要滿足以下的功能性和非功能性需求:
①系統(tǒng)宕機(jī)時(shí)可以對(duì)數(shù)據(jù)庫(kù)服務(wù)器做故障轉(zhuǎn)移。
②保證數(shù)據(jù)庫(kù)服務(wù)器24*7不間斷運(yùn)行,減少或者取消計(jì)劃呢和計(jì)劃外的系統(tǒng)停止服務(wù)時(shí)間。
③系統(tǒng)硬件故障和網(wǎng)絡(luò)故障不影響業(yè)務(wù)程序運(yùn)行及業(yè)務(wù)數(shù)據(jù)安全。
④方便運(yùn)行維護(hù)和管理。
故障轉(zhuǎn)移群集主要確保對(duì)運(yùn)行在其上的關(guān)鍵應(yīng)用程序能夠始終處于在線狀態(tài).這些關(guān)鍵應(yīng)用程序一般為數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)庫(kù)服務(wù)器任一節(jié)點(diǎn)出現(xiàn)硬件或軟件故障時(shí),當(dāng)前運(yùn)行在該節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)系統(tǒng)會(huì)由群集服務(wù)功能移往其它無(wú)故障的節(jié)點(diǎn)并被重新啟動(dòng).由于群集服務(wù)使用共享存儲(chǔ),所以,在故障應(yīng)急期間將不會(huì)產(chǎn)生數(shù)據(jù)丟失現(xiàn)象,能夠同時(shí)保障數(shù)據(jù)庫(kù)服務(wù)器的高可用性和數(shù)據(jù)的高安全性
在Windows2008操作系統(tǒng)上部署Sqlserver2008數(shù)據(jù)庫(kù)故障轉(zhuǎn)移集群,需要先在Windows操作系統(tǒng)上部署windows集群,繼而在windows集群上部署故障轉(zhuǎn)移集群,本文采用雙機(jī)熱備的結(jié)構(gòu)進(jìn)行部署。
雙機(jī)熱備結(jié)構(gòu)如圖2所示。

圖2 雙機(jī)熱備結(jié)構(gòu)示意
(2)故障轉(zhuǎn)移集群部署需要以下四個(gè)大的步驟:
①為保證數(shù)據(jù)的一致性,數(shù)據(jù)文件需要統(tǒng)一存儲(chǔ)在共享磁盤陣列即存儲(chǔ)中。同時(shí)保存在存儲(chǔ)中硬盤的i/o訪問(wèn)效率也大大提高,數(shù)據(jù)的容錯(cuò)性也可以得到保證,間接提升了數(shù)據(jù)庫(kù)服務(wù)器的性能。
②需要搭建Windows域控環(huán)境,由域控來(lái)監(jiān)控網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)的運(yùn)行狀態(tài)。域控服務(wù)器不需要很高的贏家你配置。
③部署操作系統(tǒng)的故障轉(zhuǎn)移集群即Windows的故障轉(zhuǎn)移集群。這一過(guò)程可以由Windows自帶的集群軟件實(shí)現(xiàn)。該集群在部署過(guò)程中需要將磁盤陣列劃分為仲裁盤,MSDTC盤和共享數(shù)據(jù)磁盤三個(gè)盤。共享數(shù)據(jù)磁盤存放系統(tǒng)數(shù)據(jù)文件,并需要保證該磁盤能被主備數(shù)據(jù)庫(kù)服務(wù)器同時(shí)訪問(wèn)。
④在windows故障轉(zhuǎn)移集群上安裝數(shù)據(jù)庫(kù)產(chǎn)品,完成數(shù)據(jù)庫(kù)的故障轉(zhuǎn)移集群部署。部署方式有兩種:第一種是先完成主節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器的集群部署,然后將備節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器加入集群,第二種為主備節(jié)點(diǎn)服務(wù)器均部署數(shù)據(jù)庫(kù)完畢后,一起構(gòu)建集群。
利用故障轉(zhuǎn)移群集管理器創(chuàng)建Windows群集。正常配置集群過(guò)程中,需要配置集群名稱和集群對(duì)外Ip,集群自動(dòng)選擇仲裁盤和共享數(shù)據(jù)盤。配置過(guò)程如圖3所示。
配置成功后,可以進(jìn)入如下界面對(duì)群集進(jìn)行管理和維護(hù)。
可以測(cè)試故障轉(zhuǎn)移集群常見故障有如下四種:
(1)資源故障:例如服務(wù)意外終止,I/O通訊故障等。將SQLSERVER數(shù)據(jù)庫(kù)服務(wù)或者故障轉(zhuǎn)移集群服務(wù)強(qiáng)行終止,集群自動(dòng)轉(zhuǎn)移集群到另一節(jié)點(diǎn)。
(2)認(rèn)為轉(zhuǎn)移:可以手動(dòng)終止或者啟動(dòng)某節(jié)點(diǎn)集群服務(wù),如果該節(jié)點(diǎn)為應(yīng)用程序的執(zhí)行者,則自動(dòng)轉(zhuǎn)移到另一節(jié)點(diǎn)。

圖3 配置過(guò)程圖
(3)意外故障:硬關(guān)機(jī)關(guān)掉服務(wù)器或者拔掉電源,拔掉公網(wǎng)網(wǎng)線,如果均為應(yīng)用程序的執(zhí)行者,則能執(zhí)行故障轉(zhuǎn)移到另一節(jié)點(diǎn)。
(4)其他情況:拔掉內(nèi)網(wǎng)網(wǎng)線(心跳網(wǎng)絡(luò)網(wǎng)線),表面無(wú)影響。對(duì)非運(yùn)行節(jié)點(diǎn)執(zhí)行上述意外故障,無(wú)影響。
首先在主次節(jié)點(diǎn)服務(wù)器上安裝SQLServer2008:選擇高級(jí)和高級(jí)集群準(zhǔn)備,配置安裝程序支持規(guī)則,選擇數(shù)據(jù)庫(kù)引擎服務(wù),配置相同的安裝實(shí)例,按步驟安裝直至完成。
其次配置集群實(shí)例:配置集群網(wǎng)絡(luò)名稱及資源組,選擇數(shù)據(jù)文件所在存儲(chǔ)上的共享磁盤資源,對(duì)群集進(jìn)行網(wǎng)絡(luò)配置和故障轉(zhuǎn)移群集安全策略,參數(shù)配置如圖4所示。

圖4 參數(shù)配置圖
最后數(shù)據(jù)庫(kù)集群安裝完成,完成后打開群集管理器,對(duì)數(shù)據(jù)庫(kù)集群進(jìn)行維護(hù),測(cè)試和管理,其過(guò)程如圖5所示。

圖5 測(cè)試管理過(guò)程圖
可以測(cè)試故障轉(zhuǎn)移集群常見故障:
群集在節(jié)點(diǎn)1時(shí),可以正常訪問(wèn)數(shù)據(jù)庫(kù),把節(jié)點(diǎn)1關(guān)機(jī)后,群集服務(wù)切換到節(jié)點(diǎn)2上,再次連接數(shù)據(jù)庫(kù)服務(wù)器,還可以正常連接,可以表明群集功能正常,可以正常進(jìn)行故障轉(zhuǎn)移。
[1]楊志國(guó),等.SQL Server2005數(shù)據(jù)庫(kù)管理精講[M].北京:電子工業(yè)出版社,2007.
[2]Kalen Delaney.Microsoft SQl Server 2005技術(shù)內(nèi)幕:存儲(chǔ)引擎[M].北京:電子工業(yè)出版社,2007.
[3]史文路.雙機(jī)熱備份系統(tǒng)的研究與設(shè)計(jì)[D].南京:南京工業(yè)大學(xué),2006.
[4]孫立威,張曉莉,王淑江.精通Windows server2008系統(tǒng)管理與群集[M].北京:中國(guó)鐵道出版社,2009.
An Analysis of the Arrangement of Sqlserver2008 Database Transfer Cluster in Windows2008
LIU Jian-jun
(Jilin Provincial Institute of Education,Changchun 130022,China)
With the development and popularization of information technology,database application system is being used more and more widely and the amount of database information increases rapidly.However,the system frequently stops operating due to database server’s being down and fails to achieve 7*24-hour operation.How to guarantee its high availability becomes a hot potato.The problems above can be solved by cluster technology.Clusters are divided into load balancing cluster and fault transfer cluster.Fault transfer cluster mainly serves the database server,which is used to ensure the high availability of the server and high security and of the data.The main purpose of this paper is to study how to plan and design database server by fault shift cluster and to explore how to arrange fault transfer cluster in Windows2008 operating system.
Windows2008;SQLServer2008;fault transfer cluster;high availability
TP311.13
A
1009-3907(2013)10-1252-03
2013-09-06
劉建軍(1978-),男,山東沂水人,工程師,主要從事軟件系統(tǒng)架構(gòu)、軟件設(shè)計(jì)、dba方向的研究。
責(zé)任編輯:
吳旭云