如何解决SQLSERVER数据库出现可疑问题
答案:2 悬赏:10
解决时间 2021-11-10 22:22
- 提问者网友:伪情浪人
- 2021-11-10 11:02
如何解决SQLSERVER数据库出现可疑问题
最佳答案
- 二级知识专家网友:木子香沫兮
- 2021-11-10 12:07
重启服务
--------------------------------------------------
日志文件丢了,建一个日志文件
--------------------------------------------------
SQL SERVER 2005 数据库状态为“可疑”的解决方法
--MyDB为修复的数据名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO
-------------------------------------------------
当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法,打开数据库里的Sql 查询编辑器窗口,运行以下的命令。
1、修改数据库为紧急模式
ALTER DATABASE Zhangxing SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE Zhangxing SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (Zhangxing, REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式
ALTER DATABASE Zhangxing SET MULTI_USER
也可以这样做:
1:重新建立一个,一样的数据库,路径名称,文件都一样。
2:关掉SQL Server服务;
3:把源文件COPY过来;
4:开启SQL Server服务,这样问题同样就解决了。
--------------------------------------------------
日志文件丢了,建一个日志文件
--------------------------------------------------
SQL SERVER 2005 数据库状态为“可疑”的解决方法
--MyDB为修复的数据名
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO
-------------------------------------------------
当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法,打开数据库里的Sql 查询编辑器窗口,运行以下的命令。
1、修改数据库为紧急模式
ALTER DATABASE Zhangxing SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE Zhangxing SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (Zhangxing, REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式
ALTER DATABASE Zhangxing SET MULTI_USER
也可以这样做:
1:重新建立一个,一样的数据库,路径名称,文件都一样。
2:关掉SQL Server服务;
3:把源文件COPY过来;
4:开启SQL Server服务,这样问题同样就解决了。
全部回答
- 1楼网友:爱情是怎么炼成的
- 2021-11-10 12:43
您好,是这样的:
1.首先确认已经备份了.mdf和.ldf文件。
2. 在sql server中新建一个同名的数据库,然后停止sql server服务。
3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动sql server服务,这是应该会看到这个数据库处于置疑(suspect)状态。
5. 在sql查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure "allow updates",1reconfigurewithoverridego。
6. 将这个数据库置为紧急模式:update sysdatabases set status = 32768 where name="db_name"go。
7. 使用dbcc checkdb命令检查数据库中的错误:dbcc checkdb("db_name")go。
8. 如果dbcc checkdb命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption "db_name","single
user","true"dbcccheckdb("db_name",repair_allow_data_loss)go
如果在执行dbcccheckdb("db_name",repair_allow_data_loss)命令时提示说数据库未处于单用户模式状态的话,则重新启动sqlserver服务,然后继续尝试。
9. 如果dbcccheckdb("db_name",repair_allow_data_loss)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
重新执行dbcc checkdb("db_name")命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus "db_name"
清除数据库的单用户模式状态:sp_dboption "db_name","single user","false"
重新启动sql server服务,如果一切正常的话,则数据库已经成功恢复。
10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。如果您只有mdf文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1. 在sql server中新建一个同名的数据库,然后停止sql server服务。
2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
3. 启动sql server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
4. 停止并重新启动sql server服务。
5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
dbcc rebuild_log("cas_db", "d:\cas_db\cas_db_log.ldf")
6. 重新将该数据库置为单用户模式。
7. 再次尝试使用dbcc checktable或dbcc checkdb命令检查并修复数据库中。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