是否可以将 WITH INIT 用于我的事务日志备份以避免它变得太大?

Rac*_*hel 4 sql-server-2005 backup

我仍在努力理解 SQL 的备份作业。

我们目前有一个使用完整恢复模型的 SQL Server 2005 实例。

我们每周进行一次完整的数据库备份。

BACKUP DATABASE [MyDatabase]
TO DISK = N'E:\Database Backups\MyDatabase.Bak'
WITH INIT, NAME = N'MyDatabase.Bak'
Run Code Online (Sandbox Code Playgroud)

每天一次差异备份

BACKUP DATABASE [MyDatabase]
TO DISK = N'E:\Database Backups\MyDatabase_Diff.Bak'
WITH INIT, DIFFERENTIAL, NAME = N'MyDatabase_Diff.Bak'
Run Code Online (Sandbox Code Playgroud)

现在我试图弄清楚如何每小时安排事务日志备份,所以我们最多会损失一个小时的工作。

BACKUP LOG [MyDatabase]
TO DISK = N'E:\Database Backups\MyDatabase_Log.Bak'
Run Code Online (Sandbox Code Playgroud)

我的问题是,我们的存储空间有限,我不希望日志文件变得太大。我可以使用WITH INIT事务日志备份来强制它每小时创建一个新文件吗?或者我是否需要自上次差异备份以来的所有事务日志备份才能恢复到一天中的特定时间点?

如果我确实需要保留自上次差异以来的所有副本,有没有办法在我进行备份时告诉它重置?

Aar*_*and 6

不,不要WITH INIT用于将事务日志备份到同一文件。如果你这样做,你最好不要在完整/差异备份之间使用它们。

通常,您每次都会将日志备份到一个唯一的文件中。每个名称中都会有某种形式的时间戳,并具有 .trn 扩展名而不是 .bak。这主要用于管理目的 - 它可以非常轻松地识别何时进行日志备份,何时可以安全删除,是否应该成为您的时间点恢复操作的一部分等。

  • 如果您使用的是维护计划,则会有一个复选框显示“删除早于 <n> 的文件”。否则,您将不得不像处理 .bak、.diff 等一样自己管理它。 (3认同)