將資源移至新區域 - Azure SQL 資料庫
適用於:Azure SQL 資料庫
本文將說明一般工作流程,了解如何將資料庫或彈性集區移至新區域。
注意
- 若要將資料庫和彈性集區移至不同的 Azure 區域,您也可以使用建議的 Azure Resource Mover。
- 本文適用於 Azure 公用雲端或相同主權雲端內的移轉。
概觀
在各種情況下,您會想將現有的資料庫或集區從一個區域移至另一個區域。 例如,您要在新區域擴充企業,並想針對新的客戶群將區域最佳化。 或基於合規性理由,您需要將作業移至不同的區域。 或 Azure 發行新的區域,提供更好的鄰近性並改善客戶體驗。
將資源移至不同區域的一般工作流程包含下列步驟:
- 驗證移動的必要條件。
- 準備在範圍中移動資源。
- 監視準備程序。
- 測試移動程序。
- 起始實際的移動。
驗證移動資料庫的必要條件
- 建立各來源伺服器的目標伺服器。
- 使用 PowerShell 設定防火牆正確的例外狀況。
- 使用正確的登入來設定兩部伺服器。 如果您不是訂用帳戶管理員或 SQL Server 管理員,請與系統管理員合作,指派您所需的權限。 如需詳細資訊,請參閱災害復原後如何管理 Azure SQL Database 安全性。
- 如果您的資料庫使用透明資料加密 (TDE),並在 Azure Key Vault 中攜帶您自己的金鑰 (BYOK 或客戶自控金鑰),請確定目標區域已佈建正確的加密資料。
- 若要這麼做,最簡單的方式是從現有的金鑰保存庫,新增加密金鑰 (來源伺服器作為 TDE 保護裝置使用) 至目標伺服器,然後將金鑰設為目標伺服器的 TDE 保護裝置,因為一個區域的伺服器現在可以連線至任何其他區域的金鑰保存庫。
- 最佳做法是確保目標伺服器可以存取 (還原資料庫備份所需的) 舊版加密金鑰,在來源伺服器上執行 Get-AzSqlServerKeyVaultKey Cmdlet,以傳回可用的金鑰清單,然後將這些金鑰新增至目標伺服器。
- 如需設定目標伺服器上客戶自控 TDE 的詳細資訊和最佳做法,請參閱 Azure Key Vault 中使用客戶自控金鑰的 Azure SQL 透明資料加密。
- 若要將金鑰保存庫移至新區域,請參閱跨區域移動 Azure Key Vault。
- 如果已啟用資料庫層級稽核,請停用並改為啟用伺服器層級稽核。 容錯移轉後,資料庫層級稽核需要跨區域流量,但移動後不需要或不允許跨區域流量。
- 如果是伺服器層級稽核,請確保:
- 現有稽核記錄的儲存體容器、記錄分析或事件中樞會移至目標區域。
- 稽核是在目標伺服器上設定。 如需詳細資訊,請參閱開始使用 SQL Database 稽核。
- 如果您的伺服器有長期保留原則 (LTR),現有的 LTR 備份會保持與目前伺服器的關聯。 因為目標伺服器不同,您可以使用來源伺服器存取來源區域中較舊的 LTR 備份,即使刪除伺服器後亦如此。
注意
不支援在主權區域和公用區域之間移轉具有現有 LTR 備份的資料庫,因為這需要將 LTR 備份移至目標伺服器,而目前這是不可能的。
準備資源
- 在來源伺服器與目標伺服器間建立容錯移轉群組。
- 新增您要移至容錯移轉群組的資料庫。 所有新增資料庫的複寫都會自動起始。 如需詳細資訊,請參閱搭配 SQL Database 使用容錯移轉群組。
監視準備程序
您可以定期呼叫 Get-AzSqlDatabaseFailoverGroup,監視從來源到目標伺服器的複寫。 Get-AzSqlDatabaseFailoverGroup
的輸出物件包含 ReplicationState 的屬性:
- ReplicationState = 2 (追補) 表示資料庫已同步,並可安全地容錯移轉。
- ReplicationState = 0 (植入) 表示資料庫尚未植入,所以容錯移轉會失敗。
測試同步
ReplicationState2
後,請使用次要端點 <fog-name>.secondary.database.windows.net
連線各資料庫或資料庫子集,並對資料庫執行任何查詢,以確保連線能力、適當的安全性設定和資料複寫。
起始移動
- 使用次要端點
<fog-name>.secondary.database.windows.net
連線目標伺服器。 - 使用 Switch-AzSqlDatabaseFailoverGroup 將次要伺服器切換為完整同步的主要伺服器。 此作業會成功或復原。
- 使用
nslook up <fog-name>.secondary.database.windows.net
確定 DNS CNAME 項目指向目標區域 IP 位址,即可驗證命令已成功完成。 如果切換器命令失敗,CNAME 不會更新。
移除來源資料庫
完成移動後,請移除來源區域中的資源,避免不必要的費用。
- 使用 Remove-AzSqlDatabaseFailoverGroup 刪除容錯移轉群組。
- 針對來源伺服器上的每個資料庫,使用 Remove-AzSqlDatabase 刪除每個來源資料庫。 這會自動終止異地複寫連結。
- 使用 Remove-AzSqlServer 刪除來源伺服器。
- 移除金鑰保存庫、稽核儲存體容器、事件中樞、 Microsoft Entra 租用戶和其他相依資源,即可停止計費。
驗證移動集區的必要條件
- 建立各來源伺服器的目標伺服器。
- 使用 PowerShell 設定防火牆正確的例外狀況。
- 設定伺服器正確的登入。 如果您不是訂用帳戶管理員或伺服器管理員,請與系統管理員合作,指派您所需的權限。 如需詳細資訊,請參閱災害復原後如何管理 Azure SQL Database 安全性。
- 如果您的資料庫使用透明資料加密,並在 Azure Key Vault 中使用您自己的金鑰,請確定目標區域已佈建正確的加密資料。
- 建立各來源彈性集區的目標彈性集區,並確定集區建立在相同的服務層級,而且有相同的名稱和大小。
- 如果已啟用資料庫層級稽核,請停用並改為啟用伺服器層級稽核。 容錯移轉後,資料庫層級稽核需要跨區域流量,但移動後不需要或不允許跨區域流量。
- 如果是伺服器層級稽核,請確保:
- 現有稽核記錄的儲存體容器、記錄分析或事件中樞會移至目標區域。
- 稽核設定是在目標伺服器上設定。 如需詳細資訊,請參閱 SQL Database 稽核。
- 如果您的伺服器有長期保留原則 (LTR),現有的 LTR 備份會保持與目前伺服器的關聯。 因為目標伺服器不同,您可以使用來源伺服器存取來源區域中較舊的 LTR 備份,即使刪除伺服器後亦如此。
注意
不支援在主權區域和公用區域之間移轉具有現有 LTR 備份的資料庫,因為這需要將 LTR 備份移至目標伺服器,而目前這是不可能的。
準備移動
在來源伺服器上各彈性集區,及目標伺服器上對應的彈性集區間,建立個別的容錯移轉群組。
將集區中所有的資料庫新增至容錯移轉群組。 所新增資料庫的複寫會自動起始。 如需詳細資訊,請參閱搭配 SQL Database 使用容錯移轉群組。
注意
雖然您可以建立包含多個彈性集區的容錯移轉群組,但我們強烈建議您為各集區建立個別的容錯移轉群組。 如果有大量跨多個彈性集區的資料庫要移動,您可以平行執行準備步驟,然後平行起始移動步驟。 相較於在相同的容錯移轉群組中包含多個彈性集區,此程序更適合調整大小並花費較少時間。
監視準備程序
您可以定期呼叫 Get-AzSqlDatabaseFailoverGroup,監視從來源到目標資料庫的複寫。 Get-AzSqlDatabaseFailoverGroup
的輸出物件包含 ReplicationState 的屬性:
- ReplicationState = 2 (追補) 表示資料庫已同步,並可安全地容錯移轉。
- ReplicationState = 0 (植入) 表示資料庫尚未植入,所以容錯移轉會失敗。
測試同步
ReplicationState2
後,請使用次要端點 <fog-name>.secondary.database.windows.net
連線各資料庫或資料庫子集,並對資料庫執行任何查詢,以確保連線能力、適當的安全性設定和資料複寫。
起始移動
- 使用次要端點
<fog-name>.secondary.database.windows.net
連線目標伺服器。 - 使用 Switch-AzSqlDatabaseFailoverGroup 將次要伺服器切換為完整同步的主要伺服器。 此作業會成功或復原。
- 使用
nslook up <fog-name>.secondary.database.windows.net
確定 DNS CNAME 項目指向目標區域 IP 位址,即可驗證命令已成功完成。 如果切換器命令失敗,CNAME 不會更新。
移除來源彈性集區
完成移動後,請移除來源區域中的資源,避免不必要的費用。
- 使用 Remove-AzSqlDatabaseFailoverGroup 刪除容錯移轉群組。
- 使用 Remove-AzSqlElasticPool 刪除來源伺服器上的每個來源彈性集區。
- 使用 Remove-AzSqlServer 刪除來源伺服器。
- 移除金鑰保存庫、稽核儲存體容器、事件中樞、 Microsoft Entra 租用戶和其他相依資源,即可停止計費。
下一步
管理移轉後的資料庫。