本文介绍将 Microsoft Azure Blob 存储用作备份目标所需的概念、要求和组件。 备份和还原功能与使用 DISK 或 TAPE 时相同或类似,但存在一些差异。 本文中包含了这些差异和几个代码示例。
概述
请务必了解组件及其之间的交互,以便执行从 Microsoft Azure Blob 存储进行备份或还原。
在 Azure 订阅中创建 Azure 存储帐户是此过程中的第一步。 此存储帐户是一个管理帐户,对使用存储帐户创建的所有容器和对象具有完全管理权限。 SQL Server 可以使用 Azure 存储帐户名称及其访问密钥值对 Microsoft Azure Blob 存储进行身份验证和写入和读取 Blob,或使用在特定容器上生成的共享访问签名令牌,授予其读取和写入权限。 有关 Azure 存储帐户的详细信息,请参阅 关于 Azure 存储帐户 以及有关共享访问签名的详细信息,请参阅共享访问签名,第 1 部分:了解 SAS 模型。 SQL Server 凭据存储此身份验证信息,并且将在备份或还原期间使用这些信息。
Azure 存储和 S3 兼容的存储
SQL Server 2012 Service Pack 1 CU2 和 SQL Server 2014 引入了备份到指向 Azure Blob 存储的 URL 的功能,使用熟悉的 T-SQL 语法安全地将备份写入 Azure 存储。 SQL Server 2016 (13.x) 通过共享访问签名 (SAS) 密钥为 Azure 中的数据库文件引入了文件快照备份,这是一种安全且简单的方法,用于向 Azure 存储安全策略验证证书。 SQL Server 2022 (16.x) 引入了将备份写入 S3 兼容对象存储的功能,其备份和还原功能在概念上类似于使用 Azure Blob 存储作为备份设备类型的备份到 URL。 SQL Server 2022 (16.x) 通过添加对 REST API 的新 S3 连接器的支持来扩展 BACKUP/RESTORE TO/FROM URL 语法。
本文包含有关使用 Azure Blob 存储的备份到 URL 的信息。 若要详细了解如何使用与 S3 兼容的存储的备份到 URL,请参阅 SQL Server 备份和还原与 S3 兼容的对象存储。
备份到 Azure 存储块 blob 与页 Blob
有两种类型的 Blob 可以存储在 Microsoft Azure Blob 存储中:块 Blob 和页 Blob。 对于 SQL Server 2016 及更高版本,首选块 Blob。
如果在凭据中使用存储密钥,将使用页 Blob;如果使用共享访问签名,将使用块 Blob。
备份到块 Blob 仅适用于 SQL Server 2016 或更高版本,以便备份到 Azure Blob 存储。 如果要运行 SQL Server 2016 或更高版本,请备份到块 blob 而不是页 Blob。
主要原因是:
- 与存储密钥相比,共享访问签名是用来授予 blob 访问权限的更为安全的方式。
- 可以备份到多个块 Blob,以获得更好的备份和还原性能,并支持更大的数据库备份。
- 块 Blob 比页 Blob 便宜。
- 需要通过代理服务器备份到页 Blob 的客户将需要使用
backuptourl.exe。
将大型数据库备份到 Azure Blob 存储会受到 Azure SQL 托管实例 T-SQL 差异、限制和已知问题中列出的限制。
如果数据库太大,则为以下任一:
- 使用备份压缩或
- 备份到多个块 Blob
支持 Linux、容器和已启用 Azure Arc 的 SQL 托管实例
如果 SQL Server 实例托管在 Linux 上,包括:
- 独立操作系统
- 容器
- 已启用 Azure Arc 的 SQL 托管实例
- 任何其他基于 Linux 的环境
Azure Blob 存储唯一支持的备份到 URL 是使用共享访问签名阻止 Blob。
Microsoft Azure Blob 存储
存储帐户: 存储帐户是所有存储服务的起点。 若要访问 Microsoft Azure Blob 存储,请先创建 Azure 存储帐户。 有关详细信息,请参阅 创建存储帐户
容器: 容器提供一组 Blob 的分组,并且可以存储无限数量的 Blob。 若要将 SQL Server 备份写入 Azure Blob 存储,必须至少创建根容器。 可以在容器上生成共享访问签名令牌,并仅向特定容器上的对象授予访问权限。
Blob: 任何类型和大小的文件。 有两种类型的 Blob 可以存储在 Azure Blob 存储中:块 Blob 和页 Blob。 SQL Server 备份可以使用任一 Blob 类型,具体取决于使用的 Transact-SQL 语法。 Blob 使用以下 URL 格式进行寻址:https://< storage account.blob.core.windows.net/>< container>/<blob>。 有关 Azure Blob 存储的详细信息,请参阅 Azure Blob 存储简介。 有关页 Blob 和块 Blob 的详细信息,请参阅 了解块 Blob 和页 Blob。




