zoukankan      html  css  js  c++  java
  • SQL Server 无法启动的 4 种原因

    SQL Server 无法启动的原因定位、首先要知道SQL Server 启动的过程。

    第一步:

              读取注册表,创建log文件、检测硬件、初始化系统配置。

    第二步:

              启动系统数据库。

    第三步:

              准备好网络连接。

    第四步:

              启动用户数据库。

    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    方法 1、 针对第一步

                运行--> regedit       打开注册表

                Windows Server 2012 +SQL Server 2012 情况下SQL Server 的键值对在

                HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server.........下

                

               1、当前用户没有读取注册表权限时SQL Server 在第一步时就失败了,所以不能启动。

               运行 --> eventwvr          (event viewer)可以查看日志文件。

               

                单击每一个信息可以查看它的全部内容。

                

               有了这个日志文件后有什么错都可以从日志文件中找到答案了,是不是太爽了。

               然---

               2、如果日志文件不能被成功的创建SQL server也不可以被启动。

    方法 2、针对第二步

              启动master 数据库是一人重要阶段,如果master数据库不能正常启动,数据库也就不能启动。

              1、在指定路径下找不到master的文件、路径不对。

              2、文件是找到了但是没有权限、

              3、文件损坏了、

              你有没有想过为什么我知道大概是这三个问题,我会告诉你这是经验。但是你遇到了怎么办,一个办法,就是看日志,来定位错误的原因。

              解决方法

                          1、 恢复master 原来的备份。

                          2、取物相应的权限。

              启动 Model 系统数据库出错时原因也与master 差不多吧。

              解决方法                     

                          1、 恢复master 原来的备份。

                          2、取物相应的权限。

                          3、在启动数据库时路过恢复Model这一个环节

                               第一步、用参数启动SQL Server 

                                          net start MSSQLSERVER  /f /m /T3608

                               第二步、恢复Model 数据库

                                          restore database Model from disk = 'E:Model.bak';

             启动 tempdb 出错,服务器上可能没有那么多空间放tempdb

             解决方法

                        第一步:用参数启动

                                   net start MSSQLSERVER /f /m /T3608

                        第二步:

                                   alter database tempdb modify file(name =tempdev,size=100MB);

                                   alter database tempdb modify file(name = templog,size=200MB);

    方法 3、针对第三步

             网络连接出错,一般看来是端口被别的程序用了。

             解决方法:

                         SQL server 用的是1433端口、所以我们只要找到是哪个不脸的程序用了这个端口再把它kill了就可以了。

                         运行--> netstat

                          

     注意:

            SQL Server 在启动完 master 后 tempdb 与准备网张连接是同时进行的。

    方法 4、针对第四步

               数据库文件有三种  1主数据库文件 mdf、 2次要文件 ndf 、 3日志文件 ldf。

               不管是哪一个文件坏了数据库都不会成常启动。

               1、 完整还原数据库  restore database........

               2、 如果只是个别ndf 坏了、可以用文件还原

                    第一步:alter database Studio modify file(name = Studio2,offline);----把坏了的文件设为离线。

                    第二步:alter database Studio set online;把数据库设为在线。

                    第三步:还原出坏的文件组。

              3、日志文件损坏了就有点不好了,慢慢听

                   在simple 恢复模式下如果上次数据库是正常关闭(所有提交的事务都写入硬盘,所有回滚的事务都以撤销)的就算没有ldf文件

                   数据库还是可以启动的。

                  如果ldf 文件损坏最好的恢复办法就是恢复数据库备份、因为有时数据库可以处于一个不一致的状态,如事务提交了,但是数据只在

                  日志文件里,如果用户可以接受这样的损失,可以选择dbcc checkdb 的方法修复数据库

                  首先:

                        1、 alter database Studio set Emerggency;

                        2、 alter database Studio set single_user;

                        3、 dbcc checkdb(Studio,repair_allow_data_loss);

          

  • 相关阅读:
    javaweb基础(6)_servlet配置参数
    javaweb基础(5)_servlet原理
    读书笔记:java特种兵(上)
    基础算法(四):海量数据的处理方法
    基础算法(三)动态规划和贪心算法
    基础算法(二):堆排序,快速排序
    基本算法(一):插入排序,归并排序
    JVM基础和调优(六)
    JVM基础和调优(五)
    JVM基础和调优(四)
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4000497.html
Copyright © 2011-2022 走看看