测试环境:Windows7+SQL SERVER2008 R2
第二种测试:停止服务,删除log文件,启动服务,系统会自动添加日志文件。

解决方案 »

  1.   

    第一种操作:我分离数据库,然后删除日志文件,在附加时候虽然找不到日志文件,但是系统会自动生成一个新的,主文件MDF依然可以使用。
    --> 附加数据库时会自动生成新的日志文件.第二种操作:我直接停止SQL SERVER服务,然后删了日志文件,这时候在打开服务,附加的时候就弹错,附加不上
    --> SQL实例启动时,发现数据库缺文件,故SQL实例启动后数据库处于RECOVERY_PENDING状态.
         解决方法: 将数据库设为offline --> 卸离数据库 --> 重新附加数据库,会自动生成新的日志文件. --> 附加成功,数据库为online状态.
      

  2.   

    第二种方式,我测试了,停止服务,删除log文件后,再启动服务会自动,系统会自动添加log文件,不会将数据库置为你说的那种状态,老版本的是存在这样的问题,新版本的已经没有这个问题了。
      

  3.   

    你的数据库LOG文件还有Open的Transcation, 所以无法直接生成新的日志,这样会导致数据不一致。
      

  4.   

    是我1楼描述错误了 我重新给你说下,比方数据库文件A.mdf和a.log,我把a.log复制到一边,然后  我对数据库进行一个更新动作,这时候是更后的文件A.mdf(更新后),A.log(更新后),这时候我停止服务,把A.log(更新后)删掉,然后把一开始复制的a.log改成A.log(更新后)名字(当然这个名字其实也叫A.log),这时候在启动服务,就会发现数据库后边带有一个括号,括号里写的可疑,这时候这个MDF文件就好像坏掉了一样,无法访问,直接复制 然后附加也不行了
      

  5.   

    你说的应该是数据库状态变为质疑状态吧,你说的这个问题我曾在2000的数据库上遇到过,我估计是因为数据库在服务启动的时候,检测到log文件尾部跟停止服务的时候状态可能不一致。提示质疑。也是一种自我保护功能吧。新版本的好像还没遇到过这种问题