当SQL Server 实例出现异常,无法远程链接时,数据库管理员需要登陆到SQL Server实例机器上,通过命令行工具,修复异常。
一,使用net命令行启动数据库
通过net start 命令启动SQL Server服务,服务名是mssqlserver,命令如下:
net start MSSQLSERVER
可以在启动时,添加启动参数(startup option),使用“/”代替“-”:
net start MSSQLSERVER /f /m
二,SQL Server服务的启动参数
SQL Server的启动参数:
- -f :Starts an instance of SQL Server with minimal configuration. This is useful if the setting of a configuration value (for example, over-committing memory) has prevented the server from starting.
参数-f :指定以最小化配置启动SQL Server服务,
- -T trace#:Indicates that an instance of SQL Server should be started with a specified trace flag (trace#) in effect. Trace flags are used to start the server with nonstandard behavior.
参数 -T:指定SQL Server使用特定的追踪标志(Trace Flag)启动,追踪标志(Trace Flag)能够使SQL Server临时处于特殊的行为,便于DBA进行故障排除。
三,追踪标志
追踪标志(Trace Flag)用于把SQL Server临时切换到特殊的状态,
3608:在SQL Server启动时,除了master数据库之外,阻止自动启动和还原其他数据库。对于系统数据库,如果需要初始化tempdb,那么SQL Server会还原model数据库,用于创建tempdb数据库。对于用户数据库,在用户访问时启动和还原。
通常情况下,-T3608 和 -f 参数一起使用,表示以最小化配置启动SQL Server示例:
NET START MSSQLSERVER /f /T3608
四,sqlcmd工具
登陆到SQL Server实例的主机,打开DOS命令行窗口,使用sqlcmd工具连接SQL Server实例,
sqlcmd -A -E
以专用管理员链接登陆SQL Server实例,然后,执行响应的查询,排除故障。
参考文档:
Using the SQL Server Service Startup Options
How to: Start an Instance of SQL Server (net Commands)