SQL Server 2022 新功能:将数据库备份到 S3 兼容的对象存储
本文介绍将 S3 兼容的对象存储用作数据库备份目标所需的概念、要求和组件。 数据库备份和恢复功能在概念上类似于使用 SQL Server 备份到 Azure Blob 存储的 URL 作为备份设备类型。
要注意的是,不只是 amazon S3 对象存储,只要兼容 S3 协议的对象存储都可以备份。
对象存储集成功能
SQL Server 2022(16.x)引入了对象存储集成功能,使您可以将 SQL Server 与 S3 兼容的对象存储集成。为了提供这种集成,SQL Server 支持一个 S3 连接器,它使用 S3 REST API 连接到任何 S3 兼容的对象存储提供商。SQL Server 2022(16.x)通过增加对使用 REST API 的新 S3 连接器的支持,扩展了现有的 BACKUP/RESTORE TO/FROM URL 命令的语法。
指向 S3 兼容资源的 URL 以 s3://为前缀,表示正在使用 S3 连接器。以 s3://开头的 URL 始终假定底层协议为 https。
文件编号和文件大小限制 为了存储数据,S3 兼容对象存储提供商必须将文件分割成多个称为“部分”的块,这类似于微软 Azure Blob 存储中的块 Blob。
S3 端点的前提条件
S3 端点必须按以下方式配置:
1、必须配置 TLS。假定所有连接将通过 HTTPS 而非 HTTP 进行安全传输。端点通过安装在 SQL Server 操作系统主机上的证书进行验证。
2、在 S3 兼容的对象存储中创建凭据,具有执行操作所需的适当权限。在存储层上创建的用户和密码被称为访问密钥 ID(Access Key ID)和秘密密钥 ID(Secret Key ID)。您需要这两个密钥才能对 S3 端点进行身份验证。
3、至少配置了一个存储桶。
Linux 平台支持
SQL Server 使用 WinHttp 实现其所使用的 HTTP REST API 客户端。它依赖操作系统证书存储来验证由 HTTP(S)端点提供的 TLS 证书。然而,在 Linux 平台上运行的 SQL Server 的 CA 证书必须放置在一个预定义的位置,即/var/opt/mssql/security/ca-certificates 文件夹中,且该文件夹最多只能存储和支持前 50 个证书。在启动 SQL Server 进程之前,必须将 CA 证书放置在该位置。SQL Server 在启动时从该文件夹读取证书,并将它们添加到信任存储中。
示例
创建凭据
凭据的名称应提供存储路径,并且根据存储平台的不同有多个标准。
当使用 S3 连接器时,IDENTITY 应始终为 'S3 Access Key'。 Access Key ID 和 Secret Key ID 中不得包含冒号。 Access Key ID 和 Secret Key ID 是在 S3 兼容的对象存储上创建的用户名和密码。 Access Key ID 必须具有适当的权限来访问 S3 兼容的对象存储中的数据。 使用 CREATE CREDENTIAL 创建服务器级凭据以进行与 S3 兼容的对象存储端点的身份验证。
AWS S3 支持两种不同的 URL 标准。
代码如下:
有多种方法可以为 AWS 的 S3 对象存储创建凭据。
S3 存储桶名称:datavirtualizationsample
S3 存储桶区域:us-west-2
S3 存储桶文件夹:backup
备份到 URL 和从 URL 恢复
备份到 URL
从 URL 恢复


加密和压缩备份选项
以下示例展示如何使用加密和压缩来备份和恢复 AdventureWorks2022 数据库:
使用区域参数进行备份和恢复
以下示例展示如何使用 REGION_OPTIONS 选项进行备份和恢复 AdventureWorks2022 数据库:
您可以在每个 BACKUP / RESTORE 命令中添加区域参数。 请注意,在 BACKUP_OPTIONS 和 RESTORE_OPTIONS 中使用了 S3 存储特定的区域字符串, 例如 '{"s3": {"region":"us-west-2"}}'。默认区域是 us-east-1。
SQL Server 2008 的压缩备份是一个新特性,根据实际使用中的观察,压缩比至少在 1:5 左右,也就是备份时增加了压缩选项(COMPRESSION)后可以至少压缩到数据文件大小的 20%甚至更低,可以很大程度上加快备份执行时间,减轻 IO 压力和节省备份服务器的磁盘存储空间。
总结
SQL Server 2022 通过新引入的 S3 连接器,SQL Server 能够支持通过 REST API 与 S3 兼容存储集成。用户可以配置存储桶和凭据,通过 URL 指向存储位置进行备份和恢复。此外,还提供了加密、压缩等备份选项,以及在 Linux 平台上的特殊配置要求。示例展示了如何创建凭据、执行备份和恢复操作,支持区域参数指定备份和恢复的地域。
文章转载自:桦仔
原文链接:https://www.cnblogs.com/lyhabc/p/18691593/sql-server-s3-compatibility-backup-restore
评论