sqlserver启动时检查文件tempdb.dbf扇区大小时遇到意外错误

朋友网站,早上打开网站时,发现主页出现了“sql数据库连接错误”的提示,昨晚他倒腾服务器了,可能影响到了。

听他讲,昨晚并没有涉及数据库的操作,因此这可能是以前的操作引起的。

命令行运行sql:net start mssqlserver,在进程中发现,sqlserver.exe进程运行了下又退出了。

查看日志:17052:检查文件 ‘E:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf’ 的扇区大小时遇到意外错误。详细信息请检查 SQL Server 错误日志。

17052:
CREATE DATABASE 失败。未能创建所列出的某些文件名。请检查前面的错误信息。

难道tempdb.mdf有错误了?这种错误,和磁盘错误也有关系。

查看管理工具中的服务,发现sqlserver.exe服务是由特殊用户运行的,这也是为了服务器的安全考虑:我的电脑–控制面板–管理工具–服务–右键 MSSQLSERVER–属性–登陆–登陆身份

(如果是”本地系统帐户”,则是当前登录操作系统的用户),并检查该用户是否有操作 c:\Program Files\Microsoft SQL Server\MSSQL\data\ 的所有权限。

从安全的角度考虑,将“SQL2000数据库”安装在独立的分区里面,而且,“SQL2000数据库”必须运行在“普通用户”的状态下。所谓“普通用户”就是指没有任何权限的用户。

为什么要将“SQL2000数据库”必须运行在“普通用户”的状态下呢?因为如果使用了“超级管理员”或者“本地系统用户”来运行“SQL2000数据库”,就会造成服务器被入侵。因此,为了您的服务器安全,您务必将“SQL2000数据库”运行在“普通用户”的状态下。同时,要对硬盘的权限做好对应的权限设置“SQL2000数据库”才能正常运行。对于硬盘的权限设置请参考如下:

(假设您的数据安装在E:\Program Files\Microsoft SQL Server\)

 1. E盘的根目录(E:\)需要以下权限:

   “administrators ”的全部权限
   “System ”的全部权限
   “SQL2000的运行用户(只应用在当前文件夹)列出文件夹/读数据”的权限
   “读属性”的权限
   “读扩展属性”的权限
   “读取”的权限

 2. 数据库的安装目录(E:\Program Files\Microsoft SQL Server\)需要以
   下权限:

   “administrators ”的全部权限
   “System ”的全部权限
   “SQL2000的运行用户 ”的全部权限

(假设您的数据备份目录安装在F:\SQLBACK)

 1. F盘的根目录(F:\)需要以下权限:

   “administrators ”的全部权限
   “System ”的全部权限
   “SQL2000的运行用户(只应用在当前文件夹)列出文件夹/读数据”的权限
   “读属性”的权限
   “读扩展属性”的权限
   “读取”的权限

 2. 数据库的安装目录(F:\SQLBACK)需要以下权限:

   “administrators ”的全部权限
   “System ”的全部权限
   “SQL2000的运行用户 ”的全部权限

2 thoughts on “sqlserver启动时检查文件tempdb.dbf扇区大小时遇到意外错误

Comments are closed.