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

为什么Linux上重启/关机后部分SQL Server数据库进入Recovery Pending状态

Ubuntu 20.04 环境下SQL Server重启后数据库进入Recovery Pending状态解决方案

核心诱因

故障核心原因和数据存放在独立硬盘直接相关:默认配置下SQL Server服务启动时机早于独立硬盘挂载完成,服务启动时无法读取独立硬盘上的数据库文件,就会将对应数据库标记为Recovery Pending状态。

解决方案

步骤1:配置独立硬盘永久挂载

  • 首先确认存放数据库的独立硬盘已配置/etc/fstab永久挂载,避免重启后挂载点失效。配置时需确保mssql用户对挂载目录有完整的读写执行权限,fstab参考配置如下(替换为你自己的磁盘UUID、挂载路径、文件系统格式):
UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx /mnt/sql_data ext4 defaults,rw 0 2
  • 配置完成后执行sudo mount -a测试挂载是否正常,确认无报错后再进行后续操作,避免fstab配置错误导致系统无法正常启动。

步骤2:调整SQL Server服务启动依赖

修改systemd配置,强制SQL Server等待所有本地磁盘挂载完成后再启动:

  • 执行命令sudo systemctl edit mssql-server.service
  • 在弹出的编辑窗口中添加如下配置:
[Unit]
After=local-fs.target
Requires=local-fs.target
  • 保存退出后执行sudo systemctl daemon-reload重载系统服务配置。

步骤3:附加优化配置

  • 执行SQL命令关闭对应数据库的AUTO_CLOSE参数,避免数据库自动关闭引发的恢复异常:
ALTER DATABASE [你的数据库名称] SET AUTO_CLOSE OFF WITH NO_WAIT
  • 可通过sudo smartctl -a /dev/磁盘设备名检查独立硬盘健康状态,排除坏道、IO错误等硬件层面故障。
  • 如需验证配置效果,可执行sudo reboot整机重启,查看启动后数据库状态是否正常。

内容的提问来源于stack exchange,提问作者Ha'gel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:45:05