Pha*_*mer 47 sql-server transaction-log restore
给定一个SQL Server 2008 .bak文件,有没有办法只从.bak文件中恢复数据文件,而没有事务日志?
我问的原因是这个数据库的事务日志文件大小很大 - 超过我现有的磁盘空间.
我对事务日志没兴趣,对任何未完成的事务没兴趣.通常,我只是将日志缩小为零,一旦我恢复了数据库.但是,当我没有足够的磁盘空间来创建日志时,这没有任何帮助.
我需要的是告诉SQL Server只恢复.bak文件中的数据而不是事务日志的方法.有没有办法做到这一点?
请注意,我无法控制.bak文件的生成- 它来自外部源.在生成.bak文件之前缩小事务日志不是一种选择.
小智 9
事务日志是备份的组成部分.您不能告诉SQL Server忽略事务日志,因为没有办法让我们说同时恢复和收缩事务日志文件.但是,您可以查看DBA帖子来破解该过程,尽管根本不建议这样做
或者,您可以尝试使用某些第三方工具进行还原,尤其是可以节省大量空间和时间的虚拟还原过程.查看ApexSQL Restore,RedGate Virtual Restore,Idera虚拟数据库.
免责声明:我为ApexSQL工作,担任支持工程师
不,事务日志是必需的.
选项1:
一个选项可能是将其恢复到您有足够空间的机器上.然后在还原的副本上将日志记录更改为批量记录或简单,缩小日志,对此新副本执行另一个备份操作,然后使用该备份以使用现在小得多的事务日志还原到目标计算机.
选项2:
或者,也许在外部源的接触可以将它发送给你之前收缩事务日志(如果日志很大,由于很多大的交易,这可能无法正常工作).
有关收缩日志文件的命令的文档,请参见此处.
对于 ServerFault 或 DBA 站点来说,这确实是一个问题,但简短的答案是否定的,您只能恢复完整的 .bak 文件(不考虑文件组或分段恢复等“异国情调”场景)。你没有说“巨大”是什么意思,但磁盘空间很便宜;如果添加更多确实不是一个选择,那么您需要找到一种从外部源获取数据的替代方法。
| 归档时间: |
|
| 查看次数: |
65934 次 |
| 最近记录: |