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 因忽然断电导致无法启动了 有大神支招吗 如图 感激不尽 店里都无法点单 急死等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)