SQL Server 2k5 - 没有日志文件的数据库备份

时间:2009-01-12 17:34:23

标签: sql-server log-files

日志文件通常很大,不实用。有没有办法在没有任何日志文件(或空日志文件)的情况下“备份”SQL Server数据库?

3 个答案:

答案 0 :(得分:1)

部分日志实际上包含在备份中。这就是恢复的一致性。备份运行时更改的页面将从日志(或记录的更改)中获取,然后在还原过程结束时应用这些页面。

您无法解决这个问题,但您可以限制SQL Server的日志记录量。您可以通过将数据库置于简单模式来执行此操作,但是如果您这样做,请了解您无法恢复,直到有人发布时

delete myTable

并忘记了WHERE子句。您只能从完整备份中恢复。

您要做的是定期备份数据库(使用BACKUP DATABASE命令),并且还要更频繁地运行BACKUP LOG命令。通常人们每晚都要对小型数据库进行完整备份,然后每小时记录一次备份。这使您可以恢复到白天的任何时间点,假设您保留所有这些备份文件。

它还管理日志文件大小,因为BACKUP LOG命令释放了日志文件中的空间以供重用。

答案 1 :(得分:0)

在您进行完整数据库备份之前,执行:

BACKUP LOG databasename WITH TRUNCATE_ONLY

之前执行此操作的原因是,将来的日志备份仍将保留时间点一致性。通过这种方式,您将始终拥有一个有效的链(无论如何,从此完整备份开始 - TRUNCATE将阻止您进行时间点恢复,因为无论您的上次日志备份是什么,尽管所有仅数据备份都将仍然有效)。

答案 2 :(得分:0)

很抱歉,但你的问题毫无意义。

当您备份数据库时,您从数据文件(MDF和NDF)备份数据文件。 然后,引擎会附加备份期间发生的任何更改(来自日志条目)。

使用BACKUP LOG备份日志条目( not 文件)。 如果数据库具有简单的恢复模型,则不需要这样做。

还原数据库时,它会重新创建磁盘上的文件。这是你的意思吗?

日志文件本身对于所有RDBMS的工作方式至关重要。

这里唯一的问题是如何在BCP / DR策略的背景下备份/恢复它们。