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任務。
使用限制
符合以下情況的實例暫不支持遷移可用區:
共享規格實例。
Serverless實例。
經典網絡類型實例。
加入AD域的實例。
只讀實例以及掛載了只讀實例的集群系列主實例。
遷移類型
遷移類型 | 場景 |
從一個可用區遷移至另一個可用區 | 實例所在可用區出現滿負載或者其它影響實例性能的情況。 |
從一個可用區遷移至多個可用區 | 遷移后的主備實例分別位于不同的可用區,實現跨機房容災。 相對于單可用區實例,多可用區實例可以承受更高級別的災難。例如,單可用區實例可以承受服務器和機架級別的故障,而多可用區實例可以承受機房級別的故障。 說明 對于包含主備節點的實例,建議遷移至多個可用區,實現實例的跨可用區容災。 |
從多個可用區遷移至一個可用區 | 為了滿足特定功能的要求。 |
操作步驟
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在基本信息區域單擊遷移可用區。
在彈出的對話框中,選擇目標可用區、專有網絡VPC、虛擬交換機和遷移時間。
單擊確定。
單擊確定后,底層開始拷貝數據到目標可用區,不影響實例運行。拷貝完成后,將按您指定的切換時間(立即切換或在可維護時間段內進行切換),把流量切換到新鏈路。
重要切換時實例會有幾分鐘不可用,實例可用性會受到短暫影響,請確保應用具有自動重連機制。
常見問題
Q:Web版本(基礎系列)的RDS SQL Server實例能否直接升級或修改可用區為多可用區?并實現主備在不同可用區?
A:不能。Web版本(基礎系列)的RDS實例為單可用區,無法修改為多可用區。您可以先升級Web版本(基礎系列)到標準版(高可用系列),再將備可用區遷移到其他可用區。
RDS SQL Server高可用系列的實例為一主一備架構。更多詳情,請參見高可用系列。
相關API
API | 描述 |
遷移RDS實例可用區。 |