You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过S3中的事务日志更新从BAK文件创建的AWS RDS SQL Server数据库?

可行性及操作方法

可行,AWS RDS SQL Server支持基于完整备份的事务日志恢复,前提是初始BAK文件为完整数据库备份,且待应用的事务日志属于该完整备份之后的连续日志链,无中断。

操作步骤:

  1. 前置检查

    • 确认初始BAK是完整备份,事务日志备份是该备份之后生成的连续序列,日志链未断裂。
    • 解压S3中的事务日志压缩包,得到.trn格式的日志备份文件。
    • 确保RDS实例关联的IAM角色拥有S3读取权限(若直接从S3导入),或准备好同一VPC内的EC2实例用于中转文件。
  2. 上传日志文件

    • 方式一:将.trn文件上传至S3桶,配置RDS的IAM角色拥有该桶的s3:GetObject权限。
    • 方式二:将文件上传至同VPC的EC2实例,通过SSMS连接RDS时,使用EC2共享目录作为文件路径。
  3. 应用事务日志

    • 用SSMS或其他SQL客户端连接RDS实例。
    • 确认数据库处于完整恢复模式(事务日志恢复必需):
      SELECT name, recovery_model_desc FROM sys.databases WHERE name = '你的数据库名';
      
      若不是完整模式,执行修改:
      ALTER DATABASE 你的数据库名 SET RECOVERY FULL;
      
    • 按日志生成顺序依次应用,注意参数区分:
      -- 应用非最后一个日志,保持数据库处于恢复中状态
      RESTORE LOG 你的数据库名
      FROM DISK = 's3://你的桶名/日志文件名1.trn' -- 或EC2本地路径
      WITH NORECOVERY;
      
      -- 应用最后一个日志,恢复完成后数据库可用
      RESTORE LOG 你的数据库名
      FROM DISK = 's3://你的桶名/日志文件名N.trn'
      WITH RECOVERY;
      
  4. 验证结果

    • 连接到目标数据库,查询关键表数据,确认事务日志中的更新已生效。

内容的提问来源于stack exchange,提问作者Tom Ron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:45:30