SQL Server 2008 R2數據庫鏡像部署

 

概述數據庫

「數據庫鏡像」是一種針對數據庫高可用性的基於軟件的解決方案。其維護着一個數據庫的兩個相同的副本,這兩個副本分別放置在不一樣的SQL Server數據庫實例中。建議使用不一樣位置的兩臺服務器來承載。在同一時刻,其中一臺上的數據庫用於客戶端訪問,充當「主體服務器」角色;而另外一臺則根據鏡像會話的配置和狀態,充當熱備份服務器,即「鏡像服務器角色」,這兩種角色不是絕對的。安全

優勢服務器

l 加強了數據保護功能網絡

l 提升了數據庫的可用性異步

l 提升了生產數據庫在升級期間的可用性ide

工做方式性能

在「數據庫鏡像會話」中,主體服務器和鏡像服務器是相互通訊和協做,並雙方互補。主體服務器角色上的數據庫副本爲生產數據庫。數據庫鏡像會盡快將主體數據庫中執行的每一項操做(如:插入、更新和刪除等)在鏡像數據庫中進行從新執行。這一過程是經過將活動事務日誌記錄的流發送到鏡像服務器來完成,這能夠儘快將日誌記錄按順序應用到鏡像數據庫中。並且數據庫鏡像是在物理日誌記錄級別執行這一「重作」操做的。SQL Server 2008 R2(如下簡稱:SQL08R2)中,爲了減小網絡的負載,主體服務器會將事務日誌記錄壓縮後進行發送。測試

運行模式this

l 高性能模式(異步運行):事務不須要等待鏡像服務器將日誌寫入磁盤即可提交,這樣可最大程度地提升性能。這意味着事務不須要等待鏡像服務器將日誌寫入磁盤即可提交,而此操做容許主體服務器在事務滯後時間最小的條件下運行,但可能會丟失某些數據。spa

l 高安全模式(同步運行):當會話開始時,鏡像服務器使鏡像數據庫儘快與主體數據庫同步。一旦同步了數據庫,事務將在雙方提交,這會延長事務滯後時間。

clip_p_w_picpath001

圖1

l 具備故障轉移功能的高安全性模式(見證服務器):這種模式最大的優勢就是主體服務器斷線時,鏡像服務器上的數據庫副本會自動啓用,做爲生產數據庫爲客戶端提供服務。在這一結構中見證服務器並不能用於數據庫,其主要做用是經過驗證主體服務器是否已啓用並運行來支持自動故障轉移。

注意:只有在與主體服務器斷開鏈接以後,鏡像服務器仍和見證服務器保持相互鏈接時,鏡像服務器才啓動自動故障轉移。

見證服務器的做用是驗證指定的夥伴服務器是否已啓動並正常運行。若是鏡像服務器與主體服務器斷開,但見證服務器仍與主體服務器保持鏈接,則鏡像服務器沒法啓動故障轉移。因此要實現故障轉移的條件是主體服務器與鏡像服務器斷線,同時也與見證服務器斷線;鏡像服務器與見證服務器連線的狀況。

clip_p_w_picpath002

圖2

角色切換

自動切換:在使用見證服務器的狀況下,數據庫必須已經同步,而且見證服務器必須和鏡像服務器鏈接正常。

手動切換:在高安全性模式下,主體服務器和鏡像服務器必須保持互聯,而且數據庫必須已經同步。

強制服務:在高性能模式和不帶自動故障轉移功能的高安全性模式下,若是主體服務器出現故障而鏡像服務器可用,則能夠強制服務運行。這種方式可能致使某些數據庫丟失。

實現

1、條件

SQL08R2的「數據庫鏡像」必須基於每一個使用完整恢復模式的數據庫來實現。對於SQL08R2不支持簡單恢復模式和大容量日誌恢復模式的數據庫鏡像。另外,不能鏡像「master」、「msdb」、「model」和「tempdb」等系統數據庫。

2、環境

測試環境爲一個LAN內,IP地址是192.168.0.0/24段,域名是punwar.cn。

DC:192.168.0.110/24——域控制器和DNS服務器;

SQL-1:192.168.0.111/24——SQL08R2主體服務器;

SQL-1:192.168.0.112/24——SQL08R2鏡像服務器;

SQL-1:192.168.0.113/24——SQL08R2見證服務器。

拓撲(如圖3)所示:

clip_p_w_picpath004

圖3

3、基本環境的準備

因爲系統平臺使用WIN08R2,並且啓用了防火牆設置,所以爲了SQL08R2可以正常工做,須要在防火牆上打開相應的端口。本文中介紹數據庫鏡像須要打開的端口是TCP-1433和TCP-5022端口。打開方式很是多,可是此處能夠結合基於域的組策略爲三臺SQL08R2服務器同時進行總體配置。

將三臺服務器放置在同一個OU中(如圖4)

clip_p_w_picpath005

圖4

