總覺得這不會是最後一次設定SQL Server之鏡像功能,這次過程中花費不少時間在處理設定面的問題,故記錄下來以便未來回顧。
SQL Server現在提供了數種資料庫同步機制,鏡像屬於其中一種,主要是讓資料庫寫入與更新的資料可以同時更新到不同的SQL Server主機上,讓資料同時存在多台SQL Server上,降低SQL Server出問題或主機出問題時,資料損失的量。
SQL Server目前應該有更好的機制,這次我使用到的是鏡像的功能,故針對鏡像的設定與操作做一個記錄。
檢查服務設定,確定以相同帳號執行SQL Server與SQL Server Agent
檢查兩台主機以之SQL SERVER與SQL SERVER AGENT以相同帳號密碼執行,帳號需要透過旁邊『瀏覽(B)』按鈕來找到對應帳號,選擇對應帳號後會自動帶入。
SQL Server:

SQL Server Agent:

-- Full Backup
BACKUP DATABASE YOUR_DB_NAME to DISK=N'PATH_TO_FILE\backup.bak'
-- Transaction Log Backup
BACKUP LOG YOUR_DB_NAME to disk=N'PATH_TO_FILE\backup.trn'
接著連線至鏡像主機,依序執行下列步驟

選擇檔案來源

必須選擇 RESTORE WITH NORECOVERY



選擇來源


至主體資料庫(Principal) ,選擇鏡像


選擇下一步

因為這次鏡像沒有見證(Witness)主機,故選擇否,並按下一步

確認主體資料庫資訊與使用之Port號

設定鏡像資料庫主機使用之Port號與連線資訊,選擇好鏡像資料庫主機後點選連接,確保可憐至鏡像資料庫中

若未加入DOMAIN,則直接選擇下一步

最後確認資訊

按下完成後,會開始建立鏡像設定

等待設定完成

完成後,會詢問是否啟動鏡像,直接選擇啟動即可

如果出現這個錯誤,表示當下使用的SSMS可能是 2016版本,這是一個存在於SSMS 2016 版的 bug,可以改使用其他版本,如SSMS 2014來執行就可以解決,或是改以指令方式執行即可。

ALTER DATABASE YOUR_DB_NAME SET PARTNER = 'TCP://PRINCIPAL_DB_IP:5022'
ALTER DATABASE YOUR_DB_NAME SET PARTNER = 'TCP://MIRROR_DB_IP:5022'

鏡像資料庫:


到這邊基本上已經設定完成,如果有遇到其他錯誤代碼為 1418 之錯誤,可參考下列連結之建議處理:
Suggestions for 1418
How to resolve Error: 1418 in sql server while mirroring
不得不說,設定中最痛苦的就是找 1418這個代碼代表的問題與排除,更痛苦的是明明照著步驟作卻沒辦法設定成功,試了許久才查到原來是最新的SSMS功能有bug,用舊版的就沒問題,這邊實在耗掉太多時間,若不是幸運查到文章,現在可能還在悲劇之中。