Jam*_*mes 6 sql-server-2008 sql-server
我有一个简单恢复模式的大型数据库(供应商要求),花了 3 天时间将其备份到新托管公司的服务器。
第三天早上,由于事务日志已填满其驱动器,DB 下线。
我的理解是 SQL Server 将开始回收空间。更有趣的是,在我给它更多空间之前,我认为数据库不会再次开始工作——它在备份完成后仍然被破坏。不过,我没有花时间进行正确的调试,所以我不知道为什么会卡住。
问题:为什么 SQL Server 在 Simple Recovery 中不能在备份时回收其事务日志?
Jon*_*ite 15
在备份过程中使用事务日志来存储在进行备份时提交的所有更改。这些更改应用于备份文件,以便备份在完成时保持一致(仅提交事务)。
但是三天能吃饱吗?我每天备份一个 TB 数据库,只需要 90 分钟(压缩、多个文件、SQL 原生)。鉴于您的版本,您应该考虑同时备份多个文件(或加快备份存储速度)。
答:事务日志正被备份进程使用。
因为您将其发送给供应商,所以我怀疑您是通过文件共享直接从本地 SQL Server 将其发送到供应商(特别是因为您说本地备份只需要 90 分钟)。
对于这种情况,我建议您首先在本地备份(如果您处于 FULL/BULK 恢复模式,可能带有 COPY_ONLY 标志),然后将其发送给供应商。您不会将 SQL Server 与此备份捆绑在一起,并且您有机会使用 7zip 或类似工具压缩备份(这应该很容易将其减少 50%)。