SQL Server 2012 數(shù)據(jù)庫鏡像配置完整篇
“數(shù)據(jù)庫鏡像”是一種提高 SQL Server 數(shù)據(jù)庫的可用性的解決方案。 鏡像基于每個數(shù)據(jù)庫實現(xiàn),并且只適用于使用完整恢復模式的數(shù)據(jù)庫。數(shù)據(jù)庫鏡像維護一個數(shù)據(jù)庫的兩個副本,這兩個副本必須駐留在不同的 SQL Server 數(shù)據(jù)庫引擎 服務器實例上。 通常,這些服務器實例駐留在不同位置的計算機上。 啟動數(shù)據(jù)庫上的數(shù)據(jù)庫鏡像操作時,在這些服務器實例之間形成一種關系,稱為“數(shù)據(jù)庫鏡像會話”。其中一個服務器實例使數(shù)據(jù)庫服務于客戶端(“主體服務器”), 另一個服務器實例則根據(jù)鏡像會話的配置和狀態(tài),充當熱備用或溫備用服務器(“鏡像服務器”)。 具有自動故障轉移功能的高安全性模式要求使用第三個服務器實例,稱為“見證服務器”。
· 主體服務器 (principal server)
在數(shù)據(jù)庫鏡像中,是指當前作為主體數(shù)據(jù)庫的數(shù)據(jù)庫所屬于的伙伴。
· 鏡像服務器 (mirror server)
在數(shù)據(jù)庫鏡像配置中,鏡像數(shù)據(jù)庫所在的服務器實例。
· 見證服務器 (Witness)
僅用于高安全性模式,SQL Server 的一個可選實例,它能使鏡像服務器識別何時要啟動自動故障轉移。 與這兩個故障轉移伙伴不同的是,見證服務器并不能用于數(shù)據(jù)庫。 見證服務器的唯一角色是支持自動故障轉移。
所有數(shù)據(jù)庫鏡像會話都只支持一臺主體服務器和一臺鏡像服務器。 下圖顯示了該配置:

右圖顯示了包含見證服務器的配置:
整個SQL Server 2012 數(shù)據(jù)庫鏡像的配置分為以下6個小章節(jié)
· 環(huán)境準備
· 安裝數(shù)據(jù)庫功能
· 啟用TCP/IP協(xié)議和RemoteDAC
· 數(shù)據(jù)庫準備工作
· 數(shù)據(jù)庫鏡像配置
· 功能驗證
1. 環(huán)境準備
1.1 本次Demo使用的服務器清單如下:
No. |
主機名 |
服務器角色 |
操作系統(tǒng) |
IP地址 |
1 |
DC01.huangjh.com |
AD/DNS |
Windows Server 2012 R2 |
192.168.8.8/24 |
2 |
SQL01.huangjh.com |
數(shù)據(jù)庫服務器(主體) |
Windows Server 2012 R2
SQL Server Enterprise 2012 SP1 |
192.168.8.10/24 |
3 |
SQL02.huangjh.com |
數(shù)據(jù)庫服務器 (鏡像) |
Windows Server 2012 R2
SQL Server Enterprise 2012 SP1 |
192.168.8.20/24 |
4 |
SQL03.huangjh.com |
數(shù)據(jù)庫服務器(見證) |
Windows Server 2012 R2
SQL Server Enterprise 2012 SP1 |
192.168.8.30/24 |
1.2 準備好一臺域控服務器和三臺數(shù)據(jù)庫服務器,配置網(wǎng)絡并加入域huangjh.com
1.3 三臺SQL服務器需要開放1433和5022端口,為了實驗方便本次Demo直接手動關閉防火墻

2. 安裝數(shù)據(jù)庫功能
2.1 在SQL01、SQL02和SQL03三臺數(shù)據(jù)庫服務器,打開服務器管理器并根據(jù)向導完成.Net framework 3.5的安裝



2.2在SQL01、SQL02和SQL03三臺數(shù)據(jù)庫服務器分別插入并運行SQL Server 2012 Enterprise SP1安裝程序,點擊“安裝”—“全新SQL Server獨立安裝或向現(xiàn)有安裝添加功能”,根據(jù)向導完成SQL功能的安裝

2.3 在”功能選擇”頁面,根據(jù)實際應用需求勾選所需的功能,下一步

2.4 在”服務器配置”頁面,修改服務賬戶為域賬戶(確保該賬戶密碼永不過期),啟動類型為”自動”

2.5 根據(jù)向導在SQL01、SQL02、SQL03完成數(shù)據(jù)庫功能的成功安裝