經過DC的組策略管理器,爲其OU單首創建一個GPO,並定位其「計算機配置」——「管理模板」——「網絡/網絡鏈接/Windows防火牆/域配置文件」,啓用「定義入站端口例外」(如圖5),分別定義兩條:

1433:TCP:192.168.0.0/24:enabled:SQL Server

5022:TCP:192.168.0.0/24:enabled:SQL Server DBM

clip_p_w_picpath007

圖5

此外,對於SQL08R2來說,默認狀況下,SQL服務的TCP/IP訪問是禁用的,因此須要經過SQL Server Configuration Manager將其啓用(如圖6)。

clip_p_w_picpath009

圖6

4、準備數據庫

在登陸將做爲主體服務器的SQL-1服務器(如圖7),定位須要鏡像的數據庫(本文中是mydb數據庫),右擊選擇其「屬性」(如圖8)。

clip_p_w_picpath010

圖7

clip_p_w_picpath012

圖8

在其屬性窗口中,選擇「選項」頁,確認其恢復模式爲「完整」(如圖9)。

clip_p_w_picpath014

圖9

關閉該窗口,而後對該數據進行完整備份和事務日誌備份。選擇mydb數據庫節點,右擊選擇任務——備份(如圖10)。

clip_p_w_picpath016

在備份窗口中選擇備份類型爲「完整」,並指定目標備份包的路徑(如圖11),點擊「肯定」進行備份。

clip_p_w_picpath018

相同步驟,打開備份窗口,選擇備份類型爲「完整」,並指定目標備份包的路徑(如圖12),點擊「肯定」進行備份。這裏爲了方即可以選擇與完整備份相同的備份包。

clip_p_w_picpath020

圖12

將備份包複製到鏡像服務器SQL-2上(如圖13),而且從SQL管理控制檯登陸到SQL-2(如圖14)。

clip_p_w_picpath022

圖13

clip_p_w_picpath023

圖14

建立與主體服務器上須要鏡像的數據庫相同名稱的數據庫——mydb(如圖15)。同時,數據庫文件放置的位置應該相同,各屬性也應該配置相同。

clip_p_w_picpath025

圖15

在SQL-2上對新建的數據庫進行還原操做,即將從SQL-1上對數據庫的備份針對SQL-2上新建的mydb進行還原操做。右擊mydb數據庫選擇任務——還原——數據庫(如圖16)打開還原數據庫窗口。

clip_p_w_picpath027

圖16

選擇「原設備」,經過瀏覽添加從SQL-1複製的備份包(如圖17)。

clip_p_w_picpath029

圖17

再選擇頁中選擇「選項」,勾選「覆蓋現有數據庫」,同時選擇「不對數據庫執行任何操做,不回滾未提交的事務。能夠還原其餘事務日誌。(RESTORE WITH NORECOVERY)」(如圖18)。

clip_p_w_picpath031

圖18

點擊「肯定」,完成數據庫還原操做(如圖19)

clip_p_w_picpath033

圖19

5、配置主體/鏡像服務器

在SQL-1上,右擊mydb,選擇任務——鏡像(如圖20),打開鏡像數據庫配置窗口,點擊「配置安全性」按鈕(如圖21)。

clip_p_w_picpath035

圖20

clip_p_w_picpath037

圖21

在「包括見證服務器」頁中選擇「是」(如圖22),這樣能夠在以後實現自動故障轉移。單擊下一步。

clip_p_w_picpath039

圖22

在「選擇要配置的服務器」頁面中,能夠不勾選「見證服務器實例」(如圖23),由於見證服務器能夠在以後來進行配置。

clip_p_w_picpath041

圖23

點擊下一步,指定主體服務器監聽端口和端點名稱(如圖24),默認的端口爲TCP-5022端口,端點名稱自定義。

clip_p_w_picpath043

圖24

單擊下一步,指定鏡像服務器,在下拉菜單中選擇「瀏覽更多」(如圖25),在「鏈接到服務器」對話框中指定登陸到SQL-2(如圖26)。

clip_p_w_picpath045

圖25

clip_p_w_picpath046

圖26

仍然須要指定鏡像服務器的偵聽器端口和端點名稱,這裏的端口仍然使用默認的TCP-5022(如圖27)。

clip_p_w_picpath048

圖27

單擊下一步,指定服務器實例的服務帳戶,在此測試環境中統一使用管理員帳戶,可是在生產環境中建議專門爲其建立一個帳戶(如圖28)。

clip_p_w_picpath050

圖28

單擊下一步,顯示摘要,確認無誤,點擊「完成」(如圖29)進行端點配置。

clip_p_w_picpath052

圖29

成功完成配置後,系統提示是否馬上進行「開始鏡像」(如圖30),單擊開始鏡像。

clip_p_w_picpath054

圖30

完成數據庫同步後,鏡像狀態會顯示爲「已同步:數據庫已徹底同步」(如圖31)。由此,主體服務器和鏡像服務器的部署已經完成。

