还原大型SQL Server 2005数据库的问题

我有一个巨大的SQL Server 2005数据库(包括日志文件几乎400GB)的客户和一个表已被无意中删除。 我们正试图恢复到一个临时数据库,然后我们将复制丢失的表中的数据。

该磁盘有大约450GB的可用空间。 一旦我开始恢复,SQL为新的临时数据库分配了400GB空间,剩下50GB空间。 然后在23小时左右的时间内恢复运行,没有错误。 在接近结束的某一点(我不知道什么时候),它的错误沿着“错误未find”的错误,我认为这是与磁盘空间有关,因为磁盘只有8GB空闲,由于另一个文件正在创build同时。

数据库现在处于“恢复…”状态。

我想我可以删除这个数据库,然后重新开始,但是我的客户正在上下跳动,因为他们没有数据库,不能再等23个小时 – 即使如此,它会再次工作!

我的问题是 – 我能否将数据库从“正在恢复…”状态中取出,至less要查看是否有我需要的数据 – 因为我只需要其中一个表中的数据。 我已经试过了:

RESTORE DATABASE xxx WITH RECOVERY 

但是那个错误又回来了

  Msg 4333,Level 16,State 1,Line 1
由于日志未恢复,数据库无法恢复。
消息3013,级别16,状态1,行1
 RESTORE DATABASE正在终止exception。 

任何帮助非常感谢。

如果您需要使用备份文件中的数据还原表格,则可以尝试

  1. Devart Schema比较SQL Server的还原表结构本身

  2. Devart数据比较为SQL Server复制表行。

您不必从备份文件中恢复数据库 – 这些产品直接从备份文件中读取数据库。

或者,您也可以尝试Red Gate的SQL虚拟还原 ,将备份文件作为真正的数据库连接到SQL Server而无需恢复!

释放服务器上的额外磁盘空间,然后尝试:

 RESTORE DATABASE xxx FROM DISK = 'zzz' WITH RESTART 

这应该尝试从故障点开始恢复,如果有足够的磁盘空间,可能会导致完全恢复。

在还原数据库时,SQL Server将首先为数据文件创build和分配空间,其中包括向该文件的磁盘写入空页面以声明空间(文件被创build为“稀疏”,然后填充)。 一旦分配,空间然后以相同的方式分配给日志文件。 只有这两个操作完成后,服务器才开始将数据恢复到这些文件中。 对于非常大的数据库,这可能需要大量的时间 – 在Management Studio UI中,恢复将显示0%完成,直到此过程完成并恢复第一个数据。

这听起来像日志文件的空间分配失败,并恢复中止。 通常这会导致从磁盘中删除日志和数据文件,并且回收空间 – 值得在系统日志文件中查看是否可以确定还原为什么不会正常中止。