如何修复SQL数据库置疑 修复SQL数据库置疑方法

如何修复SQL数据库置疑 修复SQL数据库置疑方法,第1张

1、在实际的 *** 作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。

2、我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。

3、停掉数据库服务器。

4、将刚才生成的数据库的日志文件test_logldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_datamdf。

5、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何 *** 作。

6、设置数据库允许直接 *** 作系统表。此 *** 作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

以下是参考资料,若无法解决,把数据发给我,我帮你看一下一、SQL-Server附加数据库时失败。1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。2、异常分析:关于823错误的 SQL-SERVER 中的帮助:错误823严重级别 24消息正文在文件 "%4!" 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。解释Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。3、解决办法:在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Datamdf和Test_logLDF覆盖刚才新建数据库目录下的Datamdf和Test_logLDF,同时删除Test_logLDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:--第一、exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE / 打开修改系统表的开关 /--第二、update sysdatabases set status=32768 where name='数据库名' / 设置数据库状态 /--第三、DBCC REBUILD_LOG ('数据库名','E:\database\1204_LogLDF') / 重建LDF文件 /--第四、update sysdatabases set status=0 where name='数据库名' / 重置数据库状态 /--第五、restore database 数据库名 WITH RECOVERY / 恢复数据库 /--第六、exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE / 关闭打开修改系统表的开关 /按照此方法 *** 作,应该能修复数据库正常访问了。

最简单方便有用的方法:

把1、<quote把数据库文件和日志文件(也就是MDF,LDF拷贝了)

2、然后重装 *** 作系统和sql server,然后附加数据库

ps:保险起见,把sql 的data目录下的东西全部拷贝/quote>

如果不想浪费时间就说清楚一点。

具体是什么情况:数据库附加不上?数据库打不开?数据库不能登录?数据库服务不能启动?说的越详细越好。或者你直接去csdn论团问。

1停止SQL Server的服务,备份SQL Server安装目录下的\data子目录

下故障数据库的两个文件,一个数据文件hbposv6_branch_datamdf,

一个hbposv6_branch_logldf(也有可能非此命名),同时查看磁盘

空间是否有足够的空间;

2启动SQL Server服务(如已停止),创建一个新的数据库,命名为

原来数据库的名字。

3停止SQL Server

4把老数据库的MDF文件(hbposv6_branch_datamdf)替换

新数据库的相应的MDF文件,

并把LDF文件(hbposv6_branch_logldg)删除。

5重新启动SQL Server服务,然后运行如下命令:

Use Master

go

sp_configure 'allow updates', 1

reconfigure with override

go

begin tran

update sysdatabases set status = 32768 where name = 'hbposv6_branch'

--Verify one row is updated before committing

commit tran

go

6停止SQL然后重新启动SQL Server服务,然后运行如下命令

(更换日志文件路径地址):

use master

go

DBCC TRACEON(3604)

DBCC REBUILD_LOG

('hbposv6_branch',

'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_logldf')

--在这里,请输入你的数据库的路径

go

7停止SQL然后重新启动SQL Server服务,然后运行:

use master

go

update sysdatabases set status = 8 where name = 'hbposv6_branch'

go

sp_configure 'allow updates', 0

reconfigure with override

go

8运行dbcc checkdb(db_name) 检查数据库的完整性

9修复数库

--请在查询分析器中执行下列语句执行前断开其它

所有数据库连接,最好是断开网线

--如果不是该数据库名,请将数据库

--hbposv6_branch

--改为要修复的数据库

USE master

Go

--单用户模式

EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'

go

--数据库检查

DBCC CHECKDB ('hbposv6_branch')

Go

--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复

--数据库修复

DBCC CHECKDB ('hbposv6_branch','repair_rebuild')

Go

--再次数据库检查,如果返回结果中没有了红色的提示文字,

说明修复成功;

DBCC CHECKDB ('hbposv6_branch')

Go

--否则意味着还需要更高级别的修复;尝试将上面修复语句的

'repair_rebuild'换为'repair_allow_data_loss'再试,

之后再次检查数据库。

--如果还有错误未修复,请把这些信息以文字的方式发给我们

--退出前请一定要执行以下语句返回到多用户模式

EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'

go

注:都要把 dbname 替换成真实的数据库名字。

以上就是关于如何修复SQL数据库置疑 修复SQL数据库置疑方法全部的内容,包括:如何修复SQL数据库置疑 修复SQL数据库置疑方法、SQL2000中的数据库文件损坏,请教高手有什么办法、SQL server 因忽然断电导致无法启动了 有大神支招吗 如图 感激不尽 店里都无法点单 急死等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10191600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存