2011年9月25日 星期日

SQL Server 2012 - AlwaysOn 安裝與設定教學

由於此版是在CTP3的環境下建立的,而正式版的環境建立,再請參考我的另一篇文章,謝謝。

SQL Server 2012 新功能 - AlwaysOn安裝與設定
http://caryhsu.blogspot.com/2012/04/sql-server-2012-alwayson.html


今天要來介紹的是SQL Server 2012 Denali的新功能 AlwaysOn的安裝與設定,相信有在注意我的部落格的人,應該都有耳聞這個功能,或是大家可以參考下列的連結再重新認識一下AlwaysOn,並實際學習如何將這個功能進行設定。

1、功能說明

1-1 AlwaysOn的新特點:

1-2 AlwaysOn的架構:


SQL Server 2012 (Code Name Denali) - HA 新功能 - AlwaysOn

資料庫版本:SQL Server 2012 Denali (CTP3)

2、安裝與設定 AlwaysOn

2-1 設定Cluster
而安裝的方式上 AlwaysOn 的節點必須架構在 Cluster之上,所以必須先設定好Cluster,設定方式請大家參考我的下列兩篇文章進行設定,雖然 AlwaysOn 是架構在 Cluster,但他跟以往的安裝略有不同,所以在安裝時,請注意下列幾點事項。
注意事項:
  • AlwaysOn 的2個節點上資料庫不需安裝在叢集磁碟上。
  • AlwaysOn 不需依靠在 MSDTC 的服務上。
  • 安裝節點上的資料庫時,需選擇 [新增SQL Server 獨立安裝或將功能加入至現有安裝]
  • 請先安裝在第一台之後,然後再安裝在第二台。
  • 關於SQL Server 2012的安裝方式,請參考我的另一篇作品。


2-2 安裝完成後,分別到兩台電腦上啟用 AlwaysOn 的功能,路徑為 [SQL Server 組態管理員] -> [SQL Server] -> [內容] -> [AlwayOn High Avaliability] ,你會看到 [啟用 AlwaysOn 可用性群組] 勾選之後,點選確定即可。


2-3 啟動 SQL Server Management Studio ,連線到資料庫後,點選 [管理] -> [可用性群組] -> [新增可用性群組精靈]。

2-4 當你啟用 [新增可用性群組精靈] 如果得到下列的錯誤訊息時,代表你在第2-2的步驟沒有啟用成功,請再次確認即可。

PS:The HADR service must be enabled for server instance 'Server-Name' before you can create an availability group on this instance. To enable the HADR service, open the SQL Server Configuration Manager, select SQL Server Services, right-click on the SQL Server instance name, select Properties, and use the SQL HADR tab of the Server Properties dialog. Enabling the HADR service requires that the SQL (Microsoft.SqlServer.Managmement.HadrTasks)


2-5 輸入 Availability Group Name

2-6 選擇要加入 HADR 的架構中的資料庫,請注意在節點啟用HADR後,不像Cluster是以節點為主,而是以單一的資料庫為主,所以啟用後,必須手動的將你想要的資料庫逐一加入,而加入的資料庫必須符合下列的需求。

  • 資料庫的復原模式必須選擇 [Full Backup]。
  • 在將資料庫加入Availability Group之前必須先進行全備份。
參考說明:



2-7 點選 Add Replicas,將第二台也加入。

2-8 設定 Availability Group 的連接埠,使用預設值即可。

2-9 設定主機上的分享目錄,請確認此目錄第二台也可以連線的到。

2-10 驗證兩台之間設定值,這個部份請注意系統會檢查第一台資料庫的安裝路徑必須在第二台電腦上也有相同的目錄,否則會驗證失敗。

2-11 最後的設定總結,再點選完成即可。

2-12 設定完成後,到 [容錯移轉叢集管理員] -> [服務與應用程式]你就可以看到剛剛新增的Availability Group已上線成功。

3、測試 AlwaysOn 的功能

