使用 S3 兼容的对象存储进行 SQL Server 的备份和还原

适用于:SQL Server 2022 (16.x)

本文介绍使用 S3 兼容对象存储作为备份目标所需的概念、要求和组件。

概述

SQL Server 2022 (16.x) 为数据平台引入了对象存储集成,使你能够将 SQL Server 与 S3 兼容对象存储以及 Azure 存储集成。 为了提供此集成,SQL Server 提供 S3 连接器,该连接器使用 S3 REST API 连接到任意 S3 兼容对象存储的提供商。 SQL Server 2022 (16.x) 通过使用 REST API 添加对 S3 连接器的支持,扩展了现有的 BACKUP TO URLRESTORE FROM URL 语法。 有关支持平台的信息,请参阅 S3 兼容对象存储的提供商

本文包含有关对 S3 兼容对象存储使用备份到 URL 的信息。 若要详细了解如任何对 S3 兼容对象存储使用备份到 URL,请参阅对 S3 兼容对象存储使用 SQL Server 备份到 URL

备份和还原到与 S3 兼容的存储

BACKUP TO URLRESTORE FROM URL 语法支持 S3 连接器。 有关备份到 URL 功能的详细信息,请参阅:

S3 兼容对象存储的提供商

目前市场上有许多 S3 兼容对象存储的提供商。 对象存储以软件定义、硬件设备或混合云方案的组合方式提供。

下表提供了提供 S3 端点作为其解决方案一部分的对象存储提供程序的非详尽摘要。

供应商(字母顺序) 产品/服务
AWS Amazon Simple Storage Service (S3)
Ceph Ceph
Cloudian HyperStore
Dell Technologies ECS 企业级对象存储
Hitachi Vantara 适用于云规模的 Hitachi 内容平台
HPE HPE Ezmeral Data Fabric
MinIO 多云对象存储
NetApp StorageGRID、ONTAP
Nutanix Nutanix 对象存储
Pure Storage Pure FlashBlade
Red Hat OpenShift 容器存储
Scality Scality Artesca
Weka Weka S3

S3 终结点的先决条件

必须配置 S3 端点,如下所示:

  • 必须配置 TLS。 S3 终结点必须使用受 SQL Server(Linux)或其主机操作系统环境(Windows)信任的 TLS 证书。 假设连接通过 HTTPS 而非 HTTP 进行安全传输。

  • 必须配置用户(访问密钥 ID),并且该用户的机密(密钥 ID)已知。 需要同时对 S3 端点进行身份验证。

  • 必须至少配置一个存储桶。 无法在 SQL Server 2022 (16.x) 中创建或配置存储桶。

性能最佳做法

请向 S3 兼容对象存储提供商咨询,以获取关于性能最佳做法优化、初始设置和配置的指导。 备份和还原参数以及吞吐量的建议值可能会因各种解决方案和设置而发生更改。

通过在 SQL Server 2022(16.x)及更高版本中使用 S3 部件,可以将备份集条带化,以支持最大 12.8 TB 的文件大小。

局限性

由于 S3 标准 REST API 的当前限制,如果发生故障,则不会删除临时未提交的数据文件。 由于运行 BACKUP Transact-SQL 命令期间正在进行的分段上传操作,可以在与 S3 兼容的对象存储中创建这些对象。

如果 BACKUP 命令失败或取消,这些未提交的数据块将保留在与 S3 兼容的对象存储中。 如果备份成功,对象存储会自动删除这些临时文件,从而形成最终的备份文件。 某些 S3 提供程序将通过其垃圾回收器系统清理临时文件。