none
求高手指教,以下问题是数据库坏了吗? RRS feed

  • 问题

  • 情况是,我能用语句查询得到东西,但备份会出现如下错误,但我确定我的空间现时应该是足的,请教各位高手如何解决?谢谢!

    2012年11月28日 8:39

答案

  • 修复一下数据库,再备份数据库看一下行不

    USE master
    
    DECLARE @databasename VARCHAR(255)
    
    SET @databasename = '要恢复的数据库名称'
    
    EXEC sp_dboption @databasename, N'single', N'true'
      --将目标数据库置为单用户状态
    
    --先运行下面这句
    DBCC checkdb(@databasename,REPAIR_REBUILD)
    --如果上面那句修复不成功运行这句
    DBCC checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
    
    EXEC sp_dboption @databasename, N'single', N'false' --将目标数据库置为多用户状态
    
    --注:这个方法是通过.mdf文件恢复数据库,即使log文件丢失也可以进行修复。


    给我写信: QQ我:点击这里给我发消息


    • 已编辑 Steven.桦仔 2012年11月28日 12:38
    • 已标记为答案 hzpemu 2012年11月29日 1:39
    2012年11月28日 12:38

全部回复

  • Looks like db log damaged, check sql server log if has any related error.
    2012年11月28日 8:50
  • 去看看那个数据库的日志还在不在? 不在的话你可能要修复数据库,重建日志,假如你没有备份的话。


    Please click the Mark as Answer button if a post solves your problem!

    2012年11月28日 9:14
  • 修复一下数据库,再备份数据库看一下行不

    USE master
    
    DECLARE @databasename VARCHAR(255)
    
    SET @databasename = '要恢复的数据库名称'
    
    EXEC sp_dboption @databasename, N'single', N'true'
      --将目标数据库置为单用户状态
    
    --先运行下面这句
    DBCC checkdb(@databasename,REPAIR_REBUILD)
    --如果上面那句修复不成功运行这句
    DBCC checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
    
    EXEC sp_dboption @databasename, N'single', N'false' --将目标数据库置为多用户状态
    
    --注:这个方法是通过.mdf文件恢复数据库,即使log文件丢失也可以进行修复。


    给我写信: QQ我:点击这里给我发消息


    • 已编辑 Steven.桦仔 2012年11月28日 12:38
    • 已标记为答案 hzpemu 2012年11月29日 1:39
    2012年11月28日 12:38
  • 好东西啊,桦仔,先收藏了~~

    Learning SQL.

    2012年11月29日 2:56
  • Those dbcc may cause data lose, should have good db backup in place.
    2012年11月29日 3:26
  • 有备份当然是最好的

    给我写信: QQ我:点击这里给我发消息

    2012年11月29日 5:06