日志文件通常很大,不实用。有没有办法在没有任何日志文件(或空日志文件)的情况下“备份”SQL Server数据库?
答案 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策略的背景下备份/恢复它们。