快速业务通道

MYSQL日志文件维护

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
然保持可访问,否则使用更新日志的恢复操作将是不完整的。为了确保这一点的安全,除非数据库已经备份,否则不应该删除数据文件。


 系统备份

  更新日志对于数据库恢复并不是任何时候都好,如果一个磁盘崩溃导致您失去了更新日志的话,应确保您执行定期的文件系统备份。将更新日志写到与存储数据库不相同的磁盘中也是一个好主意。

  例如,如果您每天都循环日志,并且想保持一周的日志,则应保留log.0 到l o g . 6。在下一个循环中,将通过令log.5 覆盖log.6 使其成为新的log.6 来终止l o g . 6。这样,您就可以保留许多日志而又避免了它们超过磁盘的限度。

  日志循环频率和保持的旧日志数量将依赖于服务器的繁忙程度(活动的服务器产生更多的日志信息)以及您希望为旧日志投入多少磁盘空间。当循环常规日志时,可以用mysqla d - min flush-logs 命令告诉服务器关闭当前的日志文件并打开新的日志文件。

  执行常规日志循环的脚本类似如下(可修改它来反映您的日志基名和数据目录的位置,或许还有希望保留的旧日志的数量):

  

  最好从mysqladm 账号中运行此脚本以确保日志文件属于那个用户。如果在.my.cnf 选项文件中保留连接参数,您不需要在该脚本的mysqladmin 命令中指定任何参数。如果您不这样做的话可以建立一个受限用户,它除了发布刷新命令外什么也不做。然后可以以最小的风险在该脚本中放置这个用户的口令。如果想这样做,则该用户应只有RELOAD 权限。例如,要想调用用户flush 并分配一个口令f l us h pass,可使用下列GRANT 语句:

  GRANT RELOAD ON *.* TO flush@localhost IDENTIFIEDBY "flushpass"

 当需要在脚本中执行刷新操作时,可以这样做:

  mysqladmin -uflush -pflushpass flush -logs

  在linux 中,最好用logrotate 来安装MySQL分发包中的mysql- log - rotate 脚本,而不是自己编写脚本。如果mysql-log-rotate 不通过RPM 文件自动安装,应查看MySQL分发包的support-files 目录。

  由于服务器处理更新日志文件的方法不同,日志文件的循环在更新日志与常规日志之间稍有不同。如果告诉服务器使用没有扩展名的更新日志文件名(如up date),则服务器将使用顺序的up date . 0 0 1、update.002 等自动创建更新日志文件名。在服务器启动以及在日志刷新时,一个新的更新日志产生。如果您开启更新日志而没有指定文件名,服务器则使用主机名作为基名产生一个更新日志文件的序列。

  当终止

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号