咱們對幾個概念簡單的介紹一下:
事務安全性:
FULL 主體和鏡像數據庫同步傳輸的模式,
主體在發送日誌後等待鏡像的確認
主體和鏡像的日誌徹底一致
OFF
主體和發送日誌後不等待鏡像的確認,繼續處理後繼的操做。
主體失敗時在鏡像上可能丟失部分數據
仲裁:在高可用性或是高級別保護模式下須要仲裁。以決定那一個服務器是主體服務器,
仲裁的改變將致使故障轉移,如主體服務器發生故障了,則會發生仲裁的改變,將鏡像服務器定爲主體服務器。
造成仲裁的形式通常有這麼幾種:
下面咱們就來看一下如何配置數據庫鏡像: 這應該是你們感受很興奮的,由於聽我西里譁拉的講了半天。終於不用再受罪了。其實配置很簡單的,只要注意幾個步驟就好了。
準備鏡像數據庫 在鏡像服務器上準備鏡像數據庫
建立數據庫鏡像端點 在各個服務器上配置鏡像端點
配置安全性
啓動數據庫鏡像
下面咱們就具體看一下如何去作,有哪些須要注意:
這裏須要提到的一點的就是在SQL SERVER2005剛剛發佈出來的時候數據庫鏡像這個服務默認是關閉的,也是不支持的。在剛剛發佈SQL SERVER2005正式版本的時候,認爲數據庫鏡像這個技術還不成熟,有待完善。因此若是你使用的是正式版本則沒法使用這個技術。
那麼須要下載SP1或是以上的補丁。
·
版本號
|
|
9.00.1399
|
|
9.00.2047
|
|
9.00.3042
|
|
咱們這裏直接打SP2補丁:略
準備數據庫:
條件 很重要:
主體數據庫必須是徹底恢復模式
建立鏡像數據庫
在主體數據庫上作一個徹底備份,在鏡像服務器上使用NORECOVER選項恢復主體數據庫。
繼續恢復後續日誌備份(NORECOVER) NORECOVER 很重要
配置數據庫鏡像端點 (ENDPOINT)
數據庫鏡像端點實現鏡像會話的通信,也就是各個服務器的入口點,有點相似於端口號。但不是。也就是說你建立了這個端點以後,各個服務器之間就可使用TCP協議進行實例間的通信。每一個鏡像端點上都在一個惟一的TCP端口號上偵聽,通常你們都使用5022號端口。
建立數據庫鏡像端點:
須要在每一個實例上建立
只有管理員組的成員才能權限。
設置端點角色 即有的是夥伴端點,有的是見證端點,因此必需要指定。
激活端點 默認是不能使用的,因此要激活。
下面咱們看一下使用T-SQL 語句建立端點
CREATE ENDPOINT DBMIRRORING
AS TCP(LISTENER_PORT=5022)固然也可使用其餘端口,只要沒有被使用
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) GO
-- 建立的是一個數據庫鏡像端點,角色是夥伴,通信過程是經過加密的。
ALTER ENDPOINT DBMIRRORING STATE=STARTED GO --激活
此時這個端點就開始偵聽了。
建立見證服務器的端點:建立的時候激活端點。
CREATE ENDPOINT DBMIRRORING
STATE=STARTED AS TCP(LISTENER_PORT=5022)
For DATABASE_MIRRORING (ROLE=WITNESS,ENCRYPTION=SUPPORTED)
配置安全性:
數據庫鏡像中的實例之間必須可信 都使用WINDOWS 身份驗證或是基於證書的身份驗證(非信任域),爲了簡單爲例,咱們使用WINDOWS身份驗證。
賦予服務賬戶對端點的鏈接權限。
在這裏咱們都使用相同的用戶名口令
下面咱們建立完端點後就要啓動數據庫鏡像,注意順序很重要
指定鏡像數據庫的夥伴 在鏡像服務器上操做
指定主體數據庫夥伴 在主體服務器上操做
指定見證服務器 在見證服務器上操做
指定事務安全選項 FULL 仍是 OFF
對應語句分別是:
ALTER DATABASE NOTHWIND SET PARTNER=N’TCP:/SERVER1H:
5022’
–-在SERVER2(鏡像)上執行
ALTER DATABASE NOTHWIND SET PARTNER=N’TCP:/SERVER2:
5022’
--在SERVER1(主體)上執行
ALTER DATABASE NOTHWIND SET WITNESS=N’TCP:/SERVER3:
5022’
--在SERVER1(主體)上執行
ALTER DATABASE NOTHWIND SET SAFETY FULL;
--在SERVER1(主體)上執行 高可用性
固然也可使用SMSS
那麼完成以後怎麼來查看數據庫鏡像是否完成,能夠經過如下兩種方法:
SMSS 數據庫屬性---鏡像狀態
T-SQL
SELECT * FROM SYS.DATABASE——MIRRORING
SELECT * FROM SYS.DATABASE——MIRRORING——WITNESS
下面咱們具體看一下配置高可用性數據庫鏡像
咱們使用T-SQL 能夠很明顯的看到配置的過程。
下面我來介紹一下咱們所使用的環境:
SERVER1爲主體服務器
SERVER2爲鏡像服務器
SERVER3 爲見證服務器
首先咱們要
準備數據庫:一個是備份主體數據庫,一個是在鏡像服務器上恢復。
因此
在SERVE1上:
BACKUP DATABASE NORTHWIND TO DISK=’C:\NW.BAK’
在 SERVER2上:
RESTORE DATABASE NORTHWIND FROM DISK=’C:\NW.BAK’ WITH NORECOVERY
建立數據庫端點:
1.
在SERVER1上建立數據庫鏡像端點,用於夥伴通信
Create endpoint dbmirrep as tcp (listener_port=5022)
For database_mirroring (role=partner,encryption=supported );
Alter endpoint dbmirrep state=started
經過圖形界面能夠查看到
2.
在SERVER2上建立數據庫端點,也是用於夥伴通信
Create endpoint dbmirrep as tcp (listener_port=5022)
For database_mirroring (role=partner,encryption=supported)
Alter endpoint dbmirrep state=started
3.
在SERVER3上建立鏡像端點,用於見證通信
CREATE ENDPOINT DBMIRREP AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING (role=witness,encryption=supported)
ALTER
ENDPOINT
DBMIRREP
STATE
=STARTED
4.
檢查端點配置
SELECT * FROM SYS.DATABASE_MIRRORING_ENDPOINTS
也能夠經過圖形界面查看
配置數據庫鏡像安全性:也就是指定哪些用戶可使用這個端點。確定是管理員,通常用戶不讓他訪問。