基於Windows Server 2008 R2的WSFC實現SQL Server 2012高可用性組(AlwaysOn Group)

2012年5月


微軟新一代數據庫產品SQL Server 2012已經面世一段時間了,不管從功能還是性能上講,較之其早期產品都有了很大提升。特別是其引入高可用性組(AlwaysOn Group, AG)這一概念和功能,大大增強和提高了SQL Server的可用性,在之前的鏡像數據庫的基礎上有了質的變化。
SQL Server 2012高可用性組在實現過程中較之早期的SQL Server故障轉移羣集來講,不依賴特別提供共享存儲磁盤陣列,每個節點獨立存儲一份數據庫的副本。其較之早期的鏡像數據庫來講,提供多節點高可用,並且針對數據庫輔助節點副本可讀;此外,在當前可讀節點出現故障時,能通過AG自身的機制保證數據庫正常訪問,而不需要像之前的鏡像數據庫一樣,需要通過訪問端來進行切換。
因此,以下將對SQL Server 2012高可用性組的實現進行詳細介紹。

一、具體的環境如下

在Windows域中,部署3臺成員服務器用作SQL Server服務器,因爲SQL Server 2012的高可用性組需要Windows的羣集服務支持,所以必須預先在這些成員服務器上實現WSFC。服務器的操作系統均爲Windows Server 2008 R2,因此其WSFC的仲裁配置有多數(奇數)節點、節點(偶數)和磁盤多數、多數節點(偶數)和文件共享、非多數:僅磁盤等4種。在此,爲了體現SQL Server AG無需要各節點共享存儲設備這一特性,準備使用3個節點實現。由於是奇數,所以選擇多數節點仲裁配置。雖然這種仲裁配置不是被SQL Server 2012 AG推薦的,但是並不影響AG的實現和使用。

另外,由於本文着重講述SQL Server 2012 AG的實現,所以對於服務器基本配置和網絡設置,以及Windows活動目錄和域的實現在此略去。

二、實現SQL Server 2012高可用性組必須的WSFC環境

首先在每臺成員服務器上安裝並配置WSFC,以配置SQL03爲例:

1、安裝WSFC羣集組件

1)打開服務器管理器,選擇“功能”,在右邊窗口中點擊“添加功能”。

JJ161766.446DE9518C013DAE9700E88F5AD1EBB4(zh-cn,TechNet.10).png

2)在添加功能嚮導中,勾選“故障轉移羣集”,點擊“下一步”。

JJ161766.75D9676A2FD444C73261F4F5582D62B0(zh-cn,TechNet.10).png

3)在“確認安裝選擇”頁面中,點擊“安裝”,進行安裝操作。

JJ161766.ECA321D8E95BAB3796EFE69FC6422DBE(zh-cn,TechNet.10).png

4)完成並關閉“故障轉移羣集”的安裝。

JJ161766.FFB6A7B2AD974D43284BC95CA1CF5B63(zh-cn,TechNet.10).png

2、配置WSFC

爲所有節點均安裝完“故障轉移羣集”服務後,在任意節點服務器的“服務器管理器”中展開“故障轉移羣集管理器”對WSFC進行配置。

1)通過“故障轉移羣集管理器”窗口點擊“創建一個羣集”打開“創建羣集嚮導”

JJ161766.92179B2B7AB5F3391C291CDB9F9492B2(zh-cn,TechNet.10).png

2)在“開始之前”頁中,點擊“下一步”。

JJ161766.E340C5C6567574FC5B283D93DC9702CF(zh-cn,TechNet.10).png

3)添加所有服務器節點,即將環境中的3臺成員服務器添加爲羣集節點服務器。點擊“下一步”。

JJ161766.57A7DD874033A9EE6DE62CF9B33536D3(zh-cn,TechNet.10).png

4)在“驗證警告”頁面中,如果需要對基本環境(包括硬件)進行WSFC需求驗證,可以選擇“是”。在本示例中由於不必需進行驗證,所以選擇“否”。點擊“下一步”。

JJ161766.B2AAC3A544B1E7F121B31488F6B76F7B(zh-cn,TechNet.10).png

5)定義“用於管理羣集的訪問點”,爲羣集進行名,並指定羣集IP地址。點擊“下一步”。

JJ161766.3559677B316C2808F9A88C4BEC6C5EE3(zh-cn,TechNet.10).png