3. 啟用TCP/IP協(xié)議和RemoteDAC
3.1 在SQL01、SQL02、SQL03中分別打開SQL Server配置管理器,啟用TCP/IP協(xié)議

3.2 在SQL01、SQL02、SQL03中分別打開SQL Server Management Studio,右鍵實例選擇“方面”

3.3 選擇“外圍應用配置器”—將屬性“RemoteDACEnabled”的值改為“True”



4. 數(shù)據(jù)庫準備工作(創(chuàng)建、備份和還原數(shù)據(jù)庫)
4.1 在SQL01(主體服務器)右鍵”數(shù)據(jù)庫”—“新建數(shù)據(jù)庫”

4.2 在”常規(guī)“頁面輸入數(shù)據(jù)庫名稱

4.3 在”選項”頁面確保恢復模式為”完整“

4.4 右鍵”DB01”選擇”任務“—”備份“

4.5 備份類型選擇”完整“,點擊”確定“

4.6 備份成功完成后點擊”確定“

4.7 選擇備份類型為”事務日志“,點擊”確定“完成對事務日志的備份

4.8 將備份文件拷貝到鏡像服務器SQL02.huangjh.com對應的路徑,默認備份路徑為
“C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup”

4.9 在鏡像服務器SQL02.huangjh.com打開SQL Server Management Studio,右鍵“數(shù)據(jù)庫”選擇“創(chuàng)建數(shù)據(jù)庫”

4.10 輸入數(shù)據(jù)庫名稱,點擊“確定”(此數(shù)據(jù)庫名稱必須與SQL01中創(chuàng)建的數(shù)據(jù)庫名稱保持一致)

4.11 右鍵新創(chuàng)建的數(shù)據(jù)庫“DB01”--選擇“任務”—“還原”—“數(shù)據(jù)庫”

4.12 選擇“設備”,點擊右邊“…”

4.13 點擊”添加”

4.14 選擇剛才從SQL01復制的備份文件,點擊”確定”

4.15 點擊“確定”

4.16 勾選要還原的備份集

4.17 在“選項”頁面勾選“覆蓋現(xiàn)有數(shù)據(jù)庫”,恢復狀態(tài)選擇“RESTORE WITH NORECOVERY”,取消勾選“還原前進行結尾日志備份”,點擊“確定”

4.18 點擊“確定”

4.19 數(shù)據(jù)庫DB01顯示”正在還原…“

5. 數(shù)據(jù)庫鏡像配置
5.1 在主體服務器SQL01.huangjh.com右鍵“DB01”選擇“任務”—“鏡像”

5.2 點擊“配置安全性”

5.3 下一步

5.4 選擇“是”,下一步

5.5 勾選“見證服務器實例”,下一步

5.6 下一步

5.7 點擊“瀏覽更多”

5.8 輸入鏡像服務器名稱SQL02,點擊”連接”

5.9 選擇鏡像服務器實例SQL02,下一步

5.10 同樣選擇見證服務器實例SQL03,下一步

5.11 輸入實例服務賬戶huangjh\administrator,下一步

5.12 點擊“完成”

5.13 成功配置后,點擊”關閉”

5.14 點擊“開始鏡像”

5.15 狀態(tài)為“已同步:數(shù)據(jù)庫已完全同步”,點擊“確定”

5.16 在主體服務器SQL01看到的數(shù)據(jù)庫狀態(tài)為”主體,正在同步”

5.17 在鏡像服務器SQL02看到的數(shù)據(jù)庫狀態(tài)為”正在還原…”

6. 功能驗證
6.1 在主體服務器SQL01右鍵數(shù)據(jù)庫“DB01”選擇“任務”—“啟動數(shù)據(jù)庫鏡像監(jiān)視器”

6.2 在此頁面可看到數(shù)據(jù)庫鏡像的同步狀態(tài)等

6.3在主體服務器SQL01右鍵數(shù)據(jù)庫“DB01”選擇“屬性”

6.4 在選擇頁“鏡像”點擊“故障轉移”

6.5 點擊“是”

6.6 此時主體服務器為SQL02,鏡像服務器SQL01,說明手動故障轉移成功

6.7 將SQL02(此時的主體服務器)關機,此時自動將主體故障轉移到SQL01中

6.8 此時又回到了原先的主體服務器SQL01,鏡像服務器SQL02,狀態(tài)為”沒有連接:無法連接鏡像服務器實例或見證服務器實例”

6.9 將SQL02開機后恢復正常后,狀態(tài)為”已同步:數(shù)據(jù)庫已完全同步”,說明自動故障轉移成功。
