資料庫集群 集群的存在意義是為了保證高可用、數據安全、擴展性以及負載均衡。 什麼是集群? 由二台或更多物理上獨立的伺服器共同組成的"虛擬"伺服器稱之為集群伺服器。一項稱做MicroSoft集群服務(MSCS)的微軟服務可對集群伺服器進 行管理。一個SQL Server集群是由二台或更多運行SQL S ...
資料庫集群
集群的存在意義是為了保證高可用、數據安全、擴展性以及負載均衡。
什麼是集群?
由二台或更多物理上獨立的伺服器共同組成的"虛擬"伺服器稱之為集群伺服器。一項稱做MicroSoft集群服務(MSCS)的微軟服務可對集群伺服器進 行管理。一個SQL Server集群是由二台或更多運行SQL Server的伺服器(節點)組成的虛擬伺服器。如果集群中的一個節點發生故障,集群中的另一個節點就承擔這個故障節點的責任。認為一個 SQL Server集群能夠給集群中的兩個節點帶來負載平衡,這是一種常見的誤解。雖然這似乎很有用,但卻是不正確的。這也意味著SQL Server集群不能真正提高性能,只能提供故障轉移功能。故障轉移就是當系統中的一臺機器發生故障失去其功能時,另一臺機器將接手運行它的SQL Server實例。這種功能失效可能是由於硬體故障、服務故障、人工故障或各種其它原因。
對於在SQL Server 2008\2008R2下安裝SQLServer 實例的集群似乎有越來越多的問題。與2005相比安裝方法要求每個節點都被獨立執行。下麵我我們一起看一下如何實現集群的部署。
部署
本篇針對Share-Disk架構的集群進行介紹,為了更好展現,我們假定一下幾個場景(http://www.it165.net/admin/html/201403/2499.html--配置步驟):
有3台電腦作為節點,分別叫做NodeA, NodeB 和NodeC ,IP地址如下。
- NodeA - IP Address 10.10.10.10
- NodeB - IP Address 10.10.10.11
- NodeC - IP Address 10.10.10.12.
三個節點是Windows集群SQLFAILSET01 (虛擬IP地址是10.10.10.20)的成員。在安裝集群應用程式之前需要安裝和配置這個基於Windows 集群的平臺包括虛擬網路和IP。三個節點有獨立的硬體(處理器,記憶體,NIC等等)和軟體(操作系統)。安裝兩個新的SQLServer集群實例,使用唯 一的虛擬網路名稱和實例名稱。兩個虛擬網路名稱和虛擬IP地址如下:
- SQLCLUST01 - Virtual IP Address 10.10.10.21
- SQLCLUST02 - Virtual IP Address 10.10.10.22.
實例名:
- INST1 (SQLCLUST01)
- INST2 (SQLCLUST02)
為了實現集群按照以下文檔部署(配置步驟請參考連接或者其他文獻):
- 虛擬網路名稱: 與你的電腦在Windows域中的名稱一樣。它一定是唯一併且命名遵循常規的名稱命名限制如字元長度和特殊字元的使用,
- 虛擬IP地址: 與分配客戶\公共網路IP一樣。這是一種共用的IP節點,用來接收跟指定實例通信的IP。
- 共用驅動器: 這些共用存儲是典型的通過光纖通道或者iSCSI連接的邏輯單元。這些邏輯單元對所有的集群幾點公開並且分配唯一的邏輯驅動字元。不要與本地驅動器(通常由物理磁碟直接附加到伺服器上)混淆。
- NIC: 網路介面卡。
如果你沒有這樣做,則需要將集群磁碟資源R、S和T故障轉移部署到NodeA,同樣也會安裝軟體組件和資料庫到這些驅動器上。從在NodeA開啟 SQLServer2008的安裝開始,選擇"New SQL Server failover cluster installation"。然後安裝相關的基礎選項配置以及許可。來到實例配置啟動的安裝部分。
從功能列表中選擇你想去安裝的項目。下一個屏幕就是你說提供的實例配置,由實例名稱和虛擬網路名稱組成。對於NodeA使用如下配置:
network name - SQLCLUST01
instance name - INST1
在下一個屏幕詳細展示集群資源組和共用磁碟資源(分配給新實例的)。對於NodeA如下配置:
SQL Server data - R:
SQL Server logs - S:
SQL Server backups - T:
一旦這些信息被提交,系統將提示網路配置將使用之前選擇的虛擬IP地址。剩下的安裝明細包括了集群的安全策略,服務配置(服務賬戶明細)和資料庫引擎配置 (包括賬戶配置、文件流設置和數據目錄)。在數據目錄的標簽下,展示你選擇的之前提供的驅動盤符--“驅動\目錄” 結構。繼續安裝,只要安裝成功你就會擁有第一個集群實例在NodeA上。
接下來是NodeB,需要將故障轉移集群磁碟資源L,M和N部署到NodeB上準備安裝。
現在在NodeB上開啟SQLServer2008的安裝並且再次點擊"New SQL Server failover cluster installation"。根據之前的步驟安裝,用網路名SQLCLUST02替換之前的,實例名稱為INST2,邏輯磁碟驅動器為L(數據),M(日 志)和N(備份)。
此刻,我們已經有了兩個故障轉移實例,分別部署到了NodeA和NodeB上。兩個實例使用完全不同的磁碟驅動器和盤符,不同的Windows2008程式組和獨立的虛擬網路名稱,實例名稱和虛擬IP地址。激活節點的信息如下:
- SQLCLUST01\INST1 active on NodeA.
- SQLCLUST02\INST2 active on NodeB.
但是,目前對於每個實例都沒有可以利用的故障轉移伺服器,現在來解決這個問題。為了讓NodeC作為每個實例的轉移節點,需要在NodeC上多次安裝SQLServer實例。
首先在C上開啟2008的安裝,並且選擇"Add node to a SQL Server failover cluster"。安裝程式將完成多個選擇和提示等關鍵信息。之後,安裝將提示集群節點配置。在這裡選擇你希望加入的SQLServer實例 (SQLCLUST01\INST1)。繼續完成安裝,就有了NodeC作為SQLCLUST01\INST1的故障轉移“搭檔”。
接下來,第二次安裝SQLServer 2008在NodeC上,選擇"Add node to a SQL Server failover cluster"。再一次按照如上步驟,再一次按提示配置集群節點。選擇(SQLCLUST02\INST2) 作為集群實例並且按照安裝步驟完成。這是NodeC就成為了SQLCLUST02\INST2的故障轉移“搭檔”。
下麵就是安裝中心的截圖以及選擇的選項:
下麵的截圖展示的是安裝定義加入實例的地方:
如上所示,安裝已經完畢,整個流程更加易於管理。當然利用新的氣流特性和集成服務包或累積更新來減少可以減少部署新SQL伺服器實例的時間。這裡就不展開講了。
總結
本篇只是簡單介紹了最簡單的故障轉移集群如何搭建。集群有很多種形式如本篇這種共用磁碟模式的資料庫集群,以及實現負載均衡的集群等等,但是正如文章一開 始我提到的SQL Server集群不能真正提高性能。業務的應用場景各有不同還是需要不斷地配置升級來完成匹配適應的集群。