如何在 Azure Blob 存储中备份和还原 Azure SQL 表,反之亦然

Posted

技术标签:

【中文标题】如何在 Azure Blob 存储中备份和还原 Azure SQL 表,反之亦然【英文标题】:How to take a backup & Restore of Azure SQL table in Azure Blob storage and vice versa 【发布时间】:2022-01-16 20:13:13 【问题描述】:

我想将 Azure SQL 表的存档(备份)保存到 Azure Blob 存储,我已经通过管道以 CSV 文件格式在 Azure Blob 存储中完成了备份。并且从 Azure Blob 存储中,我已使用批量插入过程成功地将数据恢复到 Azure SQL 表中。

但现在我想使用某种过滤条件从这个 CSV 文件中检索数据。有什么方法可以在 Azure Blob 存储上应用筛选查询来检索数据?

是否有任何其他方式以不同方式进行备份,然后从 Azure 存储中检索数据?

我的最终目标是备份 Azure 存储中的 Azure SQL 表,并使用筛选器直接从 Azure 存储中检索数据

注意 我知道我可以使用 SSMS 进行备份,但这不是必需的,我希望通过某种管道或使用 SQL 命令进行此过程。

【问题讨论】:

要对 blob 存储中的 CSV 文件运行查询,我建议您使用 Databricks 或 Synapse 【参考方案1】:

AFAIK,在恢复数据库时没有这样的过滤选项可用。但是,当您要求另一种备份和恢复方式时,SQL Server Management Studio (SSMS) 是用于几乎所有 SQL Server 相关活动的最方便使用的平台之一。

您可以使用 SSMS 通过服务器名称和登录密码访问 Azure SQL 数据库。

查找此official tutorial from Microsoft,了解如何备份 Azure SQL 数据库并将其存储在存储帐户中,然后进行恢复。

【讨论】:

是的。我知道,但这需要整个数据库备份,我可以只备份一个(选定)表吗? 是的,你可以。第 1 步:右键单击数据库并选择任务 -> 生成脚本。第 2 步:选择您需要从中备份表的数据库。第 3 步:向下滚动时,您将在屏幕上看到表格/视图选项。选择要备份的表 或者,您可以使用 SSMS 将特定表复制到另一个数据库,然后备份该新数据库。参考sqlshack.com/… 我知道 SSMS 或手动步骤。但我想自动化这个过程。 您没有提到任何需要自动化流程的地方。请根据确切要求更新问题。

以上是关于如何在 Azure Blob 存储中备份和还原 Azure SQL 表,反之亦然的主要内容,如果未能解决你的问题,请参考以下文章

无法从 BLOB 存储打开备份设备 - 访问被拒绝

Azure Blob 容器备份和恢复

备份 Azure Blob 存储内容的最佳方法是啥

使用 Powershell 将 Azure 数据库备份到 blob

Azure SQL 导出无法在 Blob 容器中备份

Azure 存储 - 如何通过 Node.js 还原目录?