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

SQL Server日志传送:如何将目标数据库改为备用模式并解决还原状态问题?

SQL Server日志传送目标库无法转为可读状态的排查与解决

你的场景:已配置日志传送 SQL server1\source_database->SQL server2\target_database,SSMS报表显示运行正常,但目标库始终处于“Restoring”状态,尝试操作后仍未解决。以下是常见操作错误及对应解决方法:

一、保持日志传送同步,同时让目标库可读(STANDBY模式)

常见错误点及修复

  1. 日志传送配置未启用只读访问选项
    若当初配置时未勾选“在备用模式下还原备份(允许只读访问)”,目标库会一直以NORECOVERY模式还原,无法可读。
    修复步骤:

    • 打开SSMS,在源服务器上右键源数据库 → 任务 → 日志传送 → 编辑目标数据库设置
    • 勾选“在备用模式下还原备份(允许只读访问)”,指定撤销文件路径(如 D:\SQLBackup\target_undo.ldf)
    • 保存配置,等待下一次日志备份自动还原后,目标库会切换为STANDBY模式,支持只读访问
  2. 手动还原备份时未指定STANDBY选项
    若曾手动用NORECOVERY模式还原过备份,即使后续配置了STANDBY,日志传送作业仍会沿用NORECOVERY执行还原。
    修复步骤:

    • 在目标服务器上停止日志传送的“日志还原”作业
    • 执行T-SQL命令:
      RESTORE DATABASE target_database WITH STANDBY = 'D:\SQLBackup\target_undo.ldf'
      
    • 重启日志还原作业,后续日志备份会以STANDBY模式还原,目标库保持可读
  3. 日志还原作业执行失败(报表误判)
    SSMS报表可能未实时更新,需检查目标服务器上的日志还原作业历史:

    • 查看作业是否有执行失败记录(如备份文件访问权限不足、磁盘空间不够、网络共享路径不可达)
    • 修复对应问题后,手动执行一次日志还原作业,完成后目标库会进入STANDBY可读状态

二、彻底脱离日志传送,将目标库转为独立可读可写数据库

若无需再同步源库数据,可终止日志传送并完成还原:

  1. 停止源服务器的“日志备份”作业和目标服务器的“日志还原”作业
  2. 在目标服务器执行T-SQL命令完成还原:
    RESTORE DATABASE target_database WITH RECOVERY
    
  3. 执行后目标库会脱离Restoring状态,转为正常可读写状态,同时日志传送链路断开

注意事项

  • 执行RESTORE命令前,需确保无正在运行的还原进程,可通过以下命令检查:
    SELECT * FROM sys.dm_exec_requests WHERE command LIKE 'RESTORE%'
    
  • STANDBY模式下,目标库在日志还原期间会短暂不可读,还原完成后自动恢复只读访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:01:35