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

事务日志传送问题:Standby/只读数据库持续卡在‘正在还原’状态

Standby模式下事务日志还原挂起的排查方向

一、还原进程与数据库状态检查

  • 实时查看还原请求状态:执行 SELECT session_id, command, wait_type, wait_time, blocking_session_id, percent_complete FROM sys.dm_exec_requests WHERE command LIKE 'RESTORE%',重点关注wait_type(判断等待资源类型)、blocking_session_id(是否被其他会话阻塞)、percent_complete(还原进度是否停滞)
  • 确认数据库基础状态:执行 SELECT name, state_desc, is_in_standby, recovery_model_desc FROM sys.databases WHERE name = '你的备用库名',检查is_in_standby是否为1,数据库状态是否为ONLINE(Standby模式下应为只读在线)
  • 回溯还原历史:执行 SELECT restore_date, restore_type, status, user_name, backup_set_id FROM msdb.dbo.restorehistory WHERE destination_database_name = '你的备用库名' ORDER BY restore_date DESC,查看最近几次还原的结束状态、耗时,是否存在中断或失败记录

二、会话阻塞与锁资源排查

  • 定位阻塞还原的会话:若blocking_session_id不为0,执行 SELECT session_id, login_name, program_name, host_name FROM sys.dm_exec_sessions WHERE session_id = [阻塞会话ID],再用 DBCC INPUTBUFFER([阻塞会话ID]) 查看该会话执行的SQL,确认是否为未被正常断开的报表查询会话
  • 检查数据库锁资源:执行 SELECT resource_type, request_mode, request_session_id, resource_description FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('你的备用库名'),排查是否存在长时间持有的SCH-M锁(还原操作需要该锁,若被占用会导致挂起)

三、存储与IO性能排查

  • 检查磁盘IO瓶颈:用Windows性能监视器查看磁盘队列长度、平均读写延迟;或执行 SELECT * FROM sys.dm_io_virtual_file_stats(DB_ID('你的备用库名'), NULL),分析数据文件和日志文件的读写等待时间,IO性能不足会导致还原进度停滞
  • 验证磁盘状态:检查备用服务器上备份文件存储路径、数据库数据/日志文件路径的磁盘剩余空间,同时查看Windows系统日志,确认是否存在磁盘IO错误、磁盘空间不足告警

四、LSRestore作业配置与执行日志检查

  • 查看作业执行日志:在SQL Server代理中找到LSRestore作业,查看每一步的执行详情,重点排查是否有“无法断开用户连接”“备份文件损坏”“日志链不连续”等报错信息
  • 检查作业调度冲突:当前LSRestore每10分钟执行一次,而日志传送是15分钟推送一次,确认是否存在前一次还原未完成、下一次作业已启动的重叠执行情况
  • 验证还原命令参数:确认作业中的还原命令是否包含 WITH STANDBY = '备用文件路径', ROLLBACK IMMEDIATE,确保断开用户连接的逻辑生效

五、日志链与备份文件完整性检查

  • 验证事务日志备份完整性:在备用服务器上执行 RESTORE VERIFYONLY FROM DISK = '具体事务日志备份文件路径',检查备份文件是否损坏
  • 确认日志链连续性:对比生产服务器msdb.dbo.backupset中的日志备份记录,与备用服务器msdb.dbo.restorehistory的还原记录,排查是否存在缺失的日志备份,导致还原无法推进
  • 检查生产服务器日志状态:执行 SELECT name, log_reuse_wait_desc FROM sys.databases WHERE name = '生产库名',确认生产库日志是否能正常截断,若日志文件过大,会导致备用库还原耗时过长进而引发挂起

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:35:40