• 351阅读
  • 6回复

[建议]数据库log减肥,请按照以下方法作 [复制链接]

上一主题 下一主题
离线helman
 
发帖
45
祝福宝石
0
威望
273
玛雅之石
0
创造宝石
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2004-02-19
1、如何使Microsoft SQL Server的日志文件不会增大?

先介绍一个简单的方法。
就是把数据库的故障还原模型设置为“简单”(SQL2K)。这样它就会在Checkpoint的时候截断日志。
具体操作方法是:
1、在Enterprise Manager中右键点数据库,“属性|选项|故障还原”,选择“简单”就可以了,如果是SQL7,在“属性|选项”中有一个“trunc. log on chkpt. ”,选中就可以了。
2、如果不想用Enterprise Manager,在Query Analyser或者isql里面执行
EXEC sp_dboption 'your_dbname', 'trunc. log on chkpt.', 'TRUE'
就可以了


2、缩小log日志的方法
在事件查询器里面执行下列四行代码,即可减小log
USE muonline

GO

DBCC SHRINKFILE (muonline_log, 7)

GO

==================================

补充说明:
但是,要注意的是,这样做了之后,虽然日志不会增大,但是也意味着你一旦出现误操作,将不会有利用日志恢复的机会。(如何利用日志来恢复请参见精华区的FAQ)
所以,绝对不建议在生产数据库上截断日志,除非你有充足的理由和足够的把握,或者……
承担责任的不是你。

既然这种方法不安全,下面我将介绍一种安全的方法。
大家都知道,SQL Server 在完成事务日志备份时将自动截断事务日志中的不活动部分。这些不活动的部分包含已完成的事务,因此在恢复过程中不再使用。相反,事务日志的活动部分包含仍在运行但尚未完成的事务。SQL Server 将重新使用事务日志中这些截断的非活动空间,而不是任由事务日志继续增大并占用更多的空间。
所以,我们备份事务日志就可以使日志文件不再增大了。
但是呢,日志文件一直放着也不是个办法,删除呢,又会失去恢复的可能性。
我们可以结合完全备份来做。做过完全备份之前的事务日志就可以删除了。
比如说,一个备份计划,每天一次完全备份,保留7天内的,每15分钟一次事务日志备份,保留2天的。
用数据库维护计划向导可以很方便的建立备份计划,不过一定要记得设置保留多久的备份哦,否则硬盘空间被备份给占满了就坏事了。
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线helman
发帖
45
祝福宝石
0
威望
273
玛雅之石
0
创造宝石
0
只看该作者 沙发  发表于: 2004-02-19
没人顶?以后不发了。。。。
离线helman
发帖
45
祝福宝石
0
威望
273
玛雅之石
0
创造宝石
0
只看该作者 板凳  发表于: 2004-02-19
顶住~~~~~~~~
离线k6_56
发帖
72
祝福宝石
0
威望
548
玛雅之石
0
创造宝石
0
只看该作者 地板  发表于: 2004-02-19
嘿嘿,顶
离线helman
发帖
45
祝福宝石
0
威望
273
玛雅之石
0
创造宝石
0
只看该作者 4楼 发表于: 2004-02-19
哥们们,希望大家能顶到置顶~~~~~
离线ttbx
发帖
125
祝福宝石
0
威望
383
玛雅之石
0
创造宝石
0
只看该作者 5楼 发表于: 2004-02-19
顶。。。。。。
另外“如何利用日志来恢复请参见精华区的FAQ”。。。。。。在精华区没有找到啊?
离线yullyx
发帖
10
祝福宝石
0
威望
209
玛雅之石
0
创造宝石
0
只看该作者 6楼 发表于: 2004-02-19
虽然看不懂.不过也要顶
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个

      管理员联系信箱 [email protected] 所有内容均来之互联网,如侵犯您的隐私和权益,请和我们及时联系!