微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

启动SQL Server服务和数据库

在日常管理维护sql Server的时候,我们需要注意很多地方,然后有时候做起事情来也不得章法,现在就基本的原理和常见问题的解决思路,在这跟大家分享一下。
首先介绍一下sql Server基本的运行原理。
作为一个Windows服务,sql Server的每个实例就是一个sqlserve.exe进程。这个进程启动后会读取sql Server实例的启动配置,检测硬件,配置内存和cpu,初始化一些sql Server系统配置,启动数据库,连接网络。然后数据库就算正常启动了,然后客户端可以正常访问了。
这个是基本的启动过程,那在什么情况下回出现不能正常启动呢,当然介绍的都是我们可以解决的基本情况,像执行文件损坏,数据库损坏,这些不能立即解决的问题,日后在介绍。
1.sql Server实例服务进程无法正常启动
sqlservr.exe进程在启动的时候,需要读取一些注册表的键值以及读取一些文件,然后根据这些配置做相应的动作。
那需要读取的注册表键值是哪些,一般都有什么作用呢:
1)HLM\SPFTWARE\Microsoft\Microsoft sql Server\MSsql11.MSsqlSERVER\MSsqlServer下,
Audit Level:设置sql Server是否记录用户登录信息,也可以在Management Studio里的服务器属性设置。
Login Mode:设置sql Server是只接收Windows账户登录,还是同时接收WIndows和sql server账户。
2)启动参数HLM\SPFTWARE\Microsoft\Microsoft sql Server\MSsql11.MSsqlSERVER\MSsqlServer\Parameters下,
sql Server可以有很多启动参数,有些事提供分析问题用的。
下面介绍几个固定的参数:
-d 记录的是master数据库的数据文件物理位置
-l 记录的是master日志文件物理位置
-e 记录的是sql Server错误日志文件的位置
3)网络配置信息HLM\SPFTWARE\Microsoft\Microsoft sql Server\MSsql11.MSsqlSERVER\MSsqlServer\SuperSocketNetLib下,
sql Server会侦听哪几个网络协议,以及每个网络协议的配置,也是放在注册表里。
注册表读取sql Server启动信息这一步可能遇到的两个问题:
1)启动账号权限问题
如果启动账号没有权限读取注册表或调用sql Server的某些资源文件,那么sql Server这个进程有可能无法创建,这时可能errorlog文件都无法生成
需要解决这个问题,就是给启动账户赋予权限。
2)日志文件文件夹访问问题
sql Server要成功启动,必须要能正确的创建出日志文件errorlog,如果日志文件不能被创建成功,那么sql Server也就不能启动。
有时候日志的路径不正确,即-e参数指定的位置不正确;或者某个进程将errorlog文件锁定了。
2.系统数据库无法正常启动
sql Server服务开启后,首先就是要去启动系统数据库,如果系统数据库无法正常打开,sql Server也不会正常启动。
3.网络配置失败
要接收客户端的连接,sql Server必须配置好网络协议,一般是TCP/IP,Named Pipe,LPC,如果协议没有正确配置,客户端也不能正常连接到sql Server。
sql Server要启动的协议里,有
Shared Memory是专供本地连接通过LPC(Local Procedure Call)技术像sql Server做的连接。
Named Pipe是客户需要通过pipe的名字和sql Server交互,有时,需要确认errorlog里打出pipe名字就是客户端期望。
TCP/IPsql Server实例侦听的IP地址以及端口号。
4.用户数据无法正常启动
sql Server启动的最后一步是打开用户数据库,如果数据库文件损坏,或者上次sql Server关闭的时候数据库没有被正常关闭,开启用户数据库的时候可能会遇到麻烦。
5.群集环境下sql Server资源无法保持正常在线
群集环境下安装的sql Server,会由Windows群集服务来监控sql Server是否正常工作。如果群集服务连不上sql Server,就可能发生切换。管理需要监控和分析,sql Server资源为什么不能保持在线,上次发生切换的原因是什么。
提示:Errorlog日志记录的是sql Server在启动或运行过程中遇到的所有严重问题,所以当sql Server遇到异常问题时,首先检查日志文件。这个文件一般保存7个,按时间由近到远的顺序,且重启sql Server服务会生成新的errorlog文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