3-1 連線到第一台之後,試著新增一個資料表與資料。


3-2 連線到第二台之後,點選 [管理] -> [可用性群組] -> [剛剛自訂的 Availability Group Name] -> [可用性複本] -> [第二台名稱] -> [容錯轉移]。


3-3 轉換成功後,你就可以看到兩台電腦的 [主要] 與 [次要] 的身候就會互換。

3-4 連線到第二台,你就可以看到剛剛在第一台新增的資料表與資料也成功的轉入到第二台上。

其他相關網址:
  1. SQL Server 2012 Code Name(Denali) 新功能介紹與預覽
  2. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – 分頁功能
  3. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – Sequence
  4. SQL Server 2012(Code Name Denali) - 新T-SQL語法介紹 – Code Snippet Manager
  5. SQL Server 2012(Code Name Denali) - 以列為主的新儲存方式(雲端儲存架構)
  6. SQL Server 2012(Code Name Denali) - FileTable介紹
  7. 微軟介紹雲端平台就緒的資訊 - TechEd 2011
  8. SQL Server 2012 (Code Name Denali) - HA 新功能 - AlwaysOn
  9. SQL Server 2012 (Code Name Denali) - AlwaysOn 安裝與設定教學
關鍵字:SQL ServerDenaliAlwaysOnHA

9 則留言:

  1. good explanation dude!!!

    http://goo.gl/KCmiB

    回覆刪除
  2. 請問AlwaysOn 是要在裝有windows server system的主機上才可設定嗎?

    回覆刪除
    回覆
    1. 只能使用在Windows Server Enterprise 與 Business Intelligence的版本上才可以使用,詳細的資訊你可以參考下列的連結。


      Features Supported by the Editions of SQL Server 2012
      http://msdn.microsoft.com/en-us/library/cc645993.aspx

      刪除
  3. 請教一下,我做完了 Always on 設定後,是否要再叢集設定新增一個 ip
    讓 rd 去連線資料庫?

    還是用主要ip連線就好了?

    回覆刪除
    回覆
    1. 請參考我的另外一篇文章,謝謝。

      http://caryhsu.blogspot.tw/2012/04/sql-server-alwayson.html

      刪除
  4. 你好︰
    請問在MSDN(http://msdn.microsoft.com/en-us/library/cc645993.aspx)說明SQL Server 2012 Standard. AlwaysOn Failover Cluster Instances :Yes (Node support: 2)。
    架設兩台Windows 2008 enterprise x86做Cluster,安裝SQL Server 2012 Standard x86,在 [SQL Server 組態管理員] -> [SQL Server] -> [內容] -> [AlwayOn High Avaliability],卻沒有勾選地方,訊息︰

    AlwaysOn 可用產群組功能要求 SQL Server 2012 x86 (非Wow) 或 x64 Enterprise版在已安裝WSFC hotfix KB2494036的Windows Server 2008上執行。這個 SQL Server 版本和Windows Server System不符合這其中一個或多個需求。

    有更新hotfix KB2494036和Windows update。不知是哪裡還要設定。

    回覆刪除
    回覆
    1. AlwaysOn Failover Cluster Instances雖然在Standard的版本中有支援,但是AlwaysOn Availability Groups的功能只有在Enterprise版中才有,你可以參考下列的討論。

      Which Edition of Windows is required for using SQL 2012 Always On Availability Groups
      http://social.msdn.microsoft.com/Forums/sqlserver/en-US/06651b7f-576c-4703-845f-2a81c5f5173d/which-edition-of-windows-is-required-for-using-sql-2012-always-on-availability-groups

      刪除
  5. 請問主機跟第二台機分別在不同國家, 速度會很慢嗎?

    回覆刪除
    回覆
    1. 在AlwaysOn的架構下,如果是同步的機制下,建議注意連線的速率,如果在不同國家,建議採非同步,或是透過Replication來進行,會比較好。

      刪除