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

如何每日自动从Azure存储恢复.bacpac备份至Azure SQL数据库?

实现自动从BACPAC恢复Azure SQL数据库的方案

一、整体实现流程

核心思路是通过Azure存储账户事件触发ADF/Synapse管道,在BACPAC文件上传完成后自动执行恢复操作,具体步骤如下:

  • 配置存储账户事件订阅,当容器内新增.bacpac文件时触发ADF/Synapse管道
  • 管道中执行BACPAC导入逻辑,将文件恢复为Azure SQL数据库

1. 存储账户事件触发配置

  • 进入目标存储账户的「事件」页面,创建新订阅
  • 事件类型选择「Blob 创建完成」,添加筛选条件限定后缀为.bacpac的文件
  • 终点选择你的ADF/Synapse管道,配置触发参数(如传递Blob的URL和名称)

2. 管道核心操作实现

ADF/Synapse管道支持两种导入方式:

  • 使用Azure SQL Database导入导出活动:可视化配置存储账户、目标数据库等参数,无需手写脚本
  • 使用Execute SQL活动:执行T-SQL命令实现导入,灵活性更高

二、ADF/Synapse可用的T-SQL导入脚本

Azure SQL数据库不支持RESTORE DATABASE命令,替代方案是使用CREATE DATABASE ... FROM BACPAC完成导入,示例脚本如下:

CREATE DATABASE [TargetDBName]
FROM BACPAC = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/yourfile.bacpac'
WITH
    CREDENTIAL = 'StorageAccountCredential', -- 需提前创建存储账户凭据
    EDITION = 'GeneralPurpose', -- 按需选择数据库版本(如Basic、Standard)
    SERVICE_OBJECTIVE = 'GP_Gen5_2', -- 按需选择服务目标(如S0、GP_Gen5_4)
    MAXSIZE = 1024 GB; -- 按需设置数据库最大容量

关键前置操作

需在Azure SQL服务器上提前创建存储账户凭据:

CREATE CREDENTIAL [StorageAccountCredential]
WITH IDENTITY = 'yourstorageaccountname',
SECRET = 'yourstorageaccountaccesskey';

额外说明

  • 如果目标数据库已存在,需先删除/重命名,或使用ALTER DATABASE ... IMPORT BACPAC命令(仅支持Azure SQL v12及以上版本)
  • 确保Azure SQL服务器的防火墙规则允许访问存储账户,或配置存储账户服务端点

三、弹性池的兼容性

完全可以使用弹性池,只需在T-SQL脚本中指定弹性池名称即可,示例:

CREATE DATABASE [TargetDBName]
FROM BACPAC = 'https://yourstorageaccount.blob.core.windows.net/yourcontainer/yourfile.bacpac'
WITH
    CREDENTIAL = 'StorageAccountCredential',
    EDITION = 'GeneralPurpose',
    SERVICE_OBJECTIVE = 'GP_Gen5_2',
    MAXSIZE = 1024 GB,
    ELASTIC_POOL_NAME = 'YourElasticPoolName'; -- 指定目标弹性池

执行完成后,目标数据库会自动加入指定的弹性池,后续可通过弹性池统一管理资源分配。

优化建议

  • 在管道中添加文件完整性检查步骤(如验证文件哈希值),避免导入损坏的BACPAC文件
  • 配置ADF/Synapse警报规则,在导入失败时触发通知
  • 若备份文件名称带日期等规律标识,可使用管道参数动态获取文件名,提升灵活性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:27:23