Azure Synapse:重新部署工作区时迁移专用SQLPool至其他工作区
迁移Synapse专用SQL池至新工作区的可行方案
Synapse专用SQL池无法直接跨工作区移动,以下是几种可靠的迁移方法,可根据你的场景选择:
方法一:异地恢复(Geo-restore)
这是最简便的方案,适用于源工作区仍存在且开启异地备份的场景(默认开启):
- 登录Azure门户,进入目标Synapse工作区
- 在左侧导航栏「数据管理」下选择「专用SQL池」
- 点击「+ 新建」,选择「从备份恢复」
- 在恢复配置界面,选择源订阅、源工作区,选中需要迁移的专用SQL池
- 设置目标池的名称、性能级别(如DW100c),确认后启动恢复流程
- 恢复完成后,目标工作区会生成与源池结构、数据完全一致的专用SQL池
方法二:导出/导入结合BCP工具
若异地恢复不可用(比如源工作区已删除但有本地备份),可通过中间存储中转:
导出源池数据
使用bcp命令将数据导出到Azure Blob存储:bcp [DB名].[架构名].[表名] out "azureblob://<存储容器名>.blob.core.windows.net/<导出路径>/<文件名>.bcp" -S <源SQL池服务器名>.database.windows.net -d <DB名> -U <用户名> -P <密码> -q -c -t "," -r "\n"也可通过Synapse Studio的数据集成功能创建复制活动,批量导出数据到Blob存储。
在目标工作区创建空池
导出源池的DDL脚本(可通过SSMS或Synapse Studio生成),在目标工作区执行脚本创建结构一致的空专用SQL池。导入数据到目标池
同样使用bcp命令从Blob存储导入数据:bcp [DB名].[架构名].[表名] in "azureblob://<存储容器名>.blob.core.windows.net/<导出路径>/<文件名>.bcp" -S <目标SQL池服务器名>.database.windows.net -d <DB名> -U <用户名> -P <密码> -q -c -t "," -r "\n"
方法三:Azure Data Factory(ADF)复制迁移
适合需要批量迁移多个对象的场景:
- 在ADF中创建管道,源数据集选择源Synapse专用SQL池,目标数据集选择目标工作区的空专用SQL池(需先创建结构)
- 配置复制活动的字段映射,运行管道完成数据迁移
- 同步存储过程、视图等对象:导出源池的DDL脚本,在目标池执行创建
迁移注意事项
- 迁移前暂停源专用SQL池可降低成本,恢复完成后按需启动目标池
- 确保目标工作区的网络配置(防火墙、VNet)允许与源池/Blob存储的连接
- 迁移完成后需验证数据完整性,比如对比表行数、关键数据值
- 源池的权限、作业等配置需手动在目标工作区重新配置
内容的提问来源于stack exchange,提问作者R. Maier
相关产品推荐
相关产品推荐

