[MSSQL]利用 本機帳號(No Domain Name 環境) 設定 SQL Server 鏡像(Database Mirroring)

摘要: SQL Server database mirroring with local user account(no domain name).

使用說明:

本章將介紹如何在利用"本機帳號"(或是在沒有Domain Name 環境)來設定 SQL Server 鏡像
(註:設定 SQL Server 鏡像主要有三種方式:
1. 在有 Domain Name 環境可以透網域帳號來設定
2. 在沒有 Domain Name 環境可以每台電腦的本機帳號來設定
3. 透過憑證的方式進行)

 

環境說明:

第一台
角色作用: Principal Server
電腦名稱: PC1
資料庫名稱: TestDB
本機帳號: PC1\admin1
資料庫: SQL Server 2014 Developer Edition
作業系統: Windows 7 Service Pack 1
第二台
角色作用: Mirroring Server
電腦名稱: PC2
本機帳號: PC2\admin1
資料庫: SQL Server 2014 Developer Edition
作業系統: Windows 7 Service Pack 1
(註: Principal 和 Mirroring 要使用相同的 SQL Server 版本)
第三台
角色作用: Witness Server
電腦名稱: PC3
本機帳號: PC3\admin1
資料庫: SQL Server 2014 Express Edition
作業系統: Windows 7 Service Pack 1

如果有防火牆請記得開啟 SQL Server TCP Port(預設:1433) 和 鏡像端點 Port(預設:5022)

 

設定教學說明:

將對 PC1 的 資料庫 TestDB 設定鏡像。

Step 1-1.

將 PC1、PC2 的 " SQL Server 服務"和 "SQL Server Agent 服務" 的登入身分 都改為的本機帳號 admin1,如下圖:

 

Step 1-2.

PC3 的 " SQL Server 服務" 的登入身分 改為的本機帳號 admin1,如下圖:

 

Step 2.

將 PC1 的資料庫TestDB做 完整備份交易紀錄備份 後,在 PC2 做備份還原動作
PC2 做還原 "完整備份" 時,請記住要到還原的"選項"頁面,選擇 RESTORE WITH NORECOVERY 做還原的項目,如下圖:

 

PC2 做 "交易紀錄" 還原時,請也記住要到還原的"選項"頁面,選擇 RESTORE WITH NORECOVERY 做還原的項目,如下圖:

 

如果成功做完還原動作,PC2 的 "TestBD"資料庫狀態會是"正在還原…",如下圖:

 

Step 3.

對 PC1、PC2、PC3 加入登入身分,分別是自己的本機帳號 admin1(如:PC1要加入 PC1\admin1,PC2要加入 PC2\admin1,PC3要加入 PC3\admin1),
如果SQL Server 已經有加入自己的本機帳號 admin1,Step 3.就可以忽略不用重複做了,如下圖:

 

Step 4.

在 PC1 做鏡像設定動作,如下圖(step by step):


 

由於在 No Domain Name 環境下,所以下圖的服務帳戶無作用,因此皆留空白(在後面會透過手動方式對"端點"加入本機帳號 admin1連入的權限)

 

按下"完成"按鈕,即會跳到下圖,這時候按下"不要啟動鏡像"按鈕(因為後面步驟我們要手動對"端點"加入 本機帳號admin1 連入的權限,所以等加入帳號連入權限後再來操作此畫面)

 

按下"不要啟動鏡像"按鈕,即會跳到下圖,這時候先不要按下任何按鈕,先保留此畫面(後面Step 6 會用到)

 

Step 5.

我們要手動對 "Mirror"端點 加入 本機帳號admin1 可以連入的權限,
因此對 PC1 執行下面的 SQL指令

USE [master]
GRANT CONNECT ON ENDPOINT::[Mirror] TO [PC1\admin1]


對 PC2 執行下面的 SQL指令

USE [master]
GRANT CONNECT ON ENDPOINT::[Mirror] TO [PC2\admin1]


對 PC3 執行下面的 SQL指令

USE [master]
GRANT CONNECT ON ENDPOINT::[Mirror] TO [PC3\admin1]

如下圖:

 

Step 6.

就下來準備啟動鏡像,這時候我先回到 Step4 最後所停留的畫面,如下圖,按下 "啟動鏡像" 按鈕

 

如果出現提示 "缺少完整網域名稱(FQDN)" 時,請下按""按鈕

 

啟動成功後,PC1 的 TestDB 資料庫狀態為"主體,已同步處理",PC2 的 TestDB 資料庫狀態為"鏡像,已同步處理/正在還原...",如下圖

註:如果發生 1418 錯誤時,請重新檢查 Step1 或 Step5 有沒有遺漏做的動作,或是 Port 1433、5022 被防火牆擋住。

 

主要參考:

SQL Server - 如何建立 Database Mirroring
[Windows][SQL]架設 DB Mirroring 的環境在 Windows 2012 ( 1/2 )
[Windows][SQL]架設 DB Mirroring 的環境在 Windows 2012 ( 2/2 )
[SQL]在 Workgroup 環境下設定 SQL Server 資料庫鏡像 ( Database Mirroring )
SQL Server 2008R2 Mirroring with No Domain (SQL 鏡像)
mirror:error-1418

※在此感謝所有的幫助者,感謝~