6)確認之前配置信息,若無誤,點擊“下一步”,開始羣集創建。

JJ161766.C08B6091EAB9773D86A29EFCAD8EEBF1(zh-cn,TechNet.10).png

7)完成羣集創建,點擊“完成”關閉嚮導。

JJ161766.27964D258198F8EAB102534D7907C4B4(zh-cn,TechNet.10).png

8)在“故障轉移羣集管理器”會顯示成功創建的羣集,展開其“節點”,顯示現有節點情況。

JJ161766.67A2B42F99B3BB02FA277DA21C5F5477(zh-cn,TechNet.10).png

9)右擊羣集節點,在上下文菜單中點擊“更多操作”,在擴展菜單中選擇“配置羣集仲裁設置”爲該羣集配置仲裁。

JJ161766.DF5926D12820EFA9F9966E7A67EE521E(zh-cn,TechNet.10).png

10)在“開始之前”頁面中點擊“下一步”。

JJ161766.2EC8BA6F1B20391916F63D018012D13F(zh-cn,TechNet.10).png

11)根據此前的設計,由於是奇數節點,並且沒有共享磁盤存儲和共享文件夾存在,所以可以選擇“多數節點”,點擊“下一步”。

JJ161766.7A26C31B28EC0394938ECDD6136ACDEC(zh-cn,TechNet.10).png

12)在“確認”頁面中,點擊“下一步”。

JJ161766.BA1FF8542BA45253A13EC83C1CC8A833(zh-cn,TechNet.10).png

13)完成WSFC的仲裁配置。

JJ161766.8AAA34AA1A5B18AC92FF1DC0C5CF27B5(zh-cn,TechNet.10).png
至此,爲SQL Server 2012 AG準備的WSFC環境已經完成。

三、爲各節點服務器安裝並配置SQL Server 2012,以SQL03爲例進行如下操作。

1、安裝SQL Server 2012

1)在節點服務器上,插入SQL Server 2012安裝介質。運行“SQL Server安裝中心”,選擇“安裝”,點擊“全新SQL Server獨立安裝或向現有安裝添加功能”。

JJ161766.note(zh-cn,TechNet.10).gifNote:
注意:這裏不要選擇“新的SQL Server故障轉移羣集安裝”,如果是故障轉移羣集安裝的話最終將實現的是早期的SQL數據庫羣集,並且需要共享數據存儲磁盤整列,導致所有SQL節點共享同一個數據存儲副本。
JJ161766.93D0F41566B091C1B777F00EA06664EF(zh-cn,TechNet.10).png

2)使用安裝程序支持規則驗證是否通過。

JJ161766.B54F87EE4C4D2297FC6B09AA2C31ED36(zh-cn,TechNet.10).png

3)指定產品密鑰,或選擇Evaluation版本。

JJ161766.2A3B64548E17933FC38813B933551A40(zh-cn,TechNet.10).png

4)接受許可協議

JJ161766.04DD5417A4790DFA51E1261CDAA7F321(zh-cn,TechNet.10).png

5)運行檢查“安裝程序支持規則”,驗證SQL Server 2012運行環境是否符合要求。

JJ161766.054B6D86488D06B9DB4CEB39BE4B2882(zh-cn,TechNet.10).png
與之前版本相同,需要對SQL Server必要的端口打開Windows防火牆的入站規則,比如TCP- 1433端口等。
JJ161766.note(zh-cn,TechNet.10).gifNote:
特別注意:由於AG默認需要用到TCP-5022端口,所以該端口務必保證在Windows防火牆中開啓,允許其入站訪問。

6)設置SQL Server 2012服務器角色爲“具有默認值的所有功能”,點擊“下一步”。

JJ161766.282AF8B62CB01F77FCDD895FE6582F65(zh-cn,TechNet.10).png

7)在“功能選擇”列表中選擇實際所需功能,在此,爲了簡便不再進行自定義。直接使用默認選中組件。並且,需要指定相應的“共享功能目錄”,即SQL Server的安裝位置。

JJ161766.7C1A30ABE97392CD804EDAC5110E2DFD(zh-cn,TechNet.10).png

8)再次檢查安裝規則是否能正常執行通過。

JJ161766.429CAAB2F4F3D8F97EBAF1651AAAEA7E(zh-cn,TechNet.10).png

9)選擇並指定實例名,在此使用默認實例來進行示範,並且指定“實例根目錄”。

