
SQL Server 2025 Always On 建置筆記:兩節點 WSFC 與獨立 SMB Witness
· #SQL Server #Always On #WSFC #高可用性 #SMB Witness #Windows Server
這篇是在 Windows Server 2025 上,用兩台 SQL Server 2025 + WSFC(Windows Server 容錯移轉叢集) + 獨立 SMB 檔案共用見證 建置 Always On 可用性群組(Availability Group, AG)的實務筆記。除了設定步驟,也補上實務上最容易卡關的地方與一份檢查清單。
架構與名稱規劃
先規劃好名稱,後面每個步驟都會用到:
| 角色 | 名稱 / 位置 |
|---|---|
| SQL 主機 1 | PSSSQL01 |
| SQL 主機 2 | PSSSQL02 |
| WSFC 叢集名稱 | PSSCLUSTER |
| Always On 可用性群組 | PSSAG |
| AG Listener | PSSSQL |
| Witness 共用 | \\FileServer\SQLWitness |
叢集電腦帳號是 PSSCLUSTER$(AD 中的電腦物件)。
一、前置準備
- 兩張網卡:一張公開網路(要指定好 gateway 與 DNS),另一張私網不要設 gateway,用來走叢集心跳與 AG 資料同步。
- 安裝 WSFC:叢集本身使用公開網路的一組 IP。
- 建立網域帳號(例如
XXX\agadmin),並加入每台主機的 administrators 群組。 - 以 agadmin 作為 SQL Server 與 SQL Agent 的啟動帳號。
- AG Listener:IP 指定在公開網路的一組 IP、port
1433;其名稱即為用戶端連線的 DNS 名稱(例如PSSSQL)。
二、SMB Witness 設定
Witness 是一個獨立的檔案伺服器共用資料夾,提供叢集仲裁的投票。
共用權限設定
選擇目錄 SQLWitness 並設為 SMB 共用:
- 共用 → 進階共用 → 權限:加入叢集電腦帳號,給「變更+讀取」
- 安全性(NTFS):叢集電腦帳號給「修改」
- 共用 → 快取:設定為「不允許檔案或程式離線使用」
TIPS:WSFC 叢集名稱是 PSSCLUSTER,叢集電腦帳號就是
網域\PSSCLUSTER$。在搜尋物件時,於「物件類型」勾選電腦,即可搜尋到叢集名稱。
設定叢集仲裁
- 開啟「伺服器管理員 → 工具 → 容錯移轉叢集管理員」
- 左側選取叢集名稱 → 右鍵 → 更多動作 → 設定叢集仲裁設定
- 選擇「選取仲裁見證」
- 選擇「設定檔案共用見證」
- 輸入:
\\FileServer\SQLWitness
三、Always On 建置要點
- 版本要求:Always On 需要 SQL Server Enterprise(Standard 僅支援 Basic AG:2 節點、單一資料庫、無可讀取次要)。
- 啟用功能:先在「SQL Server 組態管理員」勾選 Enable Always On Availability Groups,然後重新啟動 SQL 服務。
- 兩台 SQL 版本必須一致。
- 資料庫需為 Full Recovery Model,且先做一次完整備份才能加入 AG。
- 建立資料庫鏡像端點並授權(
GRANT CONNECT ON ENDPOINT::…),副本之間才能同步。 - 依序建立 AG、加入次要副本、建立 Listener(名稱 = DNS 名稱)。
四、最容易卡關的地方
防火牆
| 用途 | 埠 |
|---|---|
| AG 資料同步(資料庫鏡像端點) | 5022/TCP(預設,可自訂) |
| SQL 連線 | 1433/TCP |
| SMB 檔案共用見證 | 445/TCP |
| WSFC 叢集通訊 | 3343/UDP + 135/RPC 動態埠 |
AD 與權限陷阱
- 在 AD 建立 AG Listener 的電腦物件(VCO) 需要權限——慣例是預先在 AD 給叢集名稱物件
PSSCLUSTER$「建立電腦物件」權限,否則建立 Listener 會失敗。 agadmin建議額外給 Perform Volume Maintenance Tasks(支援資料庫檔即時初始化)。- 節點之間時間要同步(w32time),否則 Kerberos 會出問題。
網路設定
- WSFC 建立後,建議把私網卡設為「僅叢集通訊」、公開網卡設為「僅用戶端通訊」,避免心跳走錯網路。
- FileServer 最好不要是叢集節點之一,避免投票邏輯混淆(本架構採獨立主機,正確)。
五、上線前檢查清單
- 兩張網卡:公開網有 gateway/DNS、私網無 gateway
- WSFC 已建立,叢集 IP 在公開網段
-
agadmin已加入兩台主機 administrators,並作為 SQL 與 SQL Agent 服務帳號 - SMB Witness:共用權限(變更+讀取)、NTFS(修改)、快取停用離線
- 仲裁見證已設為
\\FileServer\SQLWitness - 兩台 SQL 版本一致、Enterprise 版
- 已勾選 Enable AlwaysOn 並重啟 SQL 服務
- 資料庫為 Full Recovery Model 且已完成完整備份
- 資料庫鏡像端點已建立並授權
- Listener 名稱與 DNS 對應正確(port 1433)
- 防火牆已開:5022、1433、445、3343/UDP、RPC
- 已驗證容錯移轉與用戶端透過 Listener 連線
本文為實機建置筆記整理,環境為 Windows Server 2025 + SQL Server 2025 + WSFC + 獨立 SMB 檔案共用見證。