当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临时切换到特殊的状态。

1,3608 以最小化配置启动

3608:在SQL Server启动时,除了master数据库之外,阻止自动启动和还原其他数据库。对于系统数据库,如果需要初始化tempdb,那么SQL Server会还原model数据库,用于创建tempdb数据库。对于用户数据库,在用户访问时启动和还原。

通常情况下,-T3608 和 -f 参数一起使用,表示以最小化配置启动SQL Server示例:

NET START MSSQLSERVER /f /T3608

2,902 修复在脚本升级模式下遇到的错误

902:在启动数据库服务时,绕过(bapass)数据库内部升级脚本的执行。当安装更新时,如果事件查看器抛出以下错误,可以使用902标志临时修复。

Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 226, state 6, severity 16. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.

警告:此跟踪标志用于在脚本升级模式期间对失败更新进行故障诊断,并且不支持在生产环境中连续运行它。 数据库升级脚本需要成功执行完整安装的累积更新和Service Pack。 不这样做可能会导致您的SQL Server实例出现意外问题。

当出现该错误时,在本地模式下,使用net 命令启动SQL Server服务:

net start MSSQLSERVER /T902

也可以在SQL Server配置管理器中,向启动(startup)参数中增加-T902,每次SQL Server服务启动时,都会自动以902标志启动:

四,sqlcmd工具

登陆到SQL Server实例的主机,打开DOS命令行窗口,使用sqlcmd工具连接SQL Server实例,

sqlcmd -A -E

以专用管理员链接登陆SQL Server实例,然后,执行响应的查询,排除故障。

五,添加权限

当管理员有主机(Host)的权限,而没有SQL Server实例的权限时,管理员可以通过DOS命令为自己添加权限。

首先,以单例模式开始SQL Server实例:

net stop mssqlserver
net start MSSQLSERVER /f /m

其次,登陆到SQL Server实例:

sqlcmd -A -E

然后,创建Login,授予权限,作为DBA,应该授予最高的系统管理的权限。

create login [domain\name]
from windows;
go alter server role sysadmin
add member [domain\name] ;
go

最后,以多用户模式重启SQL Server服务:

net stop mssqlserver
net start MSSQLSERVER

参考文档:

Use Trace Flag 902 to Recover from a Cumulative Update Failure

Moving System Databases

Using the SQL Server Service Startup Options

How to: Start an Instance of SQL Server (net Commands)

Trace Flags (Transact-SQL)

sqlcmd Utility

使用DOS工具修复数据库的更多相关文章

  1. Android开发之使用sqlite3工具操作数据库的两种方式

    使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/feng ...

  2. 【RDA】使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查

    [RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Ag ...

  3. SQL Server 修复数据库 相关 脚本 之 DBCC CHECKDB 用法 来自同事分享

    DBCC CHECKDB 用法详解, 手工修复数据库 1. 快速修复 DBCC CHECKDB ('数据库名',REPAIR_FAST) 2.重建索引并修复 DBCC CHECKDB ('数据库名', ...

  4. 使用exp&imp工具进行数据库备份及恢复

    使用exp&imp工具进行数据库备份及恢复1.exp/imp使用方法介绍exp/imp为一种数据库备份恢复工具,也可以作为不同数据库之间传递数据的工具,两个数据库所在的操作系统可以不同.exp ...

  5. DBCC CHECKDB用法 手工修复数据库

          快速修复 DBCC CHECKDB ('数据库名', REPAIR_FAST)      重建索引并修复 DBCC CHECKDB ('数据库名', REPAIR_REBUILD) 如果必 ...

  6. 使用pentaho工具将数据库数据导入导出为Excel

    写在前面:本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库. 补充:使用此工具并不需要任何一句代码并能快速便捷解决实际问题,此工 ...

  7. sql2005数据库置疑修复断电崩溃索引损坏 数据库索引错误修复/数据库表损坏/索引损坏/系统表混乱等问题修复

    sql2005数据库置疑修复断电崩溃索引损坏 数据库索引错误修复/数据库表损坏/索引损坏/系统表混乱等问题修复 客 户 名 称 济南某电子商务公司 数 据 类 型 SQL2005数据库 故 障 检 测 ...

  8. sql server mdf碎片级数据库修复,数据库碎片级提取

    sql server mdf碎片级数据库修复,数据库碎片级提取   大家都知道MDF数据库文件一般都比较大,在磁盘中往往被存放到不连续的逻辑簇中,久而久之就形成了文件碎片,当文件被误删除或者格式化后, ...

  9. 通过文件对照工具Merge数据库

    项目分成线下开发版.线上測试版.线上生产版,因此相应有三个数据库. 对于一些静态数据.经常须要同步.改动了线下的开发版本号,同一时候也须要更新线上的測试版和线上生产版数据库,有时候线上的一些数据库改动 ...

随机推荐

  1. Sql server bulk insert

    Bulk Insert Sql server 的bulk insert语句可以高效的导入大数据量的平面文件(txt,csv文件)到数据库的一张表中,其用法如下: bulk insert test fr ...

  2. Java计算大整数

    import java.util.*; import java.math.*; //BigInteger类型在这个包里 public class Gcc_test { public static vo ...

  3. python基础学习1

    一.python第一个程序 print("hello world") 二.变量的命名规则 1. 字母数字下划线组成 2. 不能以数字开头,不能含有特殊字符和空格 3. 不能以保留字 ...

  4. CentOS7 中安装 MySQL

    0. 说明 参考 centos7.2安装MySQL CentOS 7 下 Yum 安装 MySQL 5.7 两种方式安装 MySQL 安装 MySQL(yum) & 安装 MySQL(yum) ...

  5. Git & GitHub 的安装配置

    参考   教你免费搭建个人博客,Hexo&Github   安装Git 1. 注册 GitHub 注册.登录 https://github.com/ 2. 创建仓库 在 GitHub 的右上角 ...

  6. 【转】Java学习---内存泄露与溢出的区别

    Java内存泄露与溢出的区别 Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽): 而Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于 ...

  7. vuejs安装篇

    1.安装nodejs,自带npm环境. 地址:https://nodejs.org/en/download/,Node.js 历史版本下载地址:https://nodejs.org/dist/  可自 ...

  8. 2019 wannafly winter camp

    2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...

  9. 有关于分布式缓存Hazelcast

    如果在内网段中部署或者启动缓存服务.不能存在相同的组名称.如同使用dubbo一样,会导致无法连接到缓存节点

  10. [JLOI2013]删除物品

    嘟嘟嘟 只要每一次将优先级最高的上面的物品移走,就一定能保证是最优解. 所以我们只要想办法简化这个模拟移物品的过程,看完了题解后,发现可以这么想,我们可以把两个栈头碰头的挨在一起,然后设一个指针代表两 ...