JJ161766.C20FEB7BBA2EFEC6DC4941A004752107(zh-cn,TechNet.10).png

10)檢查磁盤空間要求是否達到SQL Server 2012的安裝需求,點擊“下一步”。

JJ161766.890FD13424DA2D1E2FA9CBCB8E1EE8E4(zh-cn,TechNet.10).png

11)指定“服務賬戶”和“排序規則”,在此選擇默認設置。如果需要在完成安裝後進行自定義配置,點擊“下一步”。

JJ161766.BE44B53A8E70C291E99DF312FD4F2334(zh-cn,TechNet.10).png

12)在“數據庫引擎配置”頁面中,指定服務器配置身份驗證爲默認的“Windows身份驗證模式”,“添加當前用戶”爲SQL Server的管理員,若有需要可進行響應的自定義配置。此外還可在“數據目錄”選項卡中指定相應該實例默認的數據庫文件存儲路徑。點擊“下一步”。

JJ161766.6C3F6ACB8D8850285196BCD308A43908(zh-cn,TechNet.10).png

13)在“Analysis Services配置”頁面進行和“數據庫引擎配置”頁面中類似的配置。點擊“下一步”。

JJ161766.03FEF39D189C650C23542FA41328DA7D(zh-cn,TechNet.10).png

14)在“Reporting Services配置”頁面中,選擇默認設置,點擊“下一步”。

JJ161766.B881532DF2B5AEAAB240B88FCEF8FFDD(zh-cn,TechNet.10).png

15)“添加當前用戶”爲“分佈式重播控制器”的管理員。點擊“下一步”。

JJ161766.D5E8011ABA6FA401499449149519E0A4(zh-cn,TechNet.10).png

16)爲“分佈式重播客戶端”指定相應控制器和數據庫目錄。在此,採用默認配置,控制器名稱可不填寫。點擊“下一步”。

JJ161766.A55CBCC3EEE54CFFBB23FF7D3D51707B(zh-cn,TechNet.10).png
JJ161766.note(zh-cn,TechNet.10).gifNote:
注意:以上第13-16步根據第7步中所選功能不同,配置情況有所差異。

17)是否發送錯誤報告頁面中可選擇是否將錯誤報告發送給微軟。

JJ161766.E1FB9E01250F3EF026CA824A8A53E5A3(zh-cn,TechNet.10).png

18)在進行安裝前,執行最後一次“安裝配置規則”檢查,確認是否符合安裝需求。

JJ161766.752B80DA8A176323E8FB2FB08AAC8916(zh-cn,TechNet.10).png

19)在“準備安裝”頁面中,確認之前進行的各種參數配置是否正確,如果無誤,點擊“安裝”,啓動安裝進程。

JJ161766.39D78B812E3C69175BF89ED265EA26FB(zh-cn,TechNet.10).png

20)安裝完成後,得到成功完成的頁面。如果在該頁面中顯示所有功能均爲綠色對勾,那麼證明SQL Server 2012安裝無誤。

JJ161766.7B3BEA63D068DD379FE60F4FF7C9B7B8(zh-cn,TechNet.10).png

21)可能在某些環境中安裝,會收到如下提示,只需重啓服務器操作系統即可。

JJ161766.1DE681F137EF653B82F4FC17D068AA67(zh-cn,TechNet.10).png

2、爲高可用性組配置SQL Server 2012數據庫引擎服務。

1)在“開始”菜單中點擊“所有程序”-“Microsoft SQL Server 2012”-“配置工具”,打開“SQL Server配置管理器”。

JJ161766.F72E32D3827234BF319955E0C09C5772(zh-cn,TechNet.10).png

2)在控制檯中點擊“SQL Server服務”節點,在右邊窗口中右擊“SQL Server (MSSQLSERVER)”,在上下文菜單中選擇“屬性”。

JJ161766.0243676920114FD78399A8BB7CE0D22C(zh-cn,TechNet.10).png

3)在彈出窗口中選擇“AlwaysOn 高可用性”選項卡中勾選“啓用AlwaysOn 可用性組”。點擊“確認”。

JJ161766.C9785D859A26C0ED776C1ADBDDBAE924(zh-cn,TechNet.10).png

4)在彈出警告對話框中提示該修改需要重啓SQL Server數據庫引擎服務才能生效,點擊“確定”。

JJ161766.6DE63F8FBCA2749EAA8C3E990E1854C5(zh-cn,TechNet.10).png

