一朋友在升级SQL Server 2014后, SQL Server启动不了,寻求我的帮助。检查SQL Server 2014的错误日志,具体错误信息如下:
2020-11-08 10:00:58.28 spid8s Dropping procedure [dbo].[sp_syscollector_upload_instmdw]
2020-11-08 10:00:58.28 spid8s Creating procedure [dbo].[sp_syscollector_upload_instmdw]...
2020-11-08 10:00:58.28 spid8s Uploading data collector package from disk: C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Install\SqlTraceCollect.dtsx
2020-11-08 10:00:58.28 spid8s Uploading data collector package from disk: C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Install\SqlTraceCollect.dtsx
2020-11-08 10:00:58.29 spid8s Error: 2775, Severity: 17, State: 12.
2020-11-08 10:00:58.29 spid8s The code page 65001 is not supported by the server.
2020-11-08 10:00:58.30 spid8s Error: 912, Severity: 21, State: 2.
2020-11-08 10:00:58.30 spid8s Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 200, state 7, severity 25. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
2020-11-08 10:00:58.31 spid8s Error: 3417, Severity: 21, State: 3.
2020-11-08 10:00:58.31 spid8s Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
2020-11-08 10:00:58.31 spid8s SQL Server shutdown has been initiated
2020-11-08 10:00:58.31 spid8s SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
解决问题:
刚开始我以为是SQL Server升级过程中遇到错误,后面仔细检查错误日志,发现我忽略了一个重要的错误信息“The code page 65001 is not supported by the server.”,code page 65001对应的编码为UTF-8,而数据库排序规则为Chinese_PRC_CI_AS,对应的code page为936。原来这台SQL Server 数据库服务器的操作系统为Windows 10(个人还从未在Windows 10上安装过SQL Server,不得不说,千奇百怪的环境总会带来千奇百怪的问题!!), 而它的服务器的“区域设置”勾选了支持UTF-8编码,所以只需在 ControlPanel -> Region -> Administrative -> Change System Locale 下取消如下截图的选项,重启服务器后,问题解决。