新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>sqlserver数据库

sqlserver数据库

sql server mdf文件损坏了如何进行数据库修复

发布时间:2024/5/26 18:18:01  作者:Admin  阅读:159  

广告:

你已经将数据库分离出来了,但是日志文件太大,大到你没有多余的空间干别的;现在你将日志文件直接删除了,

咱开始新建一个同名数据库,修改数据库为紧急模式;把SQL server服务停掉;用原来的数据库mdf文件把这个同名的mdf文件覆盖掉

启动SQL server服务,执行代码块:单用户模式---->分析数据库--->撤销单用户----->重启SQL server服务------>完成

设为紧急模式

ALTER DATABASE yourdbname SET EMERGENCY
或者
update sysdatabases set status = -32768 where name = 'test'
--可能会提示:不允许对系统目录进行即席更新。

go

ALTER DATABASE yourdbname SET SINGLE_USER
或者
sp_dboption 'test', 'single user', 'true'

dbcc checkdb('test') 验证数据一致性
dbcc checkdb('test') with no_infomsgs --只显示错误信息
DBCC CHECKDB ('test', REPAIR_FAST) --未处理修复语句。当数据库处于紧急模式下时,不支持此级别的修复。
dbcc checkdb('test',REPAIR_REBUILD) --未处理修复语句。当数据库处于紧急模式下时,不支持此级别的修复。

DBCC CheckDB ('test', REPAIR_ALLOW_DATA_LOSS) --支持紧急模式下修复

ALTER DATABASE yourdbname SET MULTI_USER
或者
sp_dboption 'test','dbo use only','false' --设置数据库为正常状态
或者
sp_dboption 'test','single user','false'------撤销单用户模式


恢复挂起---变为紧急模式----关闭服务---删掉日志文件

---启动服务---重新生成日志文件
alter database [test] Rebuild Log on(name=test_log,filename='D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\test_log.LDF')
--重新生成LDF的日志文件
或者
dbcc rebuild_log('test','D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\test_log.LDF')

--重新生成LDF的日志文件

备注:
1 替换mdf文件后,sql server日志提示(打开企业管理器会跳出对话框提示,后台也会记录):
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。(Microsoft SQL Server,错误: 5173) --表示mdf文件已被替换

2 需要重新打开企业管理器(ssms)会提示恢复挂起

或者在单用户模式下,分离数据库,再附加数据库(附加时只选mdf文件,不选ldf文件),也可以解决。

广告:

相关文章
mdf文件
数据库修复
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技