SQL Server AlwaysOn 集群 關於主Server IP與Listener IP調換的詳細測試


1. 背景

SQL Server 搭建AlwaysOn后,我們就希望程序連接時使用虛擬的偵聽IP(Listener IP),而不再是主Server 的IP。如果我們有采用中間件,則可以在配置中,直接用Listener IP 替換掉 Server IP,可有時候,我們不太確定,是否有些舊程序、不太常用的程序在使用。甚至在很多公司根本就沒有使用中間件,這時候去修改每個應用、APP、程序的數據庫連接配置,太難了。

那么有沒有其它好的方案呢?有一個---調換主Server IP與Listener IP,即將Server IP與Listener IP互換。

2. 測試目的

為減少因使用AlwaysOn的Listener IP而必須調整現有程式的工作,考慮測試把Listener IP改成原主Server IP。

對調的好處:

1)減少應用、APP、程序的數據庫連接配置的修改。

2) 外部接口(廠商、SAP、ETL、xDS、BI、MIS, etc)不用修改;如修改,溝通成本大。

3) 不用擔心有老舊程序未修改為調用Listener IP。

3. 測試環境

Node1 Node2 Node3 Cluster IP Listener IP
168.172.40.112 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.117

Role:Primary

 Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

SSMS 連接登入各IP顯示如下:

4. 測試步驟

(第一部分更新主節點的server IP為臨時IP,即將40.112-->40.118

Step 1 通過控制面板更新主Server IP

Step 2 更新前為40.112

Step 3 更新后為40.118

Step 4  更新后查看狀態如下(更新后,短暫不可訪問,AG狀態resolving。約15S自動恢復正常)

此時環境調整為:

Node1 Node2 Node3 Cluster IP Listener IP
168.172.40.118 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.117

Role:Primary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

 

(第二部分更新listener IP為原主server IP,即將 40.117--->40.112

 

Step 5 打開FailOver管理器--->Role--->Resources--->AGName--->Properties

Step 6  選中地址IP,單擊,使Edit欄位變成活躍狀態,點擊Edit。

 

Step 7 彈出警告,單擊Yes選項。

Step 8  修改Listener IP

 修改前:

修改后:

Step 9 修改完畢,點擊OK。

 

Step 10 彈出警告,單擊Yes選項

Step 11 修改后可用組Stop, AG狀態為Resolving。

Step 12 重啟AG Role。

Step 13  listener 修改完畢(117—>112)

此時環境調整為:

 

Node1 Node2 Node3 Cluster IP Listener IP
168.172.40.118 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.112

Role:Primary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

 

 (第三部分更新原主的server的 IP由臨時IP調整為Listener IP,即將 40.118--->40.112

 

Step 14 參照step 1—>step 5,可把原主server IP由臨時IP調整為Listener IP (118-->117)

此時環境調整為:

 

Node1 Node2 Node3 Cluster IP Listener IP
168.172.40.117 168.172.40.113 168.172.40.114 168.172.40.115 168.172.40.112

Role:Primary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

Role:Secondary

Availability Mode:Asynchronous Commit

5. 總結

可以成功實現調換主Server IP與Listener IP。

測試環境下:

  1. 更改主Server IP為temp IP時,AG自動恢復正常狀態需要耗時約15秒。
  2. 更改Listener IP為原主Server IP時,需要手動重啟一次AG Role,耗時約3~4秒。
  3. 更改temp IP為原Listener IP,AG自動恢復正常狀態需要耗時約15秒。

正式環境下,可能需時要長一些,可能需要1~2分鍾,甚至更長。

所以,請在周末或假期等業務線操作不繁忙的時候進行調換作業,避免出現異常時無足夠的處理時間。

切換完成后,建議做兩次auto-failover切換(最后恢復到輔Server還是輔Server),同時請支持部門的同學配合測試程序,確保真正發生Auto-failover時不出現問題。

 

 本文版權歸作者所有,未經作者同意不得轉載,謝謝配合!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM