

# 访问事务日志备份故障排除
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

以下是您使用存储过程访问事务日志备份时可能遇到的问题。


****  

| 存储过程 | 错误消息 | 问题 | 故障排除建议 | 
| --- | --- | --- | --- | 
| rds\_tlog\_copy\_setup | 此数据库实例上已禁用备份。启用保留期至少为“1”的数据库实例备份，然后重试。 | 未为数据库实例启用自动备份。 |  必须启用数据库实例备份保留，保留期至少为一天。有关启用自动备份和配置备份保留期的更多信息，请参阅[备份保留期](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\_tlog\_copy\_setup | 运行 rds\_tlog\_copy\_setup 存储过程时出错。重新连接到 RDS 端点并重试。 | 出现内部错误。 | 重新连接到 RDS 端点并再次运行 `rds_tlog_copy_setup` 存储过程。 | 
| rds\_tlog\_copy\_setup | 不支持在事务内运行 rds\_tlog\_backup\_copy\_setup 存储过程。请验证会话没有未完成的事务，然后重试。 | 在事务中使用 `BEGIN` 和 `END` 尝试执行了此存储过程。 | 运行 `rds_tlog_copy_setup` 存储过程时避免使用 `BEGIN` 和 `END`。 | 
| rds\_tlog\_copy\_setup | 输入参数 `@target_s3_arn` 的 S3 桶名称应包含除空格外的至少一个字符。 | 为输入参数 `@target_s3_arn` 提供的值不正确。 | 确保输入参数 `@target_s3_arn` 指定了完整的 Amazon S3 桶 ARN。 | 
| rds\_tlog\_copy\_setup | `SQLSERVER_BACKUP_RESTORE` 选项未启用或处于启用过程中。启用该选项或稍后重试。 | `SQLSERVER_BACKUP_RESTORE` 选项未在数据库实例上启用，或者刚刚启用并等待内部激活。 | 按照“要求”部分指定的方式启用 `SQLSERVER_BACKUP_RESTORE` 选项。等待几分钟，然后再次运行 `rds_tlog_copy_setup` 存储过程。 | 
| rds\_tlog\_copy\_setup | 输入参数 `@target_s3_arn` 的目标 S3 arn 不能为空或 null。 | 为输入参数 `@target_s3_arn` 提供了 `NULL` 值，或者没有提供值。 | 确保输入参数 `@target_s3_arn` 指定了完整的 Amazon S3 桶 ARN。 | 
| rds\_tlog\_copy\_setup | 输入参数 `@target_s3_arn` 的目标 S3 arn 必须以 arn:aws 开头。 | 提供的输入参数 `@target_s3_arn` 前面没有 `arn:aws`。 | 确保输入参数 `@target_s3_arn` 指定了完整的 Amazon S3 桶 ARN。 | 
| rds\_tlog\_copy\_setup | 目标 S3 ARN 桶已设置为所提供的值。 | `rds_tlog_copy_setup` 存储过程之前已运行并使用 Amazon S3 桶 ARN 进行配置。 | 要修改访问事务日志备份的 Amazon S3 桶值，请提供不同的 `target S3 ARN`。 | 
| rds\_tlog\_copy\_setup | 无法生成用于启用“访问事务日志备份”的凭证。确认通过 `rds_tlog_copy_setup` 提供了 S3 路径 ARN，稍后重试。 | 生成凭证以启用访问事务日志备份时出现未指定的错误。 | 检查您的设置配置，然后重试。 | 
| rds\_tlog\_copy\_setup | 存在待处理任务时，您无法运行 rds\_tlog\_copy\_setup 存储过程。等待待处理任务完成，然后重试。 | 任何时候只能运行两个任务。有待处理任务等待完成。 | 查看待处理任务并等待其完成。有关监控任务状态的更多信息，请参阅[跟踪任务的状态](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 已为数据库发出 T-log 备份文件复制任务：%s，任务 ID：%d，请稍后重试。 | 给定数据库在任何时候只能运行一个复制任务。有待处理的复制任务等待完成。 | 查看待处理任务并等待其完成。有关监控任务状态的更多信息，请参阅[跟踪任务的状态](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 必须提供这三个参数集中的至少一个。SET-1:(@backup\_file\_start\_time, @backup\_file\_end\_time) \| SET-2:(@starting\_lsn, @ending\_lsn) \| SET-3:(@rds\_backup\_starting\_seq\_id, @rds\_backup\_ending\_seq\_id)  | 三个参数集均未提供，或者提供的参数集缺少必需的参数。 | 您可以指定时间、lsn 或序列 ID 参数。这三组参数中的一组是必需的。有关所需参数的更多信息，请参阅[复制事务日志备份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 您的实例上已禁用备份。请启用备份，稍后重试。 | 未为数据库实例启用自动备份。 |  有关启用自动备份和配置备份保留期的更多信息，请参阅[备份保留期](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 找不到给定的数据库 %s。 | 为输入参数 `@db_name` 提供的值与数据库实例上的数据库名称不匹配。 | 使用正确的数据库名称。要按名称列出所有数据库，请运行 `SELECT * from sys.databases` | 
| rds\_tlog\_backup\_copy\_to\_S3 | 无法对于 SQL Server 系统数据库或 rdsadmin 数据库运行 rds\_tlog\_backup\_copy\_to\_S3 存储过程。 | 为输入参数 `@db_name` 提供的值与 SQL Server 系统数据库名称或 RDSAdmin 数据库相匹配。 | 不允许使用以下数据库来访问事务日志备份：`master, model, msdb, tempdb, RDSAdmin.` | 
| rds\_tlog\_backup\_copy\_to\_S3 | 输入参数 @db\_name 的数据库名称不能为空或为 Null。 | 为输入参数 `@db_name` 提供的值为空或 `NULL`。 | 使用正确的数据库名称。要按名称列出所有数据库，请运行 `SELECT * from sys.databases` | 
| rds\_tlog\_backup\_copy\_to\_S3 | 数据库实例备份保留期必须设置为至少 1 才能运行 rds\_tlog\_backup\_copy\_setup 存储过程。 | 未为数据库实例启用自动备份。 | 有关启用自动备份和配置备份保留期的更多信息，请参阅[备份保留期](USER_WorkingWithAutomatedBackups.BackupRetention.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 运行存储过程 rds\_tlog\_backup\_copy\_to\_S3 时出错。重新连接到 RDS 端点并重试。 | 出现内部错误。 | 重新连接到 RDS 端点并再次运行 `rds_tlog_backup_copy_to_S3` 存储过程。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 只能提供这三个参数集中的一个。SET-1:(@backup\_file\_start\_time, @backup\_file\_end\_time) \| SET-2:(@starting\_lsn, @ending\_lsn) \| SET-3:(@rds\_backup\_starting\_seq\_id, @rds\_backup\_ending\_seq\_id)  | 提供了多个参数集。 | 您可以指定时间、lsn 或序列 ID 参数。这三组参数中的一组是必需的。有关所需参数的更多信息，请参阅[复制事务日志备份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 不支持在事务内运行 rds\_tlog\_backup\_copy\_to\_S3 存储过程。请验证会话没有未完成的事务，然后重试。 | 在事务中使用 `BEGIN` 和 `END` 尝试执行了此存储过程。 | 运行 `rds_tlog_backup_copy_to_S3` 存储过程时避免使用 `BEGIN` 和 `END`。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 提供的参数超出了事务备份日志保留期。要列出可用的事务日志备份文件，请运行 rds\_fn\_list\_tlog\_backup\_metadata 函数。 | 对于提供的输入参数，没有适合副本保留期限的可用事务日志备份。 | 使用一组有效的参数重试。有关所需参数的更多信息，请参阅[复制事务日志备份](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 处理请求时出现权限错误。确保桶与数据库实例位于相同的账户和区域中，并根据公有文档中的模板确认 S3 桶策略权限。 | 检测到所提供的 S3 桶或其策略权限存在问题。 | 确认访问事务日志备份的设置正确无误。有关 S3 桶的设置要求的更多信息，请参阅[要求](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements)。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 不允许在 RDS 只读副本实例上运行 `rds_tlog_backup_copy_to_S3` 存储过程。 | 已尝试在 RDS 只读副本实例上执行存储过程。 | 连接到 RDS 主数据库实例以运行 `rds_tlog_backup_copy_to_S3` 存储过程。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 输入参数 `@starting_lsn` 的 LSN 必须小于 `@ending_lsn`。 | 为输入参数 `@starting_lsn` 提供的值大于为输入参数 `@ending_lsn` 提供的值。 | 确保为输入参数 `@starting_lsn` 提供的值小于为输入参数 `@ending_lsn` 提供的值。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | `rds_tlog_backup_copy_to_S3` 存储过程只能由源数据库中 `db_owner` 角色的成员执行。 | 尚未为尝试在提供的 `db_name` 上运行 `rds_tlog_backup_copy_to_S3` 存储过程的账户授予 `db_owner` 角色 | 确保运行存储过程的账户对于所提供的 `db_name` 获得 `db_owner` 角色的权限。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 输入参数 `@rds_backup_starting_seq_id` 的序列 ID 必须小于或等于 `@rds_backup_ending_seq_id`。 | 为输入参数 `@rds_backup_starting_seq_id` 提供的值大于为输入参数 `@rds_backup_ending_seq_id` 提供的值。 | 确保为输入参数 `@rds_backup_starting_seq_id` 提供的值小于为输入参数 `@rds_backup_ending_seq_id` 提供的值。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | SQLSERVER\_BACKUP\_RESTORE 选项未启用或处于启用过程中。启用该选项或稍后重试。 | `SQLSERVER_BACKUP_RESTORE` 选项未在数据库实例上启用，或者刚刚启用并等待内部激活。 | 按照“要求”部分指定的方式启用 `SQLSERVER_BACKUP_RESTORE` 选项。等待几分钟，然后再次运行 `rds_tlog_backup_copy_to_S3` 存储过程。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 输入参数 `@backup_file_start_time` 的开始时间必须小于 `@backup_file_end_time`。 | 为输入参数 `@backup_file_start_time` 提供的值大于为输入参数 `@backup_file_end_time` 提供的值。 | 确保为输入参数 `@backup_file_start_time` 提供的值小于为输入参数 `@backup_file_end_time` 提供的值。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 由于缺乏访问权限，我们无法处理该请求。请检查您对该功能的设置和权限。 | Amazon S3 桶权限可能存在问题，或者提供的 Amazon S3 桶位于其他账户或区域中。 | 确保 Amazon S3 桶策略权限允许 RDS 访问。确保 Amazon S3 桶与数据库实例位于同一账户和区域中。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 对于未经过存储加密的实例，您不能将 KMS 密钥 ARN 作为输入参数提供给存储过程。 | 如果未在数据库实例上启用存储加密，则不应提供输入参数 `@kms_key_arn`。 | 请勿为 `@kms_key_arn` 提供输入参数。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 您必须向存储加密实例的存储过程提供 KMS 密钥 ARN 作为输入参数。 | 在数据库实例上启用存储加密时，必须提供输入参数 `@kms_key_arn`。 | 为 `@kms_key_arn` 提供一个输入参数，其值与 Amazon S3 桶的 ARN 相匹配，用于事务日志备份。 | 
| rds\_tlog\_backup\_copy\_to\_S3 | 在运行 `rds_tlog_backup_copy_to_S3` 存储过程之前，必须先运行 `rds_tlog_copy_setup` 存储过程并设置 `@target_s3_arn`。 | 在尝试运行 `rds_tlog_backup_copy_to_S3` 存储过程之前，尚未完成对事务日志备份设置过程的访问。 | 在运行 `rds_tlog_copy_setup` 存储过程之前运行 `rds_tlog_backup_copy_to_S3` 存储过程。有关运行设置过程以访问事务日志备份的更多信息，请参阅[设置访问事务日志备份](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md)。 | 