Sql2000数据的附加时出错处理办法

80酷酷网    80kuku.com

  数据

转贴: 
  问题: 
  Sql2000数据的附加时出错: 
   
  错误  3624 
  location:recovery.c:1996 
  express:curr->lon_length>0 
  spdi:51 
  process  id:768 
  最后提示附加失败 
   
  服务器:  消息  5105,级别  16,状态  4,行  1 
  设备激活错误。物理文件名  'f:\database\fdzz1204_Data.ldf'  可能有误。 
   
  解决: 
  新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设未suspect 
   
  然后把数据库改成紧急模式: 
  sp_configure  'allow',  1 
  reconfigure  with  override 
  update  sysdatabases  set  status  =  32768  where  name  =  '数据库名' 
   
  把LDF文件改名,再执行 
  DBCC  REBUILD_LOG  ('数据库名',  'E:\fdzz\database\fdzz1204_Log.LDF'  ) 
   
  恢复数据库紧急模式 
  update  sysdatabases  set  status  =  0  where  name  =  '数据库名' 
  执行 
  restore  database  数据库名  WITH  RECOVERY 
  sp_configure  'allow',  0 
  reconfigure  with  override 
   
  然后用DBCC  CHECKDB  ('数据库名')看看有没有错误 
   
  如果上面还是不行,试试把数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库 
   
  1.新建一个同名的数据库(数据文件与原来的要一致) 
   
  2.再停掉sql  server(注意不要分离数据库) 
   
  3.用原数据库的数据文件覆盖掉这个新建的数据库 
   
  4.再重启sql  server 
   
  5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 
   
  6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用 
  数据库的脚本创建一个新的数据库,并将数据导进去就行了.  
   

use master
go
  sp_configure  'allow',  1 
  reconfigure  with  override 
go
  update  sysdatabases  set  status  =  32768  where  name  =  '置疑数据库名' 
    
go
--先删除以前的日志文件
  DBCC  REBUILD_LOG  ('置疑数据库名',  '置疑数据库日志文件存放位置'  ) 
 
go 
  update  sysdatabases  set  status  =  0  where  name  =  '置疑数据库名' 
  --执行 
  restore  database  project  WITH  RECOVERY
go
  sp_configure  'allow',  0 
  reconfigure  with  override 
go
  DBCC  CHECKDB  ('置疑数据库名')--看看有没有错误 
   
   或
  USE  MASTER 
  GO 
   
  SP_CONFIGURE  'ALLOW  UPDATES',1  RECONFIGURE  WITH  OVERRIDE 
  GO 
   
  UPDATE  SYSDATABASES  SET  STATUS  =32768  WHERE  NAME='置疑的数据库名' 
  Go 
   
  sp_dboption  '置疑的数据库名',  'single  user',  'true' 
  Go 
   
  DBCC  CHECKDB('置疑的数据库名')   
  Go 
   
  update  sysdatabases  set  status  =28  where  name='置疑的数据库名' 
  Go 
   
  sp_configure  'allow  updates',  0  reconfigure  with  override 
  Go   
   
  sp_dboption  '置疑的数据库名',  'single  user',  'false' 


 



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: