SQL Server 2017(含全文搜索)不定期崩溃,错误码0x00000006
解决SQL Server 2017不定期崩溃(错误码0x00000006)的方案
针对你遇到的SQL Server 2017不定期崩溃问题——不管是Ubuntu 16.04还是Windows环境都出现,甚至数据库空闲、仅存在DBeaver连接时也会触发错误码0x000000006(对应*"The handle is invalid"*,即句柄无效)——我整理了社区验证过的排查和解决步骤:
1. 先检查全文搜索服务的状态与权限
你安装了mssql-server-fts模块,这个服务的异常是触发崩溃的高频原因:
- Ubuntu环境:用命令查看服务状态
sudo systemctl status mssql-server-fts,确保服务处于active状态且无异常日志;尝试重启服务sudo systemctl restart mssql-server-fts后观察情况。 - Windows环境:打开服务管理器,找到「SQL Server Full-text Filter Daemon Launcher」服务,确认它用默认的
NT Service\MSSQLFDLauncher账户运行(不要随意修改账户权限),尝试重启服务。
2. 升级到SQL Server 2017最新累积更新(CU)
SQL Server 2017早期版本存在已知的全文搜索句柄泄漏BUG,空闲状态下也可能触发崩溃:
- Ubuntu环境:执行命令完成升级,确保SQL Server和全文搜索模块版本一致:
sudo apt-get update sudo apt-get install mssql-server sudo apt-get install mssql-server-fts - Windows环境:通过Microsoft Update或手动下载最新CU包安装,注意同步更新全文搜索相关组件。
3. 排查DBeaver连接的潜在兼容性问题
虽然崩溃时只有DBeaver连接,但部分配置可能触发异常:
- 检查DBeaver的连接属性,关闭「自动获取元数据」「全文搜索预加载」这类功能,重新连接后观察;
- 换用其他客户端(比如SSMS、sqlcmd)连接数据库,确认是否还会崩溃,以此排除DBeaver的兼容性问题。
4. 分析错误日志与转储文件定位根源
崩溃发生时SQL Server会生成关键日志,这是精准定位问题的核心:
- Ubuntu环境:默认错误日志路径为
/var/opt/mssql/log/errorlog,用tail -n 50 errorlog查看崩溃前后的日志条目; - Windows环境:通过SSMS的「管理」→「SQL Server日志」查看,或到
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Log路径下查找日志; - 如果有内存转储文件,可用WinDbg(Windows)或gdb(Ubuntu)加载分析,确认是否是全文搜索模块的句柄异常导致崩溃。
5. 验证并重建全文目录
全文目录损坏也可能引发服务崩溃:
- 运行以下T-SQL命令检查所有全文目录状态:
SELECT name, is_enabled, status_description FROM sys.fulltext_catalogs; - 若发现状态异常,执行命令重建对应目录:
ALTER FULLTEXT CATALOG [你的目录名称] REBUILD;
内容的提问来源于stack exchange,提问作者hbobenicio
相关产品推荐
相关产品推荐

