Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn
注意:微軟官方并未正式宣布Lync2013能夠使用Sql Server的AlwaysOn高可用性技術,本文只是采取一些旁門左道取巧的辦法達到該目的,其實施完成后還存在一些問題和風險,搭來穩定還好,如果真出了啥岔子……閱讀本文也需要有一定的Lync2013實施經驗,因為其中省略了一些大家熟知的步驟(主要是懶得截圖湊篇幅,如果有步驟不明白可以留言交流)
????Lync2013的下一代產品Skype?for Business Server 2015已經發布,并且官方支持AlwaysOn?
目前據我們所知,Lync的后端SQL數據庫高可用只能有兩種辦法
1、SQL clustering
2、SQL mirroring
(Database software support in Lync Server 2013)
前者需要額外的共享存儲,后者需要一臺額外的見證服務器。這樣一來在中小型高可用架構當中,就會涉及到成本問題。
Alwayson是個好功能,靠著從DAG學來的經驗(然而并沒有心跳線!?),用事務日志級別的復制保持主副本和輔助副本的同步,只需要使用到本地磁盤;成本低廉。(關于alwayson的原理,如果沒聽說過,或者跟它不熟,請先參考以下文檔:
https://msdn.microsoft.com/zh-cn/library/hh403414.aspx?)
早在2014年的Lync conference上,Lync產品組的人就說過alwayson功能將會添加對Lync的支持,然而時至今日……依然沒有官方聲稱可以了。
于是某天實在忍不住了,仔細想了想其到底是哪里不支持。做了一些分析如下:
其實這是一個先有雞后有蛋的問題,首先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然后等它發到你郵箱里…
轉載于:https://blog.51cto.com/sodaxu/1658685
總結
以上是生活随笔為你收集整理的Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022 年红队工具和模拟工具包
- 下一篇: 【python二级】红楼梦