注意:微軟官方並未正式宣佈Lync2013可以使用Sql Server的AlwaysOn高可用性技術,本文只是採起一些旁門左道取巧的辦法達到該目的,其實施完成後還存在一些問題和風險,搭來穩定還好,若是真出了啥岔子……閱讀本文也須要有必定的Lync2013實施經驗,由於其中省略了一些你們熟知的步驟(主要是懶得截圖湊篇幅,若是有步驟不明白能夠留言交流)前端
Lync2013的下一代產品Skype for Business Server 2015已經發布,而且官方支持AlwaysOn sql
目前據咱們所知,Lync的後端SQL數據庫高可用只能有兩種辦法數據庫
一、SQL clustering後端
二、SQL mirroring服務器
(Database software support in Lync Server 2013)架構
前者須要額外的共享存儲,後者須要一臺額外的見證服務器。這樣一來在中小型高可用架構當中,就會涉及到成本問題。ide
Alwayson是個好功能,靠着從DAG學來的經驗(然而並無心跳線!?),用事務日誌級別的複製保持主副本和輔助副本的同步,只須要使用到本地磁盤;成本低廉。(關於alwayson的原理,若是沒據說過,或者跟它不熟,請先參考如下文檔:oop
https://msdn.microsoft.com/zh-cn/library/hh403414.aspx )測試
早在2014年的Lync conference上,Lync產品組的人就說過alwayson功能將會添加對Lync的支持,然而時至今日……依然沒有官方聲稱能夠了。spa
因而某天實在忍不住了,仔細想了想其究竟是哪裏不支持。作了一些分析以下:
其實這是一個先有雞後有蛋的問題,首先AlwaysOn就跟Exchange的DAG同樣,你得先有數據庫,而後纔能有DAG組。那麼一樣的,在安裝好兩臺SQL Server以後,我得先創建數據庫,而後才能對這些數據庫進行AG組的操做。
並且,AlwaysOn就算搭建好了,那麼它只提供一個偵聽器供調用,這個偵聽器的意義是,你只能對現有AG組裏的數據庫進行增刪讀寫,而不能跳出去,經過這個偵聽器來建立數據庫。
那麼問題來了,Lync 2013在發佈拓撲的時候,就開始執行建立數據庫的操做了。那,我在發佈拓撲的時候,後端數據庫鏈接裏填的必定是某個單臺數據庫服務器名或是某個Cluster的名稱,而不能是AlwaysOn的偵聽器名稱。
OK,那將拓撲裏的後端數據庫改爲偵聽器名稱不就好了嗎?問題又來了,拓撲發佈了以後,這玩意兒他不讓改…除非刪除拓撲,即移除當前的中央存儲位置。也就是說,咱們在Lync拓撲裏,先寫其中一臺SQL,發佈拓撲,讓它吭哧吭哧建立完須要的庫,接下來殺雞取卵,把建立好的數據庫加到AG組裏,而後刪除部署,刪除中央存儲位置,從新發佈一個拓撲,裏面寫的是AG組,這樣Lync去檢查數據庫結構的時候發現,咦!數據庫都建好了,只須要作作修改就能用了。而後順利發佈新的拓撲,有了新拓撲,再把Lync前端部署掉,測一下客戶端連通性。搞定~
好,思路有了。搭個環境試試吧,畢竟問題不會本身跳出來,而是是動手了才能發現的。
環境裏一共須要5臺機器:屌絲環境,一切從簡。
LyncFE.contoso.com 前端
LyncBE-1.contoso.com 後端節點1
LyncBE-2.contoso.com 後端節點2
DC.contoso.com 域控及CA
win7client.contoso.com 客戶端
基本配置部分我就不寫了,什麼起域控啊,起CA啊,這都是基礎知識。
咱們首先裝好兩臺後端上的SQL Server 2014,注意Sql Server 2014的小版本,若是是老的版本Lync 2013在建立數據庫的時候會報未識別SQL版本(若是你的Lync 2013已經升級了CU6補丁,那麼SQL 2014去打個CU1就ok了)。
安裝完成以後,還得安裝WSFC,即故障轉移羣集服務,否則這個地方沒法勾選。
發揮Windows Server 2012 的優點,一臺控制整個場~
接着打開故障轉移羣集管理器,建立羣集。注意在驗證羣集那一步選擇不要驗證,要記住,咱很窮,沒有共享存儲卷!
取個名字,配個ip地址,AlwaysOn畢竟依賴WSFC,仍是得認真規劃一下這一步的選項。
建立完成以後,再打開Sql Server配置管理器,在SQL實例上單擊右鍵 - 屬性,選擇AlwaysOn高可用性,而後勾上「啓用AlwaysOn可用性組」,兩個後端節點都得勾一下。
建立一個共享文件夾,供兩個後端節點在建立AlwaysOn當中進行初次數據文件同步,在共享權限裏把兩臺SQL服務器的計算機帳戶直接加進去給FullControl,省得後面麻煩。
接下來咱們打開LyncBE-1即第一臺節點上的SQL 控制檯,建立一個臨時的數據庫,而且確認這個數據庫的選項裏頭,恢復模式爲「完整」
而後對其進行一次「完整」備份
備份完成以後,開始建立alwaysOn的可用性組,取個名字叫SqlAG好了。
此時咱們的臨時數據庫已經知足了可用性組的先決條件,直接勾選,而後下一步。
這裏咱們將第二個節點LyncBE-2添加進來,它會自動識別爲輔助角色。至於後面的可讀輔助副本是啥意思,你們能夠去參考文章一開頭給出的AlwaysOn文檔。
選擇最後的偵聽器選項卡,就直接建立一個AG組的偵聽器,端口號就寫SQL默認的端口1433好了,記得爲其規劃一個ip地址。
建立完AG組以後,開始數據同步,初次同步經過咱們最開始創建的共享位置來完成。填入共享路徑。
woops,最後一步報錯了,原來是臨時數據庫的存放文件夾必須對應輔助副本節點上的相同位置,換句話說,我在LyncBE-1上的C:\sqldata文件夾下放的數據庫,在LyncBE-2上也必須有一個C:\sqldata文件夾。
默認共享直接建立一個C:\sqldata,再來一次驗證。
驗證經過!
建立完成!在SQL控制檯面板中,右擊可用性組的名字,選擇顯示面板,是否是像看到了DAG的那個面板同樣親切?
手動驗證下故障轉移試試?沒問題。
OK,那到這裏,咱們首先經過一個測試數據庫創建起了AlwaysOn可用性組。
下一節,咱們就聊聊怎麼一步步的偷樑換柱,殺雞取卵,把一個屌絲架構的Lync 2013搭在這個高可用性組上面。
不得不說,在win2012R2下面用SQL 2014創建AlwaysON真是簡單,若是是在2008R2的操做系統上面搭這個,你須要額外打上如下幾個補丁,並且每個都須要你留個Email而後等它發到你郵箱裏…