clip_p_w_picpath056

圖31

注:在最後一個步驟中,進行鏡像同步時,須要在每一臺SQL08R2服務器上啓用「Remote DAC」,不然可能會收到錯誤提示(如圖32)

clip_p_w_picpath058

 

圖32

 

在SQL08R2中啓用遠程管理員鏈接的方法以下:

右擊服務器節點,選擇「方面」(如圖33)

clip_p_w_picpath060

 

圖33

 

打開「查看方面」窗口,在「方面」下拉菜單中選擇「外圍應用配置器」(如圖34),指定「方面屬性」的「RemoteDacEnabled」值爲「True」(如圖35)。

clip_p_w_picpath062

 

圖34

 

clip_p_w_picpath064

 

圖35

 

6、實現手動故障轉移

首先,肯定目前主體服務器和鏡像服務器工做均正常,而且鏈接正常。目前在SQL-1上,mydb的狀態是「主體,已同步」(如圖36)

clip_p_w_picpath065

圖36

在SQL-1上打開mydb的「鏡像」配置窗口,確認運行模式爲「高安全」模式,而後點擊「故障轉移」按鈕(如圖37)。系統提示是否進行轉移(如圖38),單擊「是」進行轉移。

clip_p_w_picpath067

圖37

clip_p_w_picpath069

圖38

成功完成操做後,在SQL-1上數據庫mydb的狀態變爲了「鏡像,已同步/正在還原……」(如圖39);

clip_p_w_picpath070

圖39

而在SQL-2上,mydb的狀態變爲「主體,已同步」了(如圖40)。因而可知進行故障轉移的結果是使其主體/鏡像角色互換了。

clip_p_w_picpath071

圖40

7、實現自動故障轉移

自動故障轉移須要配置見證服務器,因爲此前在實現主體/鏡像服務器的過程當中,略過了見證服務器的配置,因此,如今須要手動從新配置見證服務器。

在主體服務器SQL-1上,右擊數據庫mydb,選擇任務——鏡像(如圖41),打開「鏡像」配置窗口,選擇「配置安全性」按鈕(如圖42)

clip_p_w_picpath073

圖41

clip_p_w_picpath075

圖42

將安全性配置爲包括見證服務器實例(如圖43)

clip_p_w_picpath077

圖43

單擊下一步,勾選「見證服務器實例」(如圖44)。

clip_p_w_picpath079

圖44

單擊下一步,確認主體服務器配置(如圖45),

clip_p_w_picpath081

單擊下一步,配置見證服務器,在下拉菜單中選擇「瀏覽更多」(如圖46)。鏈接並登陸到SQL-3(如圖47)

clip_p_w_picpath083

圖46

clip_p_w_picpath084

圖47

指定「偵聽器端口」爲默認的TCP-502和端點名稱(如圖48)

clip_p_w_picpath086

圖48

單擊下一步,指定域管理員做爲主體/鏡像/見證的服務帳戶(如圖49)

clip_p_w_picpath088

圖49

單擊下一步,確認摘要信息無誤,點擊「完成」(如圖50)。

clip_p_w_picpath090

圖50

成功完成配置後,在「鏡像」配置窗口中會顯示「見證服務器」信息,並自動選中「帶自動故障轉移功能的高安全(同步)」(如圖51)。

clip_p_w_picpath092

圖51

注:此時「不帶自動故障轉移功能的高安全(同步)」將不可以使用

斷開SQL-1的網絡鏈接,模擬主體服務器,即生產數據庫服務器出現故障。如:拔去SQL-1的網線。SQL-1上的mydb狀態將自動變爲「主體,已斷開鏈接/正在恢復」(如圖52)

clip_p_w_picpath093

圖52

而此時,在SQL-2上查看mydb狀態將自動變爲「主體,已斷開鏈接」(如圖53)。

clip_p_w_picpath094

圖53

8、驗證鏡像數據庫的數據同步。

在各角色都正常工做的狀況下,定位到主體服務器SQL-1上mydb數據庫,建立表t1。並在其中插入數據(如圖54)。

clip_p_w_picpath096

圖54

完成建表和插入數據後,拔掉SQL-1的網線,模擬故障。而後,登陸鏡像服務器SQL-2,定位到mydb數據庫,展開能夠看到鏡像同步過來的t1表,打開表能夠看到表中的數據也是同步過來的(如圖55)。

clip_p_w_picpath098

圖55

由此能夠看出,「數據庫鏡像」技術能夠成功對數據進行熱備,使SQL08R2的可用性得以大大提升。此外,須要注意的是,出現故障後的服務器訪問定位須要在SQL語句級別進行設計,在此將再也不進行敘述。

參考文章:

《微軟技術資源庫SQL Server 2008 R2數據庫鏡像》http://technet.microsoft.com/zh-cn/library/bb934127.aspx

相關文章
相關標籤/搜索