5)再次右擊“SQL Server (MSSQLSERVER)”,在上下文菜單中選擇“重新啓動”,對數據庫引擎執行重啓操作。

JJ161766.7C01D1B1C437BAF2718A1D4FFEC198F0(zh-cn,TechNet.10).png

6)爲了避免在實現AlwaysOn Group時帶來複雜的權限設置,建議將相關的SQL服務(如:SQL Server數據庫引擎服務)啓動登錄身份由默認的“內置賬戶”改爲指定的域賬戶。

JJ161766.9201E824288A6EC447268BDD92991823(zh-cn,TechNet.10).png

7)建議爲該域賬戶授予各節點SQL Server登錄權限,並將各節點服務器賬戶指派爲SQL Server登錄賬戶。

JJ161766.43E5BBD25F2D13C9C3970977473DF357(zh-cn,TechNet.10).png
以上步驟在SQL01/02上均進行相同的操作即可。

四、創建配置高可用性組

高可用性組的創建操作可以有三種方式:嚮導方式、對話框方式和腳本方式,在此以嚮導方式SQL03上創建的DB01作爲主數據庫爲例進行介紹。

1、爲高可用性組創建配置數據庫

要使用嚮導創建高可用性組,必須要有符合條件的數據庫存在,才能進行相關的操作。那麼數據庫要符合怎樣的條件才能滿足條件呢?

1)主數據庫的恢復模式必須是“完整”恢復模式。

JJ161766.3C623EFF91329D7EF9CB6443DFE765C2(zh-cn,TechNet.10).png

2)主數據庫已進行了一次完整備份。

JJ161766.87476A18416E57CC24313B92A9660292(zh-cn,TechNet.10).png

3)需要一個共享路徑提供給備份包存儲,並允許所有節點服務器(SQL Server數據庫引擎服務登錄賬戶)能夠通過UNC路勁進行可讀寫訪問。

JJ161766.6A8B729CBE32D75712AD54D2B3F715DD(zh-cn,TechNet.10).png

2、利用嚮導新建高可用性組

1)在“開始”菜單中點擊“所有程序”-“Microsoft SQL Server 2012”-“配置工具”,打開“SQL Server Management Studio”。

JJ161766.2BDF6D0046499F3773ED8F0C72C47709(zh-cn,TechNet.10).png

2)展開“AlwaysOn高可用性”節點,右擊“可用性組”,在上下文菜單中,選擇“新建可用性組嚮導”。

JJ161766.A9D4CC48A69616B1A3913486335C8826(zh-cn,TechNet.10).png

3)在“簡介”頁面點擊“下一步”。

JJ161766.6DEB85D192609530407255DF87FFFB8A(zh-cn,TechNet.10).png

4)爲將要創建的高可用性組指定名稱。

JJ161766.C0F48DAAC4F505658AEFBC5E441A1314(zh-cn,TechNet.10).png

5)選擇滿足加入高可用性組條件的數據庫,點擊“下一步”。

JJ161766.44B21CB9056F279B3DAD99F0D36F4D28(zh-cn,TechNet.10).png

6)爲高可用性組添加其它SQL Server服務器節點爲副本。點擊“添加副本”按鈕,一次添加所需SQL Server服務器,並且指定初始角色爲“主”或“輔助”。最多可選2個副本實現自動故障轉移,這兩個副本將同時使用同步提交可用性模式。最多可支持3個副本進行同步提交可用性模式,若使用異步提交必須強制手動故障轉移。對於可讀輔助副本設置來講,可選擇其爲是否可讀或僅讀意向,需要注意只有主數據庫副本纔可寫。

JJ161766.5B5BB24E9616975CFE06DED6771CD9F6(zh-cn,TechNet.10).png

7)點擊“端點”選項卡,可以設置高可用性組的端點URL。使用默認設置即可。

JJ161766.7AAAB5BEE1E66B1BB2A553DEEFD69B01(zh-cn,TechNet.10).png

8)在“備份首選項”中,指定作爲備份副本的節點。默認是在“首選輔助副本”中進行備份。可以通過副本備份優先級來指定首選。默認所有節點均爲50。

JJ161766.51929CF76B929C68F1747519CDCC2018(zh-cn,TechNet.10).png

