資料庫鏡像是一種簡單的策略,提供了下列優點:
[增加資料保護]資料庫鏡像可提供完整或近乎完整的資料備援性,端視作業模式是高安全性模式
或高效能模式而定。
在 SQL Server 2008 Enterprise 或更新版本上執行的資料庫鏡像夥伴伺服器
會自動嘗試解決會阻止讀取資料頁面的特定類型錯誤。無法讀取頁面的夥伴
會向其他夥伴要求全新副本。如果這個要求成功,無法讀取的頁面就會使用副本取代
,這通常會解決錯誤
。
[提高資料庫的可用性]
發生損毀事件時,在具有自動容錯移轉的高安全性模式下,自動容錯移轉便會迅速將
資料庫的待命副本變成線上狀態 (無資料遺失)。在其他作業模式下,資料庫管理員則
可選擇對資料庫的待命副本進行強制服務 (可能發生資料遺失)。
[提升實際執行的資料庫在升級期間的可用性]
若要將鏡像資料庫的停機時間減至最少,您可以循序升級參與資料庫鏡像工作階段的
SQL Server 執行個體。這只需要承擔單一容錯移轉的停機時間。
[ 本實驗規劃環境 ]:
SQL Server 2008 (網域)架構運行
預設執行個體: KEYNES ,Primary DB
執行個體Fair: KEYNES\Fair ,見證伺服器角色
執行個體MIRROR: KEYNES\MIRROR ,Standby DB
我們將建立使用者DB: keynes 在 Primary DB 上
將KEYNES(Primary DB) 還原模式設定為FULL
接者
替KEYNES DB 進行完整備份加入 with init 參數 #新寫入紀錄將覆蓋舊紀錄
.....後續操作內容讀者請往下參閱
[KEYNES 主體DB 執行個體]
(1.) 建立 KEYNES DB , 修改DB"還原狀態"為FULL
隨後進行初次完整DB備份 #此例備份裝置: 'E:/backupz'
create database keynes
go
alter database keynes set recovery full #recovery 設置為full
go
backup database keynes to disk='E:\backupz' with init
接者請將KEYNES DB 交易紀錄檔做為備份
BACKUP LOG keynes TO DISK = 'E:\backupz'
(2)[KEYNES Mirror DB 執行個體]: 切換至Mirror 執行各體執行
接者請先建立KEYNES DB ,然而我們需利用上一步 備份&紀錄檔案進行初始化 NoRecovery
restore database keynes from disk='E:\backupz' with replace,norecovery,
move 'keynes' to 'C:\Program Files\Microsoft SQL Server\MSSQL10.MIRROR\MSSQL\DATA\keynes.mdf'
,move 'keynes_log' to'C:\Program Files\Microsoft SQL Server\MSSQL10.MIRROR\MSSQL\DATA\keynes_log.ldf'
#由於我們執行個體存放同一台Server , 我們可以方便利用備份裝置backupz 進行還原
此例將備份裝置內keynes.mdf & keynes_log.ldf 利用move 參數移動到data資料夾下
完成一次備份後,接者繼續還原交易紀錄檔
RESTORE LOG keynes FROM DISK = 'E:\backupz' WITH FILE=1, NORECOVERY
GO #設定為NORECOVERY 還原模式, WITH FILE=1 還原第一比交易紀錄
[鏡像設置組態開始]
[KEYNES 主體DB 執行個體]
點選 KEYNES 資料庫(右鍵/屬性/鏡像) ,點選"設定安全性" 進行設定
下一步: 由於我們要製作"自動容錯轉移設計" 故我們需要 "見證伺服器"
勾選: "見證伺服器執行個體"
組態主體伺服器個體(KEYNES )
設定: 主體伺服器監聽Port號
端點名稱: 本例設為: 鏡像_主體
組態鏡像伺服器個體(KEYNES\MIRROR )
設定: 鏡像伺服器監聽Port號
端點名稱: 本例設為: 鏡像_MIRROR
組態鏡像伺服器個體(KEYNES\FAIR )
設定: 見證伺服器監聽Port號
端點名稱:本例設為: 鏡像_見證
設定完成後_點選"完成" SQL Server 設置Mirror 成功
#本例暫不急於啟動 鏡像,隨後再手動啟動"鏡像" 亦可
接者我們回到主體執行個體(KEYNES) 之"鏡像" 屬性 設定頁面,手動"啟用鏡像" 成功
鏡像作業模式: 分 高效能,高保護,高可用性(唯有"高可用性"可做到自動Fail over)
其他二模式必須手動轉移至鏡像資料庫
(若需手動轉移鏡像.請點選下圖中: "容錯轉移" Button)即可
最下方"狀態": 可檢視目前鏡像同步狀態...
[鏡像自動容錯移轉測試]
我們在主體伺服器KEYNES DB 下建立新Table 並建立兩筆新Record 寫入 monkey3 table
接者我們回到 KEYNES DB 屬性\鏡像 ,點選我們下圖中提到"容錯移轉"Button
將 主體伺服器個體(KEYNES) 身份 手動轉移到(KEYNES\Mirror) 運作
並檢驗上一步寫入資料是否有被同步到鏡像伺服器?
點選 "是" 進行容錯移轉
切換 [鏡像執行個體 KEYNES\MIRROR] ,檢驗 Mirror 角色是否UP
由下圖可知_主體已由原 KEYNES 執行個體 , 順利移轉到 KEYNES\MIRROR
接下來我們利用SQL 查尋Mirror 執行體是否亦同步從主體執行體複寫新Record
下圖顯示 Mirror (KEYNES\MIRROR)同步主體執行個體(KEYNES)已ok
最後我們查看_KEYNES\MIRROR 鏡像狀態 : 已同步處理,資料庫已經完全同步
結語: KEYNES 測試 資料庫鏡像 外 MS SQL 亦多了 LOG Shipping 交易紀錄檔傳送 容錯機制
有時間,再將LAB Po 上網做介紹!