码迷,mamicode.com
首页 > 其他好文 > 详细

单用户模式连接以及故障排除

时间:2015-01-07 15:14:18      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:单用户

场景:这是一个命名实例,需要进入单用户模式进行维护。


一、启动实例

  我们将直接使用命令行窗口启动。参考文章:《忘记管理员密码的补救办法》 http://jimshu.blog.51cto.com/3171847/1563207


1. 找到 sqlservr.exe 的路径

  在Windows的“服务”中找到这个命名实例,查出“可执行文件的路径”。例如:

"C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Binn\sqlservr.exe" -sSQL2008R2

技术分享


2. 启动实例

  打开一个命令行窗口。将“可执行文件的路径”复制到这个命令行窗口,然后添加“ -m "sqlcmd" ” 参数,指定单用户模式启动而且只有 sqlcmd 可以连接到这个实例。

C:\Users\Administrator>  "C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008 R2\MSSQL\Binn\sqlservr.exe" -sSQL2008R2 -m "sqlcmd"

  启动后,这个窗口将显示一大堆的启动信息。


注意:为了保证启动帐户有足够的权限,建议改为 Local System 启动。请在 SQL Server 配置管理器中修改。

技术分享



二、确认端口配置

1. 启用“全部侦听”

  在前面的步骤中,在命令行窗口中注意寻找端口信息。例如:

2015-01-07 10:42:49.09 服务器         Server is listening on [ ‘any‘ <ipv6> 49157].

2015-01-07 10:42:49.09 服务器         Server is listening on [ ‘any‘ <ipv4> 49157].

2015-01-07 10:42:49.10 服务器         Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\SQL2008R2 ].

2015-01-07 10:42:49.11 服务器         Server local connection provider is ready to accept connection on [ \\.\pipe\MSSQL$SQL2008R2\sql\query ].

2015-01-07 10:42:49.11 服务器         Server is listening on [ ::1 <ipv6> 49163].

2015-01-07 10:42:49.11 服务器         Server is listening on [ 127.0.0.1 <ipv4> 49163].

2015-01-07 10:42:49.12 服务器         Dedicated admin connection support was established for listening locally on port 49163.


  注意:由于每个实例的配置不尽相同,所以不一定都会看到本例完全一样的信息。“Server is listening on [ ‘any‘ <ipv6> 49157]”表示全部侦听,而且侦听的是一个动态端口。

技术分享


  一旦“全部侦听”启用了,那么就只有最底下一栏“IPALL”生效,其它的IP单独的配置都无效。

技术分享


2. 不启用“全部侦听”

  下面的信息则显示只侦听127.0.0.1端口。

2015-01-07 11:03:53.76 服务器         Server is listening on [ 127.0.0.1 <ipv4> 49163].

2015-01-07 11:03:53.77 服务器         Dedicated admin connection support was established for listening locally on port 49163.


  在配置界面,仅针对127.0.0.1这个IP,将“活动”和“已启用”都设为“是”。

技术分享


3. 故障排除

  如果本机曾经修改过IP地址,导致在不启用“全部侦听”时会将错误的旧IP地址绑定到该实例,会报错并导致启动失败。请参考 《修改 SQL Server 服务器的 IP 地址》 http://jimshu.blog.51cto.com/3171847/1120377 



三、客户端连接

  由于前面的步骤仅允许使用 SQLCMD 方式连接,所以需要新打开一个命令行窗口。使用“-S”参数,后面加上IP地址以及端口号(两者之间用逗号隔开)。例如:

C:\Users\Administrator> sqlcmd -S 127.0.0.1,49163

1>


  连接成功后,即可参考《忘记管理员密码的补救办法》的说明进行一些维护操作。

  如果客户端连接还有其它问题,请参考《SQL Server 客户端连接的问题》 http://jimshu.blog.51cto.com/3171847/1395199



四、停止实例

  在启动实例的那个命令行窗口,使用 Ctrl-C 或者 Ctrl-Break 组合键,停止实例。

Do you wish to shutdown SQL Server (Y/N)? y

2015-01-07 11:36:37.76 spid7s      SQL Server shutdown due to Ctrl-C or Ctrl-Break signal. This is an informational message only. No user action is required.

2015-01-07 11:36:37.76 spid7s      SQL Trace was stopped due to server shutdown. Trace ID = ‘1‘. This is an informational message only; no user action is required.


  甚至,可以直接关闭这个命令行窗口。


本文出自 “我们一起追过的MSSQL” 博客,请务必保留此出处http://jimshu.blog.51cto.com/3171847/1600070

单用户模式连接以及故障排除

标签:单用户

原文地址:http://jimshu.blog.51cto.com/3171847/1600070

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!