

# 将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成
<a name="User.SQLServer.Options.S3-integration"></a>

您可以在运行 Amazon RDS for SQL Server 的数据库实例和 Amazon S3 存储桶之间传输文件。通过执行此操作，您可以结合使用 Amazon S3 和 SQL Server 功能，例如批量插入。例如，您可以将 .csv、.xml、.txt 和其他文件从 Amazon S3 下载到数据库实例主机，并将数据从 `D:\S3\` 导入到数据库中。所有文件都存储在数据库实例上的 `D:\S3\` 中。

适用以下限制：

**注意**  
对于所有使用 S3 的 SQL Server 功能，RDS 主机和 S3 之间的流量通过 RDS 内部 VPC 中的 VPC 端点进行路由。此流量不使用 RDS 实例端点 ENI。S3 存储桶策略无法通过网络条件限制 RDS 流量。
+ 在多可用区实例上进行故障转移后，将在备用副本上删除 `D:\S3` 文件夹中的文件。有关更多信息，请参阅“[S3 集成的多可用区限制](#S3-MAZ)”。
+ 数据库实例和 S3 存储桶必须位于同一 AWS 区域。
+ 如果您一次运行多个 S3 集成任务，则这些任务将按顺序运行，而不是并行运行。
**注意**  
S3 集成任务与本机备份和还原任务共享相同的队列。在此队列中，任何时候最多只能有两个正在进行的任务。因此，两个正在运行的本机备份和还原任务将阻止所有 S3 集成任务。
+ 您必须在已还原的实例上重新启用 S3 集成功能。S3 集成不会从源实例传播到已还原的实例。`D:\S3` 中的文件在还原的实例上被删除。
+ 下载到数据库实例的文件数不能超过 100 个。换句话说，`D:\S3\` 中的文件数不能超过 100 个。
+ 仅支持下载无文件扩展名或具有以下文件扩展名的文件：.abf、.asdatabase、.bcp、configsettings、.csv、.dat、.deploymentoptions、.deploymenttargets、.fmt、.info、.ispac、.lst、.tbl、.txt、.xml 和 .xmla。
+ S3 存储桶必须与相关 AWS Identity and Access Management (IAM) 角色具有同一所有者。因此，不支持跨账户 S3 集成。
+ S3 存储桶不能向公众开放。
+ 从 RDS 上传到 S3 的文件大小限制为每个文件 50 GB。
+ 从 S3 下载到 RDS 的文件大小限制为 S3 支持的最大文件大小。

**Topics**
+ [将 RDS for SQL Server 与 S3 集成的先决条件](Appendix.SQLServer.Options.S3-integration.preparing.md)
+ [启用 RDS for SQL Server 与 S3 的集成](Appendix.SQLServer.Options.S3-integration.enabling.md)
+ [在 RDS for SQL Server 和 Amazon S3 之间传输文件](Appendix.SQLServer.Options.S3-integration.using.md)
+ [列出 RDS 数据库实例上的文件](Appendix.SQLServer.Options.S3-integration.using.listing-files.md)
+ [删除 RDS 数据库实例上的文件](Appendix.SQLServer.Options.S3-integration.using.deleting-files.md)
+ [监控文件传输任务的状态](Appendix.SQLServer.Options.S3-integration.using.monitortasks.md)
+ [取消任务](Appendix.SQLServer.Options.S3-integration.canceltasks.md)
+ [S3 集成的多可用区限制](#S3-MAZ)
+ [禁用 RDS for SQL Server 与 S3 的集成](Appendix.SQLServer.Options.S3-integration.disabling.md)

有关使用 Amazon S3 中的文件的更多信息，请参阅 [Amazon Simple Storage Service 入门](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3)。

## S3 集成的多可用区限制
<a name="S3-MAZ"></a>

在多可用区实例上，故障转移之后将删除备用副本上 `D:\S3` 文件夹中的文件。故障转移可以是预先计划的，例如在数据库实例修改（如更改实例类或升级引擎版本）期间。或者，故障转移可能是未计划的，在主实例停机时进行。

**注意**  
我们不建议将 `D:\S3` 文件夹用于文件存储。最佳做法是将创建的文件上传到 Amazon S3 以使其持久，并在需要导入数据时下载文件。

要确定上次故障转移时间，您可以使用 `msdb.dbo.rds_failover_time` 存储过程。有关更多信息，请参阅“[确定 Amazon RDS for SQL Server 的上次失效转移时间](Appendix.SQLServer.CommonDBATasks.LastFailover.md)”。

**Example 最近无故障转移示例**  
此示例显示错误日志中最近没有故障转移的输出。自 2020-04-29 23:59:00.01 以来，没有发生故障转移。  
因此，在该时间之后下载的所有文件，如未使用 `rds_delete_from_filesystem` 存储过程删除，则仍可在当前主机上访问。在该时间之前下载的文件可能也可用。  


| errorlog\_available\_from | recent\_failover\_time | 
| --- | --- | 
| 2020-04-29 23:59:00.0100000 | null | 

**Example 最近故障转移示例**  
此示例显示错误日志中最近有故障转移的输出。最近一次故障转移的时间是在 2020-05-05 18:57:51.89。  
在该时间之后下载的所有文件，如未使用 `rds_delete_from_filesystem` 存储过程删除，则仍可在当前主机上访问。  


| errorlog\_available\_from | recent\_failover\_time | 
| --- | --- | 
| 2020-04-29 23:59:00.0100000 | 2020-05-05 18:57:51.8900000 | 