数据库【数据库名】(以下操作命令不带【】符号)状态为可疑,导致原因为服务器意外停电,第一次遇到这种情况,记下解决方案:
步骤1和步骤2不是必须,如遇到步骤3无法运行或者卡进程很久没有反应,则返回步骤1和步骤2,如没问题则跳过从步骤3开始。
1,将SQL数据库停止,不能停止就强制结束进程
2,将SQL数据库服务由网络服务修改为本地服务(这个非常重要)(不做这一步,很多时候后面的一般都无法进行下去,往往各种无限时长的处理或卡死或失败。因为有可能会有意想不到的各种连接或同步程序秒连接,本人就是卡在这里:消息 5070 在其他用户正在使用数据库“”时无法更改数据库状态)
以下为正常步骤:
3,使数据库变为紧急模式
--------------------------------
USE master;GO
--------------------------------
ALTER DATABASE 【数据库名】 SET EMERGENCY
--------------------------------
4,使数据库变为单用户模式,且回滚之前未完成的非法事务
ALTER DATABASE 【数据库名】SET SINGLE_USERWITH ROLLBACK IMMEDIATE
GO
5,修正数据库日志重新生成,此命令检查表分配,结构,逻辑完整性和所有数据库中的对象不正确。
DBCC CheckDB (【数据库名】 , REPAIR_ALLOW_DATA_LOSS)
6,使数据库变回为多用户模式
ALTER DATABASE 【数据库名】 SET MULTI_USER
7,重启SQL服务,重新连接,一般就恢复正常了
开始->运行->输入cmd->打开DOS命令窗口,输入以下命令重启数据库服务(此处可以直接到服务列表里,重新启动数据库服务,为了方便我直接用DOS命令了) Net stop mssqlserver --停止服务Net start mssqlserver --启动服务
————————————————
|