好吧,我不是服务器管理员、网络人员或 DBA。我只是一名在一家小公司帮忙的程序员。他们有一个 IT 人员,他不是以 MS 为中心的(大多数东西都在 Mac 上),他和我正在试图找出解决方案。
我们有一个主数据库。我们每晚都会进行完整备份。我知道它们是完整备份,因为我可以获取最新文件或任何每日备份,然后转到一台全新的机器并将备份“恢复”到空数据库,我们的应用程序可以完美地运行此备份。
4 个月内备份从 60 MB 增长到 250 MB。运行时,日志文件为 1.7 GB,数据文件只有 200-300 MB。是的,恢复模式设置为完整。
所以,我的问题是,在所有这些之后,如果我们保留每日备份,并且我们没有必要/不够聪明将数据库回滚到某个时间,如果我将恢复模式更改为简单,我真的会失去什么吗?
而且,如果我将其更改为简单,它会完全转储日志文件还是至少将其减少很多?
而且,这会让我们的数据库运行得更快吗?我知道,当我将相对较新的备份复制到本地机器进行开发和测试时,它会让我的生活更轻松……
答案1
是的,将恢复模式改为简单应该可以摆脱日志文件。
但是,您可能只想考虑为日志文件设置一个备份计划。这样您就可以获得(通常每晚)完整备份和事务日志的定期备份。这可以将活动事务日志的大小保持在更易于管理的大小,并保留执行时间点恢复的能力。
您所需要的只是一组 3 个维护计划:一个用于进行完整备份,一个用于进行事务日志备份,一个用于进行维护清理任务以清理旧备份(超出您的保留阈值的备份)。
答案2
您确定日志文件被截断了吗?默认情况下应该是这样的。
如果您说简单备份是可以的,因为您正在进行每日备份,那么您可以尝试发出 truncat log 语句,然后进行完整备份,以保留完整的备份日志。网上有一些处理截断的链接,但这里有一个快速的链接:
http://blog.sqlauthority.com/2006/12/30/sql-server-shrinking-truncate-log-file-log-full/