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

Log Shipping问题:日志已复制至备用服务器文件夹但未载入数据库

Log Shipping日志已复制但未载入备用数据库的官方解决方案
  • 确认备用数据库状态
    备用数据库必须处于NORECOVERY或STANDBY模式才能接收事务日志还原。执行以下查询验证:

    SELECT name, recovery_model_desc, state_desc FROM sys.databases WHERE name = '备用数据库名';
    

    若状态不符,需先将数据库恢复至NORECOVERY模式(注意:此操作会中断现有日志链,需重新初始化Log Shipping)。

  • 排查日志还原作业细节

    • 即使作业显示“运行成功”,也要查看作业步骤的具体输出,确认是否存在日志文件被跳过的情况(如文件序列不连续、已被标记为已还原)。
    • 验证作业代理账户权限:需具备备用服务器日志共享文件夹的读取权限,以及备用数据库的RESTORE DATABASE权限。
  • 验证日志文件完整性
    在备用服务器上执行以下命令检查日志文件是否损坏:

    RESTORE VERIFYONLY FROM DISK = '\\备用服务器\共享路径\目标日志文件.trn';
    

    若验证失败,说明文件传输过程中损坏,需检查复制作业的传输逻辑,调整超时或重试参数。

  • 检查日志链连续性

    • 主服务器查询最后备份的LSN:
      SELECT last_log_backup_lsn FROM sys.databases WHERE name = '主数据库名';
      
    • 备用服务器查询最后还原的LSN:
      SELECT last_restored_lsn FROM sys.databases WHERE name = '备用数据库名';
      

    若两个LSN不连续,说明存在缺失的日志文件,需补充缺失文件并手动还原,之后重启Log Shipping作业。

  • 核对Log Shipping配置参数
    查询MSDB系统表确认配置正确性:

    SELECT * FROM msdb.dbo.log_shipping_secondary_databases WHERE secondary_database = '备用数据库名';
    

    重点检查restore_delay(还原延迟)、restore_all(是否还原所有可用日志),确保restore_all设置为1。

  • 手动测试日志还原
    尝试手动还原单个日志文件,观察是否报错:

    RESTORE LOG '备用数据库名' FROM DISK = '\\备用服务器\共享路径\目标日志文件.trn' WITH NORECOVERY;
    

    根据返回的错误信息针对性排查(如权限、数据库状态问题)。

内容的提问来源于stack exchange,提问作者Gabriela.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:24:18