电脑死机停电导致的数据库质疑怎么修复

分享到:

2024-01-07 10:37:50

---------------以下为SQL2008数据库置疑(死机、停电等)修复方法--------------------
 
紧急模式:
alter database yta5sypro_01 set emergency
单用户模式:
alter database yta5sypro_01 set single_user
数据库检查:
dbcc checkdb (yta5sypro_01)
数据库高级修复:(日志文件如果损坏会自动生成)
dbcc checkdb (yta5sypro_01, repair_allow_data_loss)
取消紧急、恢复多用户:
alter database yta5sypro_01 set multi_user
 
 
---------------以下为SQL2000数据库置疑(死机、停电等)修复方法--------------------
 
注意:如果无置疑,直接跳到“以下为数据库普通检查修复语句”章节(本文最下面),一行一行执行。
 
步骤1:创建一个新的数据库,命名为原来数据库的名字
 
步骤2:停止SQL Server
 
步骤3:把老数据库的MDF文件替换新数据库的相应的MDF文件,并把LDF文件删除
 
步骤4:重新启动SQL Server服务,然后运行如下命令:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where name = 'yta5sypro_01'
commit tran
--执行下一步前请验证是否提示:配置选项 'allow updates' 已从 0 更改为 1
 
步骤5:停止SQL然后重新启动SQL Server服务,然后运行如下命令:
DBCC TRACEON(3604)
DBCC REBUILD_LOG('yta5sypro_01','D:\赢通软件账套数据\yta5sypro_01_log.ldf')
Go
注意:这里路径要写成你的数据库存放的路径。
 
步骤6:停止SQL然后重新启动SQL Server服务,然后运行:
use master
update sysdatabases set status = 8 where name = 'yta5sypro_01'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go
 
步骤7:运行下面语句检查修复数据库,yta5sypro_01都要替换成真实数据库名字
 
 
---------------以下为数据库(SQL2000、2008通用)普通检查修复语句--------------------
赢通A5商业(yta5sypro_01),其它数据库自己更改名称
USE yta5sypro_01 
--单用户模式 
EXEC sp_dboption 'yta5sypro_01', 'single user', 'TRUE' 
--数据库检查 
DBCC CHECKDB ('yta5sypro_01') 
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复 
--数据库普通修复 
DBCC CHECKDB ('yta5sypro_01',repair_rebuild) 
--一般的修复多次仍然还有红色的提示文字,你需要采用高级修复
--数据库高级修复(修复多次仍有红色文字,交替执行普通修复与高级修复)
dbcc checkdb('yta5sypro_01',repair_allow_data_loss)
--退出前请一定要执行以下语句返回到多用户模式 
EXEC sp_dboption 'yta5sypro_01', 'single user','FALSE' 
声明:此篇为用友服务中心文章,转载请标明出处链接:
  • 相关文章
  • 热门下载
  • 数据修复
  • 热门标签
合作伙伴