[SQL SERVER][Denali]SQL Server 2012: AlwaysOn Availability Groups
SQL Server 2012 好文比賽得獎公布
文章參考來源:SQL SERVER 好文比賽
主題:SQL Server 2012: AlwaysOn Availability Groups (SQL 142)
寫這篇突然讓我想起備份真的很重要~~~~><"
去年我參加ITHOME鐵人賽連續30天分享SQL2012新特性文章,
當時本打算分享AlwaysOn新特性,
所以我在自己的電腦上建立3個VM自我練習架設AlwaysOn,
但連操一個禮拜後(測試500GB資料庫執行Failover是否正常、應用程式自動導向、select 、Inser效能....等),
服役一年多的WD硬碟無預警掛點(Bios都抓不到@@),
相關VM檔案我也沒備份,還有一些之前管理的Scripts和電子書也都沒了(...鬱悶),
所以之後我就很少去摸AlwaysOn相關特性和操作(因為我不敢再操硬碟和同時執行多VM...),
得知微軟有提供VirtualLab環境,所以再次引起我對AlwaysOn的熱情,
也繼續加強自己對AlwaysOn熟悉度。
前言
SQL Server AlwaysOn 是SQL Server 2012新的高可用性方案,它結合高可用和災難復原的特性,
也提高資料庫和執行個體層級的可用性,同時針對企業重要的應用程式提供整體架構必需的9(5個9=>99.999%)。
AlwaysOn Availability Group在SQL Server 2012是一項新特性,
它加強Cluster架構下針對SQL Server執行個體操作FailOver的可用性和有效性。
透過這次學習你將知道如何使用SQL Server AlwaysOn設定高用可性解決方案。
學習目標
這次我們將學到使用AlwaysOn Availability Group來對應用程式資料庫提供高可用性,
你將依序練習以下每個部份
*針對已啟用Availability Groups的SQL Server設定Windows Server Failover Cluster
*在SSMS中使用Availability Group 精靈來設定Availability Group
*設定 Availability Group 監聽器並針對OLTP應用程式測試啟用透過監聽器自動重新連接導向。
*設定應用程式為唯讀應用程式,並且將應用程式導向到第二個活動中節點。
Exercise 1: Configuring a Windows Failover Cluster
使用Availability Group先決條件就是每個可用性複本都必須位在單一 Windows Server 容錯移轉叢集 (WSFC) 叢集的不同節點。
你將學習如何依照Availability Group 特性來建立windows cluster,
練習結束後你將了解建立一個Windows Failover Cluster 節點需要那些元件、
如何安裝Windows Cluster Service及如何設定多節點的Windows Failover Cluster。
設定防火牆
請使用Administrator權限執行。
ps:其他伺服器需重複相同步驟設定防火牆,才能確保伺服器之間網路溝通沒有問題(可互相存取執行個體)。
執行Failover Cluster Manager
執行Validate a Configruation
加入相關伺服器
查看驗證測試報告
完成組態驗證後且沒有問題後即可建立Cluster。
點選 Create a cluster
選擇相關伺服器
輸入叢集名稱
確認叢集狀態
IP Address請依Lab環境確認。
Exercise 2: Configuring an Availability Group
SQL Server 2012 AlwaysOn Availability Groups針對你的應用程式資料庫提供高可用性方案,
Availability Group 提供以群組為單位的故障轉移(也可以設定多個執行個體),可說將應用程式資料庫的可用性提高到最大化。
Availablity Group包含SQL Server執行個體的本機可用副本,群組中只能有一個主要複本,每個可用性群組支援1個主要複本和4個次要副本,
主要資料庫是主要提供使用者讀寫存取作業。
這次練習你將學到使用Availability Group精靈執行相關設定、啟動SQLONE為主要資料庫...等。
開啟SSMS連接三個執行個體
展開 AlwaysOn High Availability 會出現以下錯誤訊息
因為沒有啟用AlwaysOn Availability Groups。
針對三台伺服器啟用AlwaysOn Availability Groups。
記得重新啟動 SQL Server Service,否則相關變更不會套用。
新增可用性群組
輸入可用性群組名稱
下一步你會發現無法選擇資料庫,
因為Availability Group中的資料庫必須滿足以下條件
1.需為使用者資料庫
2.資料庫需可讀和寫
3.資料庫不行為單一使用者模式
4.資料庫不可設定自動關閉(Auto_Close)
5.資料庫需使用完整復原模式
6.至少有一個完整備份
7.位於建立可用性群組的 SQL Server 執行個體上,且伺服器執行個體能夠存取它。
8.資料庫不能存在其他可用性群組中
9.不可設定資料庫鏡像(DB Mirroring)
執行以下陳述式更改復原模式並執行完整備份
重新整理即可選擇符合條件的資料庫
設定可用性副本
設定SQLTWO 可讀取的副本=Yes、SQLSIX=唯讀連接存取。
透過可用性副本可以改善次要硬體資源,並降低成本同時提高IT效率,對於主要複本的效能會有明顯的改善。
查看端點資訊
建立完成
這次練習並未設定Listener所以有警告是正常的,
下面的練習將來設定Listener。
Exercise 3: Configuring AlwaysOnGroup Listener
本次練習你將了解如何設定AlwaysON Availability Group Listener
新增監聽器
輸入監聽器名稱和監聽Port
子網路請依環境選擇。
開啟 cmd 使用ping 功能,確認可以正常回應
回應正常(其他伺服器也需確認是否回應正常)。
Exercise 4: Manual Failover of the Availability Group
本次練習你將了解如何手動操作容錯移轉精靈執行容錯移轉工作,
稍後也會手動使用TSQL陳述式操作容錯移轉。
選擇show dashboard(顯示儀錶板)
確認可用性群組狀態
查看群組中所有資料庫同步狀態、容錯移轉資料遺失狀態
接下來手動操作容錯移轉
點選 start failover wizard。
勾選SQLTWO
選擇連接驗證方法和帳戶
執行成功
開啟儀錶板再次確認可用性群組狀態
可以看到主要執行個體從原本的SQLONE轉移到SQLTWO了。
Exercise 5: Read-Write Application Failover
這次練習你將學到在可用性群組中如何設定讀-寫應用程式重新連接到新的主要資料庫
設定OLTP應用程式連接來源(透過監聽器達到重新連接)
開啟C:\alwayson\config.xml並修改datasource,這裡輸入監聽器名稱Awlablsn,
執行OLTP測試應用程式負載
一開始是連接SQLTWO。
現在我們手動執行容錯移轉看看OLTP應用程式是否可以透過監聽器導向SQLONE
執行容錯移轉。
可以看到連接的執行個體由SQLTWO轉為SQLONE
執行容錯移轉過程中,OLAP會一直自動嘗試重新連接可用的節點。
Exercise 6: Active Secondary and Read-Only Application Failover
企業經常抱怨高用可性加災難復原的硬體需求成本過高,
但AlwaysOn Availability Groups提供管理者設定次要副本來提供讀取存取,
這可以改善效能和成本,同時提供應用程式另一個基礎架構功能。
練習結束後你將了解次要副本的設定以及對應的應用程式行為、設定應用程式為唯讀應用程式、設定伺服器上只讀取的應用程式自動連接導向的路徑。
執行OLAP
一開始是連接SQLONE(主要資料庫)。
更改data source=SQLTWO並點選Change
可以看到OLTP改連接SQLTWO執行個體。
上面沒有出現錯誤是因為先前我們已經設定SQLTWO為可讀取的副本。
如果readable secondary設定No,就會出現無法連線的錯誤
連接成功後即可再次測試負載直到完成為止,然後查看最後結果。
SQL Server 2012 可用性群組提供豐富的設定選項,而且整體高可用性的設定一點都不複雜,
管理方面可以透過強大的SSMS和PS工具,因為支援多個資料庫為容錯移轉的單位,
更能減少多個資料庫的停機時間,大大提高前端應用程式的可用性,
真是一項相當棒的高可用性技術。
參考