9)爲高可用性組創建偵聽器,指定其DNS名稱的Host Name和端口,建議IP地址使用靜態IP,並且添加新的羣集IP作爲高可用性組使用,如此可以指定SQL Server的默認端口1443,以便簡化客戶端訪問的配置。

JJ161766.A637A9BF96FE3A5D3421CDB5FA2F815D(zh-cn,TechNet.10).png

10)初始化數據同步首選項,建議選擇“完整”,並指定之前創建的UNC共享路徑。點擊“下一步”

JJ161766.38201B0E881C2A74D0B49B4C3CB34BE7(zh-cn,TechNet.10).png

11)驗證是否滿足高可用性組創建需求,如果結果全爲綠色對勾,點擊“下一步”。

JJ161766.72D05141088CA40CBF7FA8720D245187(zh-cn,TechNet.10).png

12)檢查並確認之前的配置信息,若無誤,點擊“完成”。另外,此處也可保存建組腳本,以便分步診斷故障之用。

JJ161766.7E6DD4463BFCE3A4F53C5E59BD822D12(zh-cn,TechNet.10).png

13)等待嚮導完成創建SQL Server 2012高可用性組。

JJ161766.44D31F31B385FB9AA49AC8ECBAAD8C50(zh-cn,TechNet.10).png

14)知道最終完成,所有摘要均成功完成,顯示綠色對勾。如果出現黃色警告,則需進行進一步判斷是否成功。若出現紅色錯誤,表示創建AG不成功。

JJ161766.53DB9082D124154A0333507B599B2C7E(zh-cn,TechNet.10).png

在此,出現了黃色告警,點擊“警告”,在彈出對話框中顯示如下:

JJ161766.FB9C0287D3EDF77DC0A850CC7A008804(zh-cn,TechNet.10).png

可以表明高可用性組成功創建,但WSFC的“多數節點”仲裁模式不是被推薦的。

15)返回SSMS窗口,在“可用性組”節點下顯示“AG01”的面板,可以觀察該高可用性組的狀態。

JJ161766.AB5D8EDA3B803B42CC0066FF1CE09383(zh-cn,TechNet.10).png

3、高可用性組的基本管理

創建完成高可用性組後,可用通過SSMS對高可用性組進行基本的管理。

1)直接右擊需要管理的高可用性組,在上下文菜單中可以選擇爲其“添加新數據庫”、“添加副本”、“添加偵聽器”及手動執行“故障轉移”等操作。點擊“屬性”,也可以編輯該AG的各種屬性值。

JJ161766.66C81B619FF62470C8B4040540FD7BF0(zh-cn,TechNet.10).png

2)在高可用性組的屬性“常規”選項卡中,可以爲其添加/刪除數據庫、副本節點,並配置各可用性副本節點的參數設定值。

JJ161766.5DD64B89EB1587CC477B462C0EA68DEF(zh-cn,TechNet.10).png

3)在“備份首選項”選項卡中,可以修改相應副本節點的備份優先級和備份執行的位置。

JJ161766.2065516C9ADBFA6431AE8754E400AC12(zh-cn,TechNet.10).png

4)針對高可用性組中具體的副本節點配置,可以展開該組中“可用性副本”,右擊需要配置的副本節點,在上下文菜單中點擊“屬性”。

JJ161766.2B0F8A3B2D028E29971132F934ABFEBC(zh-cn,TechNet.10).png

5)在其“常規”選項卡中可以修改配置當前副本節點“可用性模式”、“故障轉移模式”以及“會話超時”時間等。

JJ161766.4527A080CCD6A0844AB582D6D34BAE9A(zh-cn,TechNet.10).png

6)可以通過右擊“可用性組偵聽器”中的具體偵聽器,打開其“屬性”,對偵聽器進行相應配置。

JJ161766.2B0F8A3B2D028E29971132F934ABFEBC(zh-cn,TechNet.10).png

7)可以修改偵聽器的偵聽端口,從而指定客戶端訪問AG中數據庫所需要連接的服務端口。

JJ161766.13695DD3504BFBEB82AC45285F554008(zh-cn,TechNet.10).png
至此,基於WSFC實現SQL Server 2012高可用性組的主要操作介紹完畢。總結關鍵步驟如下,首先配置WSFC,然後在各節點獨立安裝SQL Server 2012實例(非羣集實例),完成安裝後在SQL Server配置管理器中針對數據庫引擎服務啓用“高可用性組”功能,最後通過SQL Server系統管理器創建維護高可用性組。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章