实现SQL Server 2012 镜像
鏡像(Mirror)是SQL Server 2005引入的新功能,微軟從SQL Server 2005 SP1版本就開始提供官方技術支持。
SQL Server 2012發布后,在官方的聯機手冊中出現了新的聲明:后續版本的 Microsoft SQL Server 將刪除數據庫鏡像功能。請避免在新的開發工作中使用該功能,并著手修改當前還在使用數據庫鏡像的應用程序,以便改用 AlwaysOn 可用性組。
實現鏡像需要在主數據庫與鏡像數據庫之間進行身份驗證,有兩種身份驗證方法:一是通過域帳戶,二是通過證書。
根據能否故障轉移、數據是否實時同步,分為三種部署方式:
1、高可用:需要增加一臺見證服務器(安裝有SQL Server實例),主體實例與鏡像實例之間實時同步,無數據丟失,主體實例發生故障時一般在10秒內即可自動轉移到鏡像實例(注意:是兩個獨立的IP,應用程序有點麻煩)
2、高安全:主體實例與鏡像實例之間實時同步,無數據丟失,不可故障轉移。當不能實時同步時(主體實例與鏡像實例失去聯系時,或任何其一發生故障時),主體實例停止操作。
3、高性能:主體實例將事務日志傳送給鏡像實例去同步,稍有延時,可能會有數據丟失。不能自動故障轉移。
以下通過域帳戶來配置數據庫鏡像。
一、環境準備
1、準備計算機
DC1為contoso域的域控制器,IP地址為192.168.1.1,子網掩碼為255.255.255.0,默認網關為192.168.1.254,DNS為192.168.1.1
SQL1為主體服務器,IP地址為192.168.1.21,子網掩碼為255.255.255.0,默認網關為192.168.1.254,DNS為192.168.1.1
SQL2為鏡像服務器,IP地址為192.168.1.22,子網掩碼為255.255.255.0,默認網關為192.168.1.254,DNS為192.168.1.1
2、準備域帳戶
轉到DC1,打開“Active Directory 用戶和計算機”,新建一個域用戶帳戶UserMirror。
3、在客戶端配置域帳戶
轉到SQL1計算機,將contoso\UserMirror帳戶添加為本機管理員。
在“管理工具”中打開“服務”(或者用“SQL Server 配置管理器”),修改SQL Server實例的屬性,將登錄身份改為contoso\UserMirror。修改之后,重啟SQL Server實例。
轉到SQL2計算機,按照上面的步驟把contoso\UserMirror帳戶添加到本機管理員,并且用這個帳戶啟動SQL Server實例。
說明:如果SQL Server實例是通過不同的本地帳戶啟動的,那么在創建鏡像時主體數據庫會嘗試用本機帳戶去連接鏡像數據庫,最終會報錯。以下是一個錯誤信息的示例:
Database Mirroring login attempt by user 'CONTOSO\SQL2$.' failed with error: 'Connection handshake failed. The login 'CONTOSO\SQL2$' does not have CONNECT permission on the endpoint. State 84.'. ?[CLIENT: 192.168.1.22]
二、實現數據庫鏡像
1、配置鏡像的端點
SQL Server 2012 默認創建了一個名為“鏡像”的端點
可以查看它創建的語法為:
USE [master]
CREATE ENDPOINT [鏡像]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM RC4)
2、配置防火墻
Windows 2008 自帶的防火墻默認封鎖了端口,因此,要想讓SQL1與SQL2這兩臺計算機之間的SQL Server可以互相訪問,必須在防火墻上打開SQL Server默認的TCP1433端口。
由于默認的鏡像的端點是TCP5022,因此必須在防火墻上打開這個端口,允許“入站連接”。
3、分發數據庫到鏡像服務器
數據庫必須是“完整恢復模式”
事先還要將主數據庫備份,然后恢復到鏡像服務器上。在實現數據庫鏡像技術時,鏡像數據庫將一直處于“Restore With NoRecovery”狀態。因此,在還原操作時要注意下面的選項。
默認情況下,還原的選項是“Restore With Recovery”,即“通過回滾未提交的事務,使數據庫處于可以使用的狀態。”此時,如果使用數據庫鏡像,將會出現以下錯誤:
4、配置鏡像
我們這次實驗只配了2臺SQL Server服務器,所以沒有“見證服務器”。
在“主體服務器實例”對話框,默認會顯示本機已經配置了的偵聽器端口和端點名稱。
在“鏡像服務器實例”窗體,在下拉列表中找到鏡像服務器的名稱然后點“連接”(或者在下拉列表中選擇“瀏覽更多”)
在“服務帳戶”窗體,輸入域用戶contoso\UserMirror,向導會自動為這個帳戶創建登錄名,還將為登錄名授予對端點的連接權限。
5、完成配置
完成上述配置后,會有提示信息,詢問是否立即“開始鏡像”。點“不開始鏡像”,回到配置對話框。
在配置對話框,核對配置信息無誤后,點“開始鏡像”
鏡像成功之后,畫面如下:
三、檢查與驗證
1、檢查登錄名
2、檢查數據庫狀態
對于鏡像數據庫,不可以刪除,否則將出現如下錯誤信息:
3、監視鏡像
4、驗證
然后,再檢查主體數據庫與鏡像數據庫的狀態變化,以及通過“數據庫鏡像監視器”查看鏡像的狀態。
總結
以上是生活随笔為你收集整理的实现SQL Server 2012 镜像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows7 中配置IIS7的方法(
- 下一篇: JACK——PaintRobot Exe