使用 RDS for SQL Server 访问事务日志备份 - Amazon Relational Database Service

使用 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 的数据库实例还原到指定时间

可用性和支持

所有 AWS 区域都支持访问事务日志备份。访问事务日志备份适用于 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 权限策略
    JSON
    { "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 桶的 AWS Identity and Access Management(IAM)角色。如果您已有一个 IAM 角色,则可以使用它。您可以选择在使用AWS Management Console添加 SQLSERVER_BACKUP_RESTORE 选项时为自己创建新的 IAM 角色。或者,您可以手动创建一个新的角色。有关使用 SQLSERVER_BACKUP_RESTORE 创建和配置 IAM 角色的更多信息,请参阅为本机备份和还原手动创建 IAM 角色

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

    注意

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

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

  • 如果数据库实例已加密,则无论加密类型如何(AWS 托管密钥或客户托管密钥),您都必须在 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 加密的桶。