使用 RDS for SQL Server 访问事务日志备份 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 RDS for SQL Server 访问事务日志备份

通过访问 RDS for SQL Server 的事务日志备份,您可以列出数据库的事务日志备份文件并将它们复制到目标 Amazon S3 桶。通过在 Amazon S3 桶中复制事务日志备份,您可以将它们与完整和差异数据库备份结合使用,以执行时间点数据库还原。您可以使用 RDS 存储过程设置对事务日志备份的访问权限,列出可用的事务日志备份,并将它们复制到您的 Amazon S3 桶。

访问事务日志备份可提供以下功能和好处:

  • 列出并查看 RDS for SQL Server 数据库实例上数据库的可用事务日志备份的元数据。

  • 将可用事务日志备份从 RDS for SQL Server 复制到目标 Amazon S3 桶。

  • 无需还原整个数据库实例,即可执行数据库的时间点还原。有关将数据库实例还原到某个时间点的更多信息,请参阅将 Amazon RDS 的数据库实例还原到指定时间

可用性和支持

所有 Amazon 区域都支持访问事务日志备份。访问事务日志备份适用于 Amazon RDS 支持的所有 Microsoft SQL Server 版本。

要求

在启用访问事务日志备份之前,必须满足以下要求:

  • 必须在数据库实例上启用自动备份,并且备份保留期必须设置为一天或多天的值。有关启用自动备份和配置保留策略的更多信息,请参阅启用自动备份

  • Amazon S3 桶必须与源数据库实例存在于同一账户和区域中。在启用访问事务日志备份之前,请选择现有的 Amazon S3 桶或创建新桶,用于存储事务日志备份文件。

  • 必须按如下方式配置 Amazon S3 桶权限策略,以允许 Amazon RDS 将事务日志文件复制到其中:

    1. 将桶的对象账户拥有权属性设置为 Bucket Owner Preferred(首选桶拥有者)。

    2. 添加以下策略。原定设置情况下没有策略,因此,请使用桶访问控制列表(ACL)编辑并添加桶策略。

    以下示例使用 ARN 指定资源。我们建议在基于资源的信任关系中使用 SourceArnSourceAccount 全局条件上下文键,以此限制服务对特定资源的权限。有关使用 ARN 的更多信息,请参阅 Amazon 资源名称(ARN)Amazon RDS 中的 Amazon 资源名称(ARN)

    例 用于访问事务日志备份的 Amazon S3 权限策略
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Only allow writes to my bucket with bucket owner full control", "Effect": "Allow", "Principal": { "Service": "backups.rds.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:sourceAccount": "{customer_account}", "aws:sourceArn": "{db_instance_arn}" } } } ] }
  • 用于访问 Amazon S3 桶的 Amazon Identity and Access Management(IAM)角色。如果您已有一个 IAM 角色,则可以使用它。您可以选择在使用Amazon Web Services Management Console添加 SQLSERVER_BACKUP_RESTORE 选项时为自己创建新的 IAM 角色。或者,您可以手动创建一个新的角色。有关使用 SQLSERVER_BACKUP_RESTORE 创建和配置 IAM 角色的更多信息,请参阅为本机备份和还原手动创建 IAM 角色

  • 必须将 SQLSERVER_BACKUP_RESTORE 选项添加到数据库实例上的选项组。有关添加 SQLSERVER_BACKUP_RESTORE 选项的更多信息,请参阅SQL Server 中对本机备份和还原的支持

    注意

    如果您的数据库实例启用了存储加密,则必须以原生备份和还原选项组中提供的 IAM 角色提供 Amazon KMS(KMS)操作和密钥。

    (可选)如果您打算使用 rds_restore_log 存储过程执行时间点数据库还原,我们建议将相同的 Amazon S3 路径用于原生备份和还原选项组以及访问事务日志备份。此方法可确保当 Amazon RDS 代入选项组中的角色以执行还原日志功能时,它有权从相同的 Amazon S3 路径检索事务日志备份。

  • 如果数据库实例已加密,则无论加密类型如何(Amazon 托管密钥或客户托管密钥),您都必须在 IAM 角色和 rds_tlog_backup_copy_to_S3 存储过程中提供客户托管的 KMS 密钥。

限制和建议

访问事务日志备份有以下限制和建议:

  • 对于任何配置了 1 到 35 天备份保留期的数据库实例,您最多可以列出并复制最近七天的事务日志备份。

  • 用于访问事务日志备份的 Amazon S3 桶必须与源数据库实例位于相同的账户和区域中。不支持跨账户和跨区域复制。

  • 只能将一个 Amazon S3 桶配置为将事务日志备份复制到的目标。您可以使用 rds_tlog_copy_setup 存储过程选择新的目标 Amazon S3 桶。有关选择新目标 Amazon S3 桶的更多信息,请参阅设置访问事务日志备份

  • 如果您的 RDS 实例未启用存储加密,则在使用 rds_tlog_backup_copy_to_S3 存储过程时无法指定 KMS 密钥。

  • 不支持多账户复制。用于复制的 IAM 角色仅允许对数据库实例的拥有者账户中的 Amazon S3 桶拥有写入权限。

  • 在 RDS for SQL Server 数据库实例上只能运行任何类型的两个并发任务。

  • 在给定时间只能为单个数据库运行一个复制任务。如果要复制数据库实例上多个数据库的事务日志备份,请对每个数据库使用单独的复制任务。

  • 如果您复制 Amazon S3 桶中已存在的同名事务日志备份,则现有的事务日志备份将被覆盖。

  • 您只能在主数据库实例上运行可访问事务日志备份的存储过程。您无法在 RDS for SQL Server 只读副本或多可用区数据库集群的辅助实例上运行这些存储过程。

  • 如果在 rds_tlog_backup_copy_to_S3 存储过程运行时重启 RDS for SQL Server 数据库实例,则当数据库实例恢复联机时,任务将自动从头开始重新启动。重启前任务运行时已复制到 Amazon S3 桶的任何事务日志备份都将被覆盖。

  • 无法将 Microsoft SQL Server 系统数据库和 RDSAdmin 数据库配置为访问事务日志备份。

  • 不支持复制到由 SSE-KMS 加密的桶。