前 言:
不少狀況下,雖然咱們的站點、APIService、Redis等已經作成了分佈式架構,可是SQLServer依然仍是單體結構,當出現網絡異常、服務器宕機時便存在極大的風險,這時候咱們須要一種SQLServer故障轉移技術,當A數據庫服務器出現故障的時候,能迅速將請求轉移到B數據庫服務器上面去,從而保證系統的高可用。
1、準備工做
一、準備一個域帳號
二、準備三臺機器,均在同一域環境中,都安裝上SQLServer2008實例,最終搭建出來的架構以下圖所示
2、基本配置步驟
一、在服務中列表中找到SQL Server ,屬性->登陸-> 選擇「此帳號」,瀏覽輸入域帳號配置該服務的登陸帳戶。
二、在SQLServer->Security->Logins,將域帳號設爲sql的登陸帳戶sql
![](http://static.javashuo.com/static/loading.gif)
三、點擊 "Facets",啓動 「外圍應用配置器」數據庫
![](http://static.javashuo.com/static/loading.gif)
四、將RemoteDacEnabled設爲true服務器
![](http://static.javashuo.com/static/loading.gif)
注:在鏡像服務器、見證服務器也一樣執行以上步驟
3、主服務器備份數據庫到鏡像服務器
在主服務器對數據庫進行備份前,須要對數據庫進行設置,將恢復模式設置爲「完整」,備份好以後,在鏡像服務器中進行還原數據庫操做。
4、主服務器、見證者、鏡像服務器配置
接下來要配置主服務器、見證者、鏡像服務器三者之間的角色關係,
須要使用那個域帳號登陸操做系統進行操做。
點擊Configure Security 開始配置嚮導網絡
![](http://static.javashuo.com/static/loading.gif)
嚮導詢問:是否包含見證服務器,這裏咱們選擇Yes架構
![](http://static.javashuo.com/static/loading.gif)
主要包含如下安裝實例:主服務器實例、鏡像服務器實例、見證服務器實例。分佈式
![](http://static.javashuo.com/static/loading.gif)
點擊Next,接下來確認主服務器信息,主服務器就是本機,由於不能修改。測試
![](http://static.javashuo.com/static/loading.gif)
Next 下一步選擇鏡像服務器,點擊Connect會彈出鏡像服務器SQLServer登陸框,使用準備好的域帳號進行登陸便可。spa
![](http://static.javashuo.com/static/loading.gif)
同理操做,選擇見證服務器操作系統
![](http://static.javashuo.com/static/loading.gif)
配置完成3d
![](http://static.javashuo.com/static/loading.gif)
Principal:主服務器
Mirror: 鏡像服務器
Witness:見證服務器
點擊Star Mirroring 開始鏡像工做
![](http://static.javashuo.com/static/loading.gif)
從數據庫列表能夠看到,如今這臺電腦已是主服務器的狀態了。
![](http://static.javashuo.com/static/loading.gif)
如何測試故障轉移:
一、數據庫->Tasks->Mirror ,點擊FailOver能讓當前主服務器變成故障狀態,主服務器數據庫狀態就變成了Mirror鏡像,鏡像服務器就變成了 Principal主服務器;
二、拔網線,拔掉主服務器的網線,見證服務器監測到以後,自動將鏡像數據庫服務器升級爲主服務器。