您的位置:首页 > 其它

truncate log on checkpoint

2008-05-03 22:33 501 查看
关于 SQL SERVER 的log file

sql server 的log 是不会自动清除或者 rewrite的。除非人工清除。

在清除 log 内容的方法中,最容易的就是 truncate. 或者用 job 定期 backup log 之后自动清除。而 backup 的 log,可以使 database 在recovery 时, to the point you like.

如果不需要那些 log 文件的 backup,选 truncate log at checkpoint 就永远不用为log 担心了。

SQL SERVER 的 checkpoint 好像很难人为控制,应是系统自己控制的。当设置了 truncate log at checkpoint 时,系统即为在内容超过 log size 70% 的时候自动产生 checkpoint 清除 log 内容。

在 developing 的环境中,不需要 recovery database to the point of failure。因此不需要存档 archived log files. 多数就设置了 truncate log at checkpoint.

  有些用户贪图简便,在生产环境中设置了 truncate log on checkpoint 。其原意不外是避免因写满日志而导致的业务停顿。殊不知,这样的设置可能带来不可挽回的灾难。因为当事务被截断后,从最近一次全备到当前的事务均不可能再 恢复了!如果这期间出现问题,如磁盘损坏,则将导致大量数据丢失。

  在生产环境中,应通过配置合理的备份策略来进行全备和增量备份。典型的策略是每周一次全备,每天一次增量备份。用户应根据自身应用的实际情况(数据 量、数据增量、数据重要性等因素),合理调整,如改为一天两次增量备份。如果需要大量导入数据,可能写满日志,那么可能临时设置 truncate log on checkpoint,但需要注意的是:完成数据导入后,应立即取消此设置,并马上进行全备。

USE [database-name]

EXEC sp_dboption 'database-name', 'trunc. log on chkpt.', 'FALSE'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: