原文出處:http://blog.csdn.net/dba_huangzj/article/details/28904503
本文將演示如何在域環境下部署鏡像,在域中部署相對來說簡單很多,但是很多企業並不真正使用域來管理服務器(本人所在的公司就是其一),所以有必要演示非域環境,並且重點放在非域環境下。但是作爲實踐經驗和最佳建議,強烈使用域環境管理。非域環境將在第四文中演示:http://blog.csdn.net/dba_huangzj/article/details/27652857 。本文只關注域環境下的搭建。
無論使用哪種方式,都可以分成兩部分,第一部分是準備工作,第二部分是實施工作
準備工作:
除了OS級別的配置之外,還有下面的步驟需要提前操作:
1. 設置數據庫的恢復模式,鏡像需要數據庫的恢復模式爲完整模式,可以使用下面語句修改:
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
2. 檢查數據庫的兼容級別是否爲90或以上,即是否爲2005或以上的SQL Server,如果不是,可以使用下面腳本修改:
- ALTER DATABASE AdventureWorks2008R2 SET COMPATIBILITY_LEVEL=100;--2008
-
- SP_DBCMPTLEVEL @DBNAME=’’,@NEW_CMPTLEVEL=90 --2005
3. 配置所有所需的登錄帳號,主體和鏡像都要,可以使用下面方式:
1. SSIS傳輸登錄
2. 生成腳本方式
3. 手動同步
4. 配置外部資源,比如SSIS包、維護計劃,共享文件等。
安裝前配置:
1. 禁用服務器上的完整備份和日誌備份作業。
2. 執行完整備份,並把備份文件複製到鏡像服務器
3. 使用NORECOVERY還原備份到鏡像服務器,
4. 執行日誌備份並複製到鏡像服務器,同樣以NORECOVERY還原日誌
如果沒有使用NORECOVERY,配置過程會報錯,需要重新還原,所以這一點非常重要。
域環境下配置鏡像:
環境:虛擬機使用hyper-v,安裝了簡單的域環境(這部分不屬於演示範疇,讀者可以自行查找相關資料),OS均爲Windows Server 2008R2 x64。
SQL Server 2008R2 x64 企業版。創建一個域帳號 MirrorAdmin,密碼爲Pa$$w0rd (其中的0爲數字不是字母o)。
DC上的IP:
SQL-A的IP:
SQL-B的IP:
添加域用戶到SQL Server中:
先用域管理員或者安裝時添加的Windows賬號或者用sa登錄:
然後添加新建的域賬號到SQL Server中:
添加Windows賬號:
添加SQL Server服務器角色,爲了演示方便,這裏選擇sysadmin角色:
添加成功後,以這個加進去的Windows賬號登錄Windows,然後以Windows 身份驗證登錄SQL Server:
開始搭建:
下面開始使用微軟示例數據庫AdventureWorks2008R2作爲演示:
文件存放在本地C:\DB\
首先根據前面的準備工作把庫的恢復模式、完整備份等操作先做完,完整備份我們先新建一個共享文件夾存放,供傳輸到鏡像服務器也就是本文中的SQL-B使用,注意選擇【NORECOVERY】恢復狀態,如圖:
還原後在鏡像數據庫中可以看到如圖:
現在回到主體服務器,打開鏡像選項:
選擇【配置安全性】:
這裏先不搭建見證服務器,所以選擇【否】:
這一步如果不需要改動其他信息,可以直接點【下一步】:
選擇【鏡像服務器】:
如果發現連不上鏡像服務器,比如下面的報錯:
可以選擇關閉防火牆,或者開啓5022等所需端口,直到能連上爲止:
選擇【服務賬號】:
完成配置:
完成配置之後,界面會馬上彈出是否需要【開始鏡像】,如果一切準備好了,並且的確需要開啓,就點擊【開始鏡像】:
成功開始鏡像過程之後,可以看到如下截圖,證明搭建已經完畢,可以使用紅框部分的【故障轉移】進行Failover,把主體數據庫的活動會話轉到鏡像數據庫上:
搭建完畢之後,檢查兩個服務器的數據庫狀態:
下面測試一下故障轉移(Failover):
再刷新兩臺服務器的數據庫,可見下面狀態:
SQL Server鏡像功能提供了一個【數據庫鏡像監視器】,可以在下圖中的地方打開,這個工具在監控鏡像時很有用,如何使用這個工具將在後面的文章中介紹:
打開之後,可以檢查鏡像環境的一些信息:
除了進行故障轉移,還可以下切換運行模式 :
首先檢查原有的運行模式:
可見目前是高安全性模式(Safety爲FULL)。
然後進行模式轉換,再檢查狀態:
可見目前已經是高性能模式(Safety爲OFF)。
添加見證服務器:
這裏需要選擇【是】:
然後點下一步:
在主體服務器中連接見證服務器,也就是本文的【SQL-CORE】實例:
指定鏡像環境中的賬號,由於在域環境中,所以可以使用同一個域賬號:
搭建完畢後可以看到下面的截圖:
我們可以通過停止主體服務器(SQL-A)的服務進行檢驗:
可見主體數據庫已經切換到原鏡像服務器(SQL-B)中:
重新啓動SQL-A,然後再停止SQL-B的服務:
可見主體庫又回到了SQL-A中:
至此,域環境下的鏡像搭建演示已經完畢。
SQL Server鏡像有一個重要補丁,這個補丁主要是修復2005的鏡像環境中日誌問題,對2008不需要處理:http://support.microsoft.com/kb/947462。當你在搭建和使用2005的鏡像功能時,如果報錯:當您啓動數據庫鏡像會話,SQL Server 2005 中錯誤消息:"與遠程服務器實例的通信TCP: / / < 計算機名>:< 端口號> 數據庫鏡像尚未完全啓動之前發生故障"。則意味着你需要使用這個補丁修復。
搭建鏡像,特別在域環境中其實非常簡單,本系列把重點放在自動化部署、監控和優化過程中,所以不會做過多的部署演示。
下文是對非域環境的搭建:http://blog.csdn.net/dba_huangzj/article/details/27652857