You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不同Azure SQL Server间迁移Azure弹性池

Azure弹性池跨SQL Server迁移方案(同/跨订阅)

Azure弹性池无法直接从一台SQL Server“移动”到另一台,需通过迁移池内数据库+在目标服务器重建弹性池的方式实现,以下是具体操作方案:

一、同订阅场景

手动操作(Azure门户)

  • 先在目标SQL Server上创建和原弹性池配置(DTU/vCore规格、存储上限、池规则等)完全一致的新弹性池
  • 处理原池里的每个数据库:
    • 可选:暂停数据库自动备份,避免迁移期间备份冲突
    • 要么用异地复制或时点还原把数据库同步到目标弹性池;要么直接把数据库从原池移出(转为单数据库),再加入目标弹性池(注意目标池配置需兼容)
  • 验证所有数据库在目标池内的可用性与数据一致性
  • 修改应用连接字符串为目标服务器地址,确认业务正常后删除原弹性池

批量操作(Azure CLI/PowerShell)

用PowerShell示例:

  1. 创建目标弹性池:
New-AzSqlElasticPool -ResourceGroupName "目标资源组名" -ServerName "目标SQL服务器名" -ElasticPoolName "目标弹性池名" -Edition "GeneralPurpose" -VCore 4 -StorageMB 32768
  1. 遍历原池数据库,逐个迁移:
$databases = Get-AzSqlElasticPoolDatabase -ResourceGroupName "原资源组名" -ServerName "原SQL服务器名" -ElasticPoolName "原弹性池名"
foreach ($db in $databases) {
    # 从原弹性池移出,转为单数据库
    Set-AzSqlDatabase -ResourceGroupName "原资源组名" -ServerName "原SQL服务器名" -DatabaseName $db.DatabaseName -ElasticPoolName $null
    # 加入目标弹性池
    Set-AzSqlDatabase -ResourceGroupName "目标资源组名" -ServerName "目标SQL服务器名" -DatabaseName $db.DatabaseName -ElasticPoolName "目标弹性池名"
}
  1. 检查迁移后的数据库状态,更新应用连接串

二、跨订阅场景

跨订阅迁移核心是先将数据库复制到目标订阅的SQL服务器,再加入新建弹性池,两种常用方法:

跨订阅数据库复制

  • 在目标订阅的SQL服务器上创建匹配配置的弹性池
  • 配置原服务器与目标服务器的防火墙规则,确保双向访问权限
  • 对原池内每个数据库启动跨订阅复制,复制完成后终止复制关系,将副本数据库加入目标弹性池
  • 验证数据一致性,切换应用连接串,清理原资源

导出/导入备份

  • 将原池内每个数据库导出到Azure存储账户(跨订阅需给目标订阅配置存储账户的RBAC访问权限)
  • 在目标订阅的SQL服务器弹性池中,从存储账户导入数据库备份文件
  • 检查导入后的数据库状态,更新应用连接信息

关键注意点

  • 迁移前必须备份所有数据库,防止数据丢失
  • 跨订阅迁移时需确认资源组、SQL服务器、存储账户的权限配置,保证跨订阅访问正常
  • 迁移过程会有短暂停机,建议选择业务低峰期操作
  • 迁移后需将原弹性池的配套设置(防火墙规则、审计策略、透明数据加密等)同步到目标服务器和弹性池

内容的提问来源于stack exchange,提问作者Aryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 21:38:25