有关SQL(2012)突然无法连接服务器的问题解答

Sql Server无法启动的4中原因:(先得分析出问题所在)

原文地址:http://www.cnblogs.com/JiangLe/p/4000497.html

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

 

第一步:

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

第二步:

          启动系统数据库。

第三步:

          准备好网络连接。

第四步:

          启动用户数据库。

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

方法 1、 针对第一步

            运行--> regedit       打开注册表

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

            HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft 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);

 

针对这种问题的详细解决办法:(即:sqlserver中master表损坏的修复方法

原文地址http://www.cnblogs.com/popo0027/archive/2012/08/08/2628044.html

本地电脑上安装的MS SQL Server 2008 R2可能因为硬盘原因,导致SQL Server服务无法启动,在事件查看器中看到若干错误和信息,其中有两条提示可能master损坏:
1、错误:传递给数据库 'master' 中的日志扫描操作的日志扫描号 (184:416:1) 无效。此错误可能指示数据损坏,或者日志文件(.ldf)与数据文件(.mdf)不匹配。如果此错误是在复制期间出现的,请重新创建发布。否则,如果该问题导致启动期间出错,请从备份还原。
2、信息:无法恢复 master 数据库。SQL Server 无法运行。请利用完整备份还原 master 数据库,修复它,或者重新生成它。有关如何重新生成 master 数据库的详细信息,请参阅 SQL Server 联机丛书。

重新安装SQL Server问题不难解决,但太耗时。google到一个快捷的恢复方法,分享如下:

1、复制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。

X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates

X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
注:以上“X:\Program Files\Microsoft SQL Server”为SQL Server的安装目录。以下的“C:\Program Files\Microsoft SQL Server”为系统盘下的目录

2、定位并执行安装命令

首先找到安装命令:
C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\SQLServer2012\setup.exe

注:如果是sql2008则是 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release\setup.exe

如果只是Windows身份验证模式,只需要如下语法即可:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts> 
如果是复合身份验证模式,则需要使用/SAPWD参数提供sa的密码:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance name> /SQLSYSADMINACCOUNTS=<accounts> /SAPWD=<sa password>

我安装时设置的是复合认证模式,SQL Server系统管理员帐号是administrators组,sa密码是123456。并且就一个默认实例:MSSQLSERVER。
所以在命令行执行如下命令:
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrators /SAPWD=123456

执行完毕后没有任何提示信息(不管成功与否),但是可以马上在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt中查看安装日志。

最后,在Sql Server Configuration Manager中启动SQL Server服务成功。

转载于:https://www.cnblogs.com/DeepThinker/p/4805244.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值