加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql清理二进制日志的技巧

发布时间:2022-07-03 15:18:39 所属栏目:MySql教程 来源:互联网
导读:Mysql清理二进制日志的技巧: 1:二进制日志 二进制日志记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但是不记录包括数据查询的语句。语句以事件的形式保存,它描述了数据的更改过程,此日志对于灾难时的数据恢复起着极其重要的作用 2:
      Mysql清理二进制日志的技巧:

  1:二进制日志
 
  二进制日志记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但是不记录包括数据查询的语句。语句以“事件”的形式保存,它描述了数据的更改过程,此日志对于灾难时的数据恢复起着极其重要的作用
 
  2:日志的位置和格式
 
  当用—log-bin[=file_name]选项启动时,mysqld将包含所有更新数据的SQL命令写入日志文件。如果没有给出file_name值,默认名为主机名后面跟_bin,如果给出了文件名,但没有包含路劲,则文件默认被写入参数DATADIR(数据目录)指定的目录
 
  3:日志的读取
 
  由于日志以二进制的方式存储,不能直接读取,需要用mysqlbinlog工具来查看,语法如下:
 
  #mysqlbinlog log_file
 
  4:日志的删除
 
  对于比较繁忙的OLTP系统,由于每天生产日志量大,这些日志如果长时间不清理,将会对磁盘空间带来很大的浪费,因此,定期删除日志是DBA维护MySQL数据库的一个重要工作内容,下面将介绍几种删除日志的常见方法
 
  (1):
 
  执行“reset master;”命令,该命令将删除所有二进制日志,新日志的编号从“000001” 开始,命令如下
 
  Mysql>reset master;
  (2):
 
  执行“Purge master logs to ‘mysql-bin.*****’” 命令,该命令将删除“*****” 编号之前的所有日志,下列中删除了“mysql-bin.000001”之前编号的所有日志
 
  Mysql>purge master logs to ‘mysql-bin.000015;
  从结果中发现,编号000015之前的所有日志都已经删除
 
  (3):
 
  执行“purge master logs before ‘yyyy-mm-dd hh34:min:ss’”命令,该命令将删除日期为“yyyy-mm-dd hh34:mi:ss”之前产生的所有日志,下列中删除了日期在“2010-05-22 01:00:00”之前的所有日志
 
  Mysql>purge master logs before ‘2010-05-22 01:00:00’’;
  (4):
 
  设置参数—expire_logs_days=#(days),此参数的含义是设置日志的过期天数,过来指定的天数后日志将会被自动删除,这样将有利于减少DBA管理日志的工作量。
 
  #vi /etc/my.cnf
  [mysqld]
  --expire_logs_days=3
  这样,3天前的日志都会被删除,系统自动删除。

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!