清理清除收缩SQL日志的方法.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
清理清除收缩SQL日志的方法

清理清除收缩SQL日志的方法 2010-07-03 11:52 sql 2000 事务日志的介绍及收缩 1、 事务日志简介 ??? 作为大型的关系型数据库,最重要的事情之一就是数据库完整性,也就是说数据必须是正确的,不能因为一些不可知的突发事件(如突然掉电)损坏数据。为了避免这种情况,SQL数据库采用了两步写入磁盘的办法,第一步先写我做了什么,比如开了一个进货单,这一步完成后,再执行第二步,把这个进货单的内容写入数据库,这两步都成功了,才算完成,有一步有问题,这个单据都不会记到数据库中。这样,您的事务操作(对数据库的修改操作,查询不记事务)的每一步都要记录进日志文件,如果您不注意经常截断事务日志的话,随着时间的增长,事务日志会很快的增长,最后要比您的数据量大的多。可以经常看到,数据库文件只有几十兆,而日志文件却几千兆的情况。 ??? ??? 2、 截断事务日志 ??? 事务日志分成两部分,一部分是不活动的,也就是说这部分的操作都已经成功的写入数据库了,而另一部分是活动的,也就是说,这部分日志,只是确认执行了上述第一步,还没有确信已经写入数据库的部分。我们需要截断的就是不活动的部分。这部分可以如下方法截断: ??? Backup Log ‘数据库名’ with truncate_only ??? 警告:在运行上述截断日志之后,强烈建议进行数据库完全备份。 ??? ??? 3、 缩小文件大小 ??? 使用上述第2步就把不活动的日志删除了,但是文件并没有变小,只是把原先旧日志占用的空间释放了,又可以向里面记入新的日志了。要想把物理文件也变小(比如已经几千兆了),请使用如下命令: ??? DBCC Shrinkdatabase (数据库名) ??? 运行上述命令后就可以把日志文件缩小了(一般都缩为1M左右) ??? ??? 4、 把数据文件或日志文件的增长不受限制 ??? 如果您做不到经常维护数据库,不能经常的截断日志,日志文件就会逐渐变大,一旦大到您设置的大小限制,日志就再也不能写入了,您对数据库的所有改变操作也就无法进行了,这时候您就需要用上面的方法把日志文件截断。不过,您可以把文件的大小设置大一些或不受限制,请在企业管理器中设置数据库属性即可。也可以运行下述命令: ???alter database 数据库名 modify file (name = 逻辑文件名,Maxsize = Unlimited) ??? 此处的逻辑文件名就是您在企业管理器中看到的文件名。 ??? ??? 说明: ??? 微软公司的SQL 2000有个小错误,有时候会报告逻辑文件名不存在的问题,这时候您就应该看看真正的逻辑文件名是什么,如果您的数据库是从一个备份文件中还原的,那么可以使用下面的命令看看逻辑文件名到底是什么,此处假设您已经把备份文件复制到C盘的根目录,备份文件名为Database.bak: ??? restore filelistonly from disk = ‘c:\Database.bak’ ??? 运行上述命令后,可以看出所有的逻辑文件名(LogicalName列的内容),取出这里的逻辑文件名,比如“真文件名”,运行如下命令 ??? alter database 数据库名 modify file (name = 真文件名, Maxsize = Unlimited) ??? 这个命令就会成功,再到企业管理器中去看,就发现文件大小已经无限制了。 ??? ??? 5、 数据库日常维护 ??? 为了让数据库更好的工作,不至于影响业务,日常需要对数据库进行维护,一般分为以下几个方面: ??? a. 日常的备份。建议每天进行备份,如果数据库太大,每天全库备份不现实,可以采用一周完全备份一次,每天差异备份一次或两次 ??? b. 维护索引。索引能够大幅的提高查询性能,但是随着数据碎片的增加,性能会越来越差,所以要经常的维护索引,可以根据具体情况,每周或每月维护一次索引。 ??? c. 截断日志。根据业务量的大小,可以不定期的截断日志。(方法参照下面) 方法一: 在SQL 2000中,每个数据库事实上存在两个物理文件,分别为.mdf和.ldf的扩展名。前者是数据文件,后者就是保存事务日志的文件。事务日志是SQL 2000中用于记录数据库操作记录的功能,不过如果长时间不进行维护,这个文件就会越来越庞大,必须清除一下。上次我的服务器上一个网站,因为数据库比较庞大(2G多),加上长时间没有维护,导致后来事务日志文件达到数十GB,把保存数据库文件的分区都给撑爆了。当时我没有过清除事务日志的经验,上网找了一些资料,很多都把这事说得很复杂,要在查询分析器里运行若干个命令什么的。其实后来我找到了一个最简单的方法,只要在查询分析器里运行一条命令,再在企业管理器里进行

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档