快快樂樂在Microsoft Azure平台建置SQL Server 2014 AlwaysOn可用性群組

快快樂樂在Microsoft Azure平台建置SQL Server 2014 AlwaysOn可用性群組

說明

不論是在Microsoft Azure或企業內部部署的環境中建置SQL Server AlwaysOn可用性群組,都需要經過許多繁複的設定,包括建立虛擬網路、儲存體、虛擬機器,接著還得啟用ADDS服務,並想辦法符合\SQL Server AlwaysOn的必要條件,有一連串的動作必須要完成,並且在Azure上更因為許多雲端專屬的機制導致,可能發生無法無法順利連接到可用性群組的接聽程式,或是容錯移轉發生之後沒辦法連接到新的主要複本,若您有興趣可以參考筆者之前的文章(請見參考資料)。這一切都在Microsoft Azure Preview Portal推出SQL Server 2014 AlwaysOn樣板之後有了重大的改變,下一節筆者就帶您來看看,不用經過之前那些繁瑣的過程,就可以快快樂樂的在Azure上建置SQL Server AlwaysOn可用性群組。

實作步驟

首先請登入Microsoft Azure Preview Portal,點選左下角的NEW,即可看到您可以建立的Azure服務選項,此時請點選SQL Server 2014 AlwaysOn

image

RESOURCE GROUP

第一個步驟是要建立RESOURCE GROUP,以及透過SQL Server 2014 AlwaysOn樣板,所產生的5台虛擬機器(Virtual Machine,以下簡稱VM)的系統管理員帳號及密碼,接著按SQL SERVER SETTINGS

image

SQL SERVER SETTINGS

接著設定SQL Server VM的主機名稱前置詞(HOST NAME PREFIX),以本文為例SQL Server VM的名稱將會是SS2014AO-g-SQL1與SS2014AO-g-SQL2。另外,在AVAILABILITY GROUP NAME欄位輸入可用性群組的名稱,若您需要可用性群組接聽程式,可以勾選Set up availability group listener,並輸入可用性群組接聽程式的名稱(AVAILABILITY GROUP LISTENER NAME),在這個步驟也可以用來設定SQL Server服務啟動帳戶(SQL SERVER SERVICE ACCOUNT)的名稱(預設為sqlservice)。

image

OPTIONAL CONFIGURATION

SQL Server AlwaysOn可用性群組需搭配Active Directory Domain Services,接下來的步驟將會指引你輸入網域控制站VM的主機名稱(HOST NAME PREFIX)以及樹系根網域名稱(FOREST ROOT DOMAIN NAME),Microsoft Azure會在建立VM並啟用ADDS功能之後,把所有VM都加入到您所指定的網域。

image

VIRTUAL NETWORK

若有需要修改虛擬網路的名稱及網段,可以點選VIRTUAL NETWORK>Review default settings來設定成您所需要的名稱及網段(ADDRESS SPACE CIDR BLOCK)。

image

STORAGE ACCOUNT

在這個步驟當中,您可以指定VM要放在哪個儲存體帳戶(Storage account)以及選擇要使用什麼樣的複寫機制,預設是異地備援儲存體複寫(Standard GRS),若您需要啟用診斷功能,也可以在這個步驟點選DIAGNOSTICS來做設定。

image

SUBSCRIPTION

若您有多個Microsoft Azure訂用帳戶,在這個步驟可以選擇要使用哪個訂用帳戶來建立SQL Server 2014 AlwaysOn,由於SQL Server 2014 AlwaysOn樣版會使用許多Azure的資源,若您是使用有限額的訂用帳戶時,可能要稍加留意該訂用帳戶的額度是否足夠。

image

LOCATION

最後一個步驟就是選擇要將SQL Server 2014 AlwaysOn建立在哪一個地區的資料中心,在此筆者選擇East Asia。

image

所有設定都完成後,就可以按Create來建立SQL Server 2014 AlwaysOn可用性群組。

image

整個建立過程要做的事情相當多,因此需要大約一個小時左右的時間才會建立完成。

image

