使用 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 将事务日志文件复制到其中:
将桶的对象账户拥有权属性设置为 Bucket Owner Preferred(首选桶拥有者)。
添加以下策略。原定设置情况下没有策略,因此,请使用桶访问控制列表(ACL)编辑并添加桶策略。
以下示例使用 ARN 指定资源。我们建议在基于资源的信任关系中使用
SourceArn
和SourceAccount
全局条件上下文键,以此限制服务对特定资源的权限。有关使用 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 加密的桶。