RDS SQL Server提供遷移可用性區域功能,您可以將RDS執行個體遷移至同一地區內的其它可用性區域。遷移可用性區域後,執行個體的所有屬性、配置和串連地址都不會改變。遷移所需時間跟執行個體的資料量有關,通常為半小時左右。
前提條件
執行個體所在的地區需要有多個可用性區域,才支援遷移可用性區域功能。關於地區和可用性區域的詳情,請參見地區和可用性區域。
執行個體為主執行個體,不是唯讀執行個體,且主執行個體下未建立唯讀執行個體。
主執行個體狀態需為執行中。
費用
遷移可用性區域功能免費。即使將執行個體從單可用性區域遷移至多個可用性區域,也不收取費用。
影響
遷移操作一旦開始,不能取消。
遷移前後執行個體名稱、訪問連接埠、標籤、資料庫帳號等原有設定均不發生變化。
遷移過程將引起資料的搬遷,期間SQL Server執行個體可正常訪問,業務不受影響。
遷移所需時間與執行個體的資料量有關,一般從遷移開始大約20分鐘。遷移過程內若有大量操作會延長該時間,請選擇在合適的時間進行遷移。
切換時執行個體會有幾分鐘不可用,執行個體可用性會受到短暫影響,請確保應用具有自動重連機制。
遷移可用性區域會造成虛擬IP(VIP)的變更,請盡量在您的應用程式中使用串連地址進行串連,不要使用IP地址。
請及時清理用戶端DNS緩衝。用戶端採用JVM的應用,建議將JVM配置中的TTL設定為不超過60秒,可確保在串連地址的VIP地址發生變更時,應用程式可以通過重新查詢DNS來接收和使用資源的新VIP地址。
說明下列JVM中設定TTL的方法可供參考:
為所有使用JVM的應用程式設定TTL:將$JAVA_HOME/jre/lib/security/java.security檔案中的networkaddress.cache.ttl參數值設定為60。
僅為本地應用程式設定TTL:在首次調用
InetAddress.getByName()
前,即建立任何網路連接之前,在應用程式的初始化代碼中設定networkaddress.cache.ttl java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
。
如果有正在執行的DTS任務,可用性區域遷移後,需要重啟相應的DTS任務。
使用限制
符合以下情況的執行個體暫不支援遷移可用性區域:
共用規格執行個體。
BYOL執行個體。
Serverless執行個體。
傳統網路類型執行個體。
加入AD域的執行個體。
唯讀執行個體以及掛載了唯讀執行個體的叢集系列主執行個體。
遷移類型
遷移類型 | 情境 |
從一個可用性區域遷移至另一個可用性區域 | 執行個體所在可用性區域出現滿負載或者其它影響執行個體效能的情況。 |
從一個可用性區域遷移至多個可用性區域 | 遷移後的主備執行個體分別位於不同的可用性區域,實現跨機房容災。 相對於單可用性區域執行個體,多可用性區域執行個體可以承受更進階別的災難。例如,單可用性區域執行個體可以承受伺服器和機架層級的故障,而多可用性區域執行個體可以承受機房層級的故障。 說明 對於包含主備節點的執行個體,建議遷移至多個可用性區域,實現執行個體的跨可用性區域容災。 |
從多個可用性區域遷移至一個可用性區域 | 為了滿足特定功能的要求。 |
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在基本資料地區單擊遷移可用區。
在彈出的對話方塊中,選擇目標可用性區域、Virtual Private Cloud、虛擬交換器和遷移時間。
單擊確定。
單擊確定後,底層開始拷貝資料到目標可用性區域,不影響執行個體運行。拷貝完成後,將按您指定的切換時間(立即切換或在可維護時間段內進行切換),把流量切換到新鏈路。
重要切換時執行個體會有幾分鐘不可用,執行個體可用性會受到短暫影響,請確保應用具有自動重連機制。
常見問題
Q:Web版本(基礎系列)的RDS SQL Server執行個體能否直接升級或修改可用性區域為多可用性區域?並實現主備在不同可用性區域?
相關API
API | 描述 |
遷移RDS執行個體可用性區域。 |