启动SQL Server 2017服务时出错。错误代码3417


13

我的计算机上安装了SQL Server 2017。这是SELECT @@VERSION返回的内容:

Microsoft SQL Server 2017(RTM-GDR)(KB4293803)-14.0.2002.14(X64)2018年7月21日版权所有(C)2017 Windows 10 Enterprise 10.0(内部版本17134)上的Microsoft Corporation Enterprise Edition(64位): )`

到昨天为止,一切都很好。突然SQL SERVER Service没跑。当我想手动运行该服务时,显示3417 error。当我检查事件日志时,看到此错误:

数据库'master'的脚本级别升级失败,因为升级步骤'msdb110_upgrade.sql'遇到错误200,状态7,严重性25。这是一个严重的错误情况,可能会干扰常规操作,并且数据库将脱机。如果错误是在“ master”数据库升级期间发生的,它将阻止整个SQL Server实例启动。检查以前的错误日志条目中是否有错误,采取适当的纠正措施,然后重新启动数据库,以便脚本升级步骤运行完成。

经过一番谷歌搜索后,我发现可以使用它/T902 switch并尝试解决问题。但是没有解决方案对我有用。因此,我安装了另一个相同实例SQL SERVER 2017并还原了数据库。现在,新安装的实例具有相同的问题。

可能是什么问题呢?

更新 这是SQL Server的完整错误日志。

2018-09-17 13:06:47.29 spid6s配置选项“显示高级选项”从1更改为1。运行RECONFIGURE语句进行安装。

2018-09-17 13:06:47.29 spid6s配置选项“显示高级选项”从1更改为1。运行RECONFIGURE语句进行安装。

2018-09-17 13:06:47.29 spid6s配置选项'Agent XPs'从1更改为1。运行RECONFIGURE语句进行安装。

2018-09-17 13:06:47.29 spid6s配置选项'Agent XPs'从1更改为1。运行RECONFIGURE语句进行安装。

2018-09-17 13:06:47.29 spid6s创建SSIS文件夹...

2018-09-17 13:06:47.30 spid6s删除过程[dbo]。[sp_syscollector_get_instmdw]

2018-09-17 13:06:47.30 spid6s创建过程[dbo]。[sp_syscollector_get_instmdw] ...

2018-09-17 13:06:47.30 spid6s删除过程[dbo]。[sp_syscollector_upload_instmdw]

2018-09-17 13:06:47.30 spid6s创建过程[dbo]。[sp_syscollector_upload_instmdw] ...

2018-09-17 13:06:47.30 spid6s从磁盘上载数据收集器程序包:c:\ Program Files \ Microsoft SQL Server \ MSSQL14.SQL2017 \ MSSQL \ Install \ SqlTraceCollect.dtsx

2018-09-17 13:06:47.30 spid6s从磁盘上载数据收集器程序包:c:\ Program Files \ Microsoft SQL Server \ MSSQL14.SQL2017 \ MSSQL \ Install \ SqlTraceCollect.dtsx

2018-09-17 13:06:47.30 spid6s错误:2775,严重性:17,状态:12。

2018-09-17 13:06:47.30 spid6s服务器不支持代码页65001。

2018-09-17 13:06:47.30 spid6s错误:912,严重性:21,状态:2。

2018-09-17 13:06:47.30 spid6s数据库'master'的脚本级别升级失败,因为升级步骤'msdb110_upgrade.sql'遇到错误200,状态7,严重性25。这是一个严重的错误情况,可能会干扰常规操作数据库将脱机。如果错误是在“ master”数据库升级期间发生的,它将阻止整个SQL Server实例启动。检查以前的错误日志条目中是否有错误,采取适当的纠正措施,然后重新启动数据库,以便脚本升级步骤运行完成。

2018-09-17 13:06:47.30 spid6s错误:3417,严重性:21,状态:3。

2018-09-17 13:06:47.30 spid6s无法恢复主数据库。SQL Server无法运行。从完整备份还原母版,对其进行修复或重建。有关如何重建主数据库的更多信息,请参见SQL Server联机丛书。

2018-09-17 13:06:47.30 spid6s SQL Server关闭已启动

2018-09-17 13:06:47.30 spid6s由于服务器关闭,SQL跟踪已停止。跟踪ID ='1'。这仅是参考消息;无需用户操作。

更新 这行有话要说。The code page 65001 is not supported by the server.我最近的Windows更新为Version 1803 (OS Build 17134.285)。此更新后,某些应用程序文本已更改为未知字符。这可能是问题的原因吗?

代码页的注册表图像

Answers:


16

首先我要说的是您正在Windows 10(客户端OS)上运行SQL Server 2017,但不受支持,请参阅SQL Server 2017的硬件和软件要求。通过在客户端OS上运行它,您在浪费企业版功能和大量资金。

另外,我相信此类问题主要是错误,因此,我建议您应用最新的SQL Server 2017 CU 10。让我知道是否可以解决您的问题。如果您想尝试解决此问题的方法,请参考此博客

正如OP确认的那样,即使在应用SQL Server 2017 CU10之后,问题也没有解决。

编辑:问题始于下面的语句

2018-09-17 13:06:47.30 spid6s服务器不支持代码页65001。

code page65001种手段UTF-8编码,这是不是SQL Server支持这个我相信是造成该问题。这绝对是一个BUG,我感到困惑,为什么CU10中仍未解决此问题。升级过程正在尝试bulk load使用UTF 8编码的数据,并且由于SQL Server不支持它,因此失败了。

您有Windows 10转到control pane,现在选择region and languageapplet,它可能仅region适用于Windows10。转到administrative tab并在选项卡的下部必须单击change system Locale,然后继续激活/选择Beta:UTF8支持并开始Windows机器。以下是我的Windows 7计算机上的选项。Windows 10 的选项可能几乎相同。

在此处输入图片说明

如OP所言,整个问题是在应用某些OS修补程序后开始的。取消选中“ Beta:UTF8支持”后,此问题已解决。问题似乎是两件事。

  1. OP已经检查过Beta:UTF8支持,并且运行良好,直到他应用了更改了“某些东西”的OS补丁。

  2. 从控制面板中已存在OS修补程序的Beta:UTF8支持取消选中后,该问题得以解决。

SQL Server在Beta:UTF8支持下运行良好,但是在应用OS补丁时,“某物”以某种方式中断,导致SQL Server主数据库无法联机,该消息表明不支持代码页65001。从控制面板禁用Beta:UTF8可解决此问题。尽管我认为这更多是一种解决方法,但MS需要为此提供适当的知识库文章。

PS:我也发现Connect Bug已针对此问题提出。当我说不支持(在客户端操作系统上安装Enterprise Edition)时,这并不意味着您无法运行此基础结构,仅表示您遇到了一些“错误”或意外失败时就只能靠自己了。如果您就任何此类问题向MS提出申诉,我相信他们会指出这一点。


1
@Beginner和Shanky:我C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Install\SqlTraceCollect.dtsx在Notepad ++中检查了该文件(),它显示的编码为“ UCS-2 LE BOM”,实际上是UTF-16 LE,在Microsoft-land上称为“ Unicode”。不知道该错误是在Windows还是SQL Server中出现的,但是鉴于该文件具有字节顺序标记(BOM),因此无论系统的默认编码如何,都不应尝试将其读取为UTF-8。毕竟,这就是拥有BOM的全部目的;-)文件甚至以:开头<?xml version="1.0" encoding="utf-16"?>
所罗门·鲁兹基

1
我安装了开发人员版本(SQL Server 2014,必须测试向后兼容性),并且此处同样适用。您的解决方案对此非常有效。
jgauffin

2
取消选中“ Beta:UTF8支持”后,此问题已解决。谢谢@Shanky,我在这个问题上浪费了两天,您可以节省我的时间。
TechNovIT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.