SQL2008的鏡像功能

SQL2008的鏡像功能
  
   數據庫鏡像相當於2臺服務器提供容錯功能,其實原理是進行日誌文件的複製及恢復操作保持數據的同步
,一般鏡像服務2臺服務器即可,但出現故障需要手動進行切換,如果增加一臺見證服務器就形成了自動切換
的功能,見證服務器的自動切換操作一般在10秒內完成,所以對用戶來所感覺不到任何異樣。
   爲本次實驗我搭建了3臺虛擬機,均是windows2003+sql2008,各分配內存爲500M。
拓補圖如下:

計算機名分別是:
sql-1===用作主服務器    =ip:10.40.1.10
sql-2===用作鏡像服務器  =ip:10.40.1.11
sql-3===用作見證服務器  =ip:10.40.1.12
本次環境爲工作組,爲方便驗證3臺都已administrator來登入登入密碼都一樣

首先在對象資源管理器裏分別連接到這3臺服務器
若無法連接,請在各自服務器的sql網絡配置裏啓動named pipes和tcp/ip協議


然後再SQL-1上建立一個測試用的數據庫如:ositpro

並設置數據庫恢復模式爲完整
代碼如下:

alter database ositpro set recovery full with no_wait


 


圖形界面的設置位置在數據庫的屬性-選項裏,如下圖

接着分別在SQL-1服務器的D盤根目錄下建立存放備份的文件夾:sqlbak
        在SQL-2服務器的D盤根目錄下建立同樣的目錄並設置共享權限:sqlbak及保存鏡像還原保存數據及
日誌的文件夾:sqldata
文件夾建立後我們在SQL-1上備份剛纔創建的ositpro數據庫到sqlbak目錄
backup database ositpro to disk='d:/sqlbak/ositpro.bak'

 


備份完畢後我們將數據拷到sql-2上的sqlbak目錄下,然後再sql-1上直接還原數據庫

選擇目標數據庫,源備份文件

將行數據及日誌另存到D盤sqldata目錄下,並選擇恢復模式的第2條:restore with norecovery

還原完畢

接下來分別在3臺服務器上創建用於偵聽對象的TCP端點
因爲3臺SQL服務器所使用的實例都不一樣,所以端口號可以相同,反之必須不同
SQL-1執行下面腳本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=partner)
go
SQL-2執行下面腳本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=partner)
go
SQL-3執行下面腳本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=witness)
go
在sql-2上設置主服務器

ALTER DATABASE ositpro SET PARTNER='TCP://sql-1:5022';
GO

在sql-1上設置鏡像服務器及見證服務器
ALTER DATABASE ositpro SET PARTNER='TCP://sql-2:5022';
GO
ALTER DATABASE ositpro SET WITNESS='TCP://sql-3:5022';
GO
此時sql-1上數據已顯示爲主體,已同步,查看3臺服務器的對象如下


接下來進行模擬故障切換
首先在sql-2上打開數據庫鏡像監視器,此狀態每10秒更新一次


此時sql-1爲主體服務器,sql-2爲鏡像,下面我們禁用sql-1的網卡
由下圖可以看到sql-1的數據庫狀態變成了正在恢復,sql-2變成了主體,因爲沒有了鏡像服務器,所以顯示
已斷開連接

在sql-2上的鏡像監視器裏可以看到,sql-2當前腳色爲主體,鏡像狀態爲斷開,見證服務器連接正常

此時如果sql-1的網卡回覆正常sql-2還是主服務器,sql-1變成了鏡像服務器了

2個不會恢復原始狀態的,如需切換到初始環境使用下面代碼在sql-1上執行即可
ALTER DATABASE ositpro SET PARTNER FAILOVER



 
OK,使用3臺服務器搭建自動切換鏡像的實驗完成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章