SQL Server 故障轉移FCI 實例端口修改

本文所述端口修改,本質是一種替代方案,因爲,我還無法找到一個直接修改默認端口1433的方案(在我所測試修改方案中,只要修改掉1433默認端口,FCI 數據庫實例會掛機,無法啓動)。所謂的替代方案是保留1433默認端口的偵聽,新加入一個偵聽端口。

本文的測試環境是Windows 2012 standard系統,域環境,SQL Server 2016企業版。

備份註冊表

爲防止修改操作失誤,導致 FCI 崩潰,可以先備份數據庫的註冊表,以便出現問題的時候,可以還原恢復。備份註冊表操作如下:

Ctrl+R→輸入regedit,打開註冊編輯器,找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server,右擊Microsoft SQL Server,點擊導出:

命名導出註冊表文件,並選擇路徑,點擊保存即可備份完成,如下圖。

還原註冊表

同樣在註冊編輯器中,點擊文件,點擊導入,找到上面備份註冊文件

點擊打開,即可恢復備份註冊表了。

關閉實例檢查點

獲取註冊表中實例檢查點的名稱

get-clustercheckpoint -registrycheckpoint

在 FCI 的一個節點上移除SQLServer 註冊表上的檢查點,如下:

PS C:\Users\administrator.ALWAYSON0> get-clustercheckpoint -registrycheckpoint | remove-clustercheckpoint -registrycheckpointRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Cluster”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Replication”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\Providers”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\SQLServerSCP”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\CPE”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\SQLServerAgent”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): nRemove-ClusterCheckpoint你確定要刪除資源“SQL Network Name (alwaysOnSQL)”上的註冊表檢查點“SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL13.MSSQLSERVER\MSSQLServer”嗎?[Y] 是(Y)  [N] 否(N)  [S] 掛起(S)  [?] 幫助 (默認值爲“Y”): y

注意:只需要移除MSSQLServer 的檢查點,即最後一個選擇“Y”

配置管理器中增加偵聽端口

在兩個節點上分別使用 SQL Server 配置管理器,增加端口:

注意:

  • 端口用英文逗號分隔開來

  • 驗證端口是否被佔用(如果被佔用,SQL Server實例將會處於掛起狀態),兩個節點都需要檢查,驗證方法如下:

netstat -aon | findstr "3433"

說明端口被任務3312佔用,要查看是哪個應用佔用了端口,可以使用如下腳本:

tasklist | findstr "3312"

當然也可以從任務管理器中查看:

在註冊表中添加檢查點

add-clustercheckpoint -resourcename "SQL Network Name (alwaysOnSQL)" -registrycheckpoint "SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer"

切換節點,檢查端口添加是否後,FCI能否正常轉移。

檢驗使用新端口連接數據庫是否成功。

網絡策略中禁用1433端口,只允許使用新端口連接數據庫。

如果喜歡,可以搜索關注公衆號MSSQLSERVER,及時接收更多精彩博文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章