查看: 676|回复: 0
打印 上一主题 下一主题

[软件应用] 记一则SQL 数据库状态(可疑)(紧急)解决方案

[复制链接]

2569

主题

3687

帖子

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
101592
跳转到指定楼层
楼主
发表于 2023-6-19 13:21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据库【数据库名】(以下操作命令不带【】符号)状态为可疑,导致原因为服务器意外停电,第一次遇到这种情况,记下解决方案:

步骤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 --启动服务
————————————————


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表