none
SQL2008 数据库文件无法附加上去,已经使用过各种办法,但是还是不行,请大侠们帮助 RRS feed

  • 问题

  • 由于之前的服务器出现硬件故障, 导致服务器突然停止运行,数据库文件不知道是否有损坏。

    从损坏的服务器上面的硬盘中拷贝回mdf文件 和ldf文件    在新服务器上面附加的时候附加不上。

    提示

    SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:4601088,但实际为 0:0)

    ---------------------------------------------------------------------------------------

    然后使用了网上流传的各种办法进行修复都无法成功。

    其中包括新建同名数据库 用此mdf文件和ldf文件替换原来的文件  设置为紧急模式-设置为单用户模式,进行checkdb 修复 但是还是提示上面的

    alter database XXXX set emergency
    DBCC CHECKDB (XXXX, repair_allow_data_loss)

    提示

    消息 5028,级别 16,状态 4,第 2 行
    系统无法激活足够的数据库来重建日志。

    ---------------------------------------------------------------------------------------

    无法访问紧急模式下的数据库

    提示 由于数据移动,无法继续以 NOLOCK 方式扫描。

    还有什么办法???


    2012年3月5日 9:31

答案

全部回复

  • 或許你可以試試看這篇討論上的做法。

    sp_attach_single_file_db @dbname  ='Test',
    @physname = 'C:\Temp\Maloprodaja.mdf'

    http://social.msdn.microsoft.com/forums/en-US/sqlexpress/thread/0dae1956-54b7-43b6-9b82-8bbf5d08e57c/


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年3月5日 9:55
  • 如果日志文件是好的,以前有过完整备份(数据库备份),备份尾日志。

    如果数据文件是好的,重建日志。

    否则,DBA检讨为啥没有灾难恢复计划,或者IT部门检讨为什么没有招聘DBA :)


    想不想时已是想,不如不想都不想。

    2012年3月5日 10:05
    版主
  • 建议购买微软原厂的售后服务吧,这个是救命的。


    family as water

    2012年3月5日 14:30
  • 还是不行

    提示:

    文件激活失败。物理文件名称'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\XXXX_log.ldf'可能不正确。
    无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误。

    2012年3月11日 7:57
  • 不是服务器硬盘出现故障   是其他部件出现问题

    具体原因是当时服务器raid卡上面的某个电容出现问题,造成不稳定的情况,温度高点的话就会导致系统蓝屏,宕机了。

    因为当时服务器是在异地的,就让那边的工作人员反复重启了多次。

    所以现在不确定是否是 服务器在刚重启进入系统之后,立刻又宕机的情况下造成数据库文件损坏

    2012年3月11日 8:02
  • 服务器raid卡上面的某个电容出现问题,也是磁盘子系统的问题。应该就是第一次宕机就出问题了。重建日志成功的可能性大一些。

    想不想时已是想,不如不想都不想。

    2012年3月11日 9:48
    版主
  • 要是非得每个页去分析内容,工作量就太大了。

    想不想时已是想,不如不想都不想。

    2012年3月11日 9:49
    版主
  • Another reason to keep good full and log backups.
    2012年3月11日 16:39
  • 是的 使用第三方的sql救援工具 可以从单个mdf文件中分析出里面页的数据。

    幸好这些数据是历史备份数据,不然的话就只有购买这些第三方救援软件进行恢复了。

    2012年3月13日 2:16