我有一个大约6Gb的备份。这是一个原始的“轻”备份(清除日志表),大约是14 is。
我尝试还原本地服务器上的备份。它失败了,出现了类似于:System.Data.SqlClient.Error: insufficient disk space的消息。它要求227,891,019,776字节,这是绝对疯狂的,几乎和我的整个硬盘一样大。
就像在其他网站上发现的那样,我尝试了RESTORE FILELISTONLY FROM DISK = 'backupfile.bak'。
数据文件(列Size)的大小为6,888,226,816,但日志文件为221,006,987,264。列BackupSizeInBytes返回6,259,736,576和0。
因此,如果我正确理解,恢复检查是否有足够的空间在继续之前恢复日志文件的“理论”大小,而忽略实际的日志文件大小?
我怎么能绕过它?备份有点困难,所以如果我不用返回生产服务器就能解决我的问题,那就太好了。
谢谢!
哦,BTW,我在Server 2008 R2快车上。
发布于 2013-02-06 17:01:57
注意,备份大小不包括空页,但是当您实际执行还原时,数据和日志文件将超过200 GB,因为它必须完全恢复源系统所拥有的内容(包括一个200+ GB日志文件,不管它有多满)。
如果您不想冒丢失数据的风险,则需要在源处纠正(例如,将日志文件缩小到合理的范围),进行另一次完全备份,并恢复该备份。我不太明白为什么很难获得备份--这是一个相当标准的操作,应该是由您花钱托管SQL Server的任何人提供的服务。
您还应该将源数据库修复为(a)处于正确的恢复模型或(b)更频繁地进行日志备份。您的日志文件是荒谬的,因为您正处于完全恢复状态,并且从不进行日志备份。如果需要时间点恢复,请开始备份日志。如果你不这么做,就换个简单的。如果正确配置日志文件,则日志文件应自行管理。如果没有,那么当它变成这样的时候,收缩应该是一次性的操作,然后你应该修复配置,所以下周你不会再这样做了.
发布于 2013-02-06 16:47:18
DBCC (3104)将绕过磁盘空间检查来恢复进程。
发布于 2013-02-06 17:00:00
没有任何事务日志备份,以便允许重复使用日志。因此,它必须得到所有的空日志,才能到达需要恢复的事务的各个部分。
因此,假设您已经准备好遭受一些(可能是相当多的)数据丢失,那么您可以在没有日志的情况下恢复它。这是不允许的。
这里有一个指向Server数据库恢复( http://www.sqlskills.com/blogs/paul/category/disaster-recovery/ )这一广泛主题的链接。你并不孤单:http://www.sqlskills.com/blogs/paul/search-engine-qa-23-my-transaction-log-is-full-now-what/。最后,对于在这种情况下可能有所帮助的几个命令,同样不要重新引用(您几乎肯定会遭受数据丢失) http://blog.sqlauthority.com/2010/04/26/sql-server-attach-mdf-file-without-ldf-file-in-database/。
https://dba.stackexchange.com/questions/34248
复制相似问题