若需要查看經過多久的時間,可以點選Notifications>History來查看相關的歷程記錄。

image

SQL Server 2014 AlwaysOn建立完成之後,在Microsoft Azure的Startboard就可以看到剛剛所建立的資源群組SS2014AO-group,點選PROPERTIES就可以看到透過Microsoft Azure所建立的SQL Server 2014 AlwaysOn用到那些Azure上的資源或服務。

image

檢查ADDS及檔案分享見證設定

接下來筆者透過RDP連接到網域控制站(SS2014AO-G-DC1),並啟用AD DS Tools工具以查看網域服務的狀況。

image

由下圖可見,整個環境中有兩台網域控制站,分別是SS2014AO-G-DC1和SS2014AO-G-DC2。

image

在Computers節點中,可以看到SQL Server VM(SS2014AO-G-SQL1和SS2014AO-G-SQL2)和檔案分享見證VM(SS2014AO-G-FSW)也都已經被加入網域。另外,SS2014AO-G-FC則是可用性群組的容錯移轉叢集名稱,以及可用性群組接聽程式也都正確地被加入網域之中。

image

若要查看DC之間的複寫設定,可以在Active Directory Sites and Services中查看。

image

若您需要查看檔案分享見證相關的設定,可以經由RDP連接到SS2014AO-G-FSW來查看。

image

檢查容錯移轉叢集執行個體

若要檢查容錯移轉叢集執行個體,預設叢集管理工具並沒有安裝,您可以在任何一台VM中啟用Failover Cluster Manager功能。

image

就可以在Failover Cluster Manager中連接到Microsoft Azure幫您所建立叢集執行個體(SS2014AO-g-fc)以及可用性群組的角色(SS2014AO-g-ag)。

image

檢查AlwaysOn可用性群組

使用RDP連接到任何一台SQL Server VM,在SSMS的Object Explorer可以看到可用性群組(SS2014-g-ag)下面有兩個可用性複本,分別是主要複本SS2014AO-G-SQL1及次要複本SS2014AO-G-SQL2,以及可用性群組接聽程式SS2014AO-g-ag-listener。您可以嘗試在可用性群組儀表板,點選右上角的Start Failover Wizard來進行手動容錯移轉,驗證可用性群組是否正常。

image

預設情況下,可用性群組中並未包含任何可用性資料庫,筆者使用下列T-SQL來建立資料庫及執行一次資料庫完整備份,以符合可用性資料庫的必要條件。

CREATE DATABASE TestDB
GO

BACKUP DATABASE TestDB TO DISK='TestDB.bak'
GO

接下來在可用性資料庫(Availability Databases)節點上按滑鼠右鍵選擇Add Database。

image

歡迎畫面直接按Next。

image

由於已經針對TestDB做了完整備份及設定復原模式為FULL,因此可以在這個步驟中看到TestDB的Status為Meets prerequisties,勾選該資料庫之後按Next。

image

設定初始化的分享路徑之後按Next,若您尚未建立分享路徑請自行設定並指派資料庫服務啟動帳戶有讀寫該目錄的權限。

image

連接所有次要複本然後按Next。

image

若所有設定正確無誤,您應該會看到如下圖全部都是綠燈的樣子,接著按Next。

image

最後一個步驟若相關組態都正確,按Finish來將TestDB加入可用性群組的可用性資料庫。

image

可用性資料庫加入成功後,您應該可以看到如下圖的樣子。

image

回到可用性群組儀表板就可以看到原本出現錯誤的部分已經恢復正常。

image

參考資料

Azure: New DocumentDB NoSQL Service, New Search Service, New SQL AlwaysOn VM Template, and more

SQL Availability Groups on Azure Infrastructure Services

Availability Group configuration

Azure Preview Portal

SQL Server於Microsoft Azure Virtual Machine的高可用性解決方案-AlwaysOn可用性群組(上)

SQL Server於Microsoft Azure Virtual Machine的高可用性解決方案-AlwaysOn可用性群組(中)

SQL Server於Microsoft Azure Virtual Machine的高可用性解決方案-AlwaysOn可用性群組(下)