博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql清理二进制日志的技巧
阅读量:6092 次
发布时间:2019-06-20

本文共 1141 字,大约阅读时间需要 3 分钟。

1:二进制日志

二进制日志记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但是不记录包括数据查询的语句。语句以“事件”的形式保存,它描述了数据的更改过程,此日志对于灾难时的数据恢复起着极其重要的作用

2:日志的位置和格式

当用—log-bin[=file_name]选项启动时,mysqld将包含所有更新数据的SQL命令写入日志文件。如果没有给出file_name值,默认名为主机名后面跟_bin,如果给出了文件名,但没有包含路劲,则文件默认被写入参数DATADIR(数据目录)指定的目录

3:日志的读取

由于日志以二进制的方式存储,不能直接读取,需要用mysqlbinlog工具来查看,语法如下:

#mysqlbinlog log_file

4:日志的删除

对于比较繁忙的OLTP系统,由于每天生产日志量大,这些日志如果长时间不清理,将会对磁盘空间带来很大的浪费,因此,定期删除日志是DBA维护的一个重要工作内容,下面将介绍几种删除日志的常见方法

1):

执行“reset master;”命令,该命令将删除所有二进制日志,新日志的编号从“000001” 开始,命令如下

1
Mysql>reset master;


2):

执行“Purge master logs to ‘mysql-bin.*****’” 命令,该命令将删除“*****” 编号之前的所有日志,下列中删除了“mysql-bin.000001”之前编号的所有日志

1
Mysql>purge master logs to ‘mysql-bin.000015;


从结果中发现,编号000015之前的所有日志都已经删除

3):

执行“purge master logs before ‘yyyy-mm-dd hh24:min:ss’”命令,该命令将删除日期为“yyyy-mm-dd hh24:mi:ss”之前产生的所有日志,下列中删除了日期在“2010-05-22 01:00:00”之前的所有日志

1
Mysql>purge master logs before ‘2010-05-22 01:00:00’’;


4):

设置参数—expire_logs_days=#(days),此参数的含义是设置日志的过期天数,过来指定的天数后日志将会被自动删除,这样将有利于减少DBA管理日志的工作量。

1
2
3
#vi /etc/my.cnf
[mysqld]
--expire_logs_days=3


这样,3天前的日志都会被删除,系统自动删除

      本文转自灬落魄灬  51CTO博客,原文链接:http://blog.51cto.com/smoke520/1919604,如需转载请自行联系原作者
你可能感兴趣的文章
[Unity3d插件KGFMapSystem]非常不错的小地图的制作
查看>>
jdk与jre的区别
查看>>
弹出菜单
查看>>
高德地图多marker聚合API
查看>>
IPv4 向 IPv6 过渡安全问题不可小觑
查看>>
Linux运维实战之Apache服务器的高级配置(虚拟主机、status)
查看>>
DHCP overview
查看>>
我的友情链接
查看>>
linux 系统无法启动的基本解决方法
查看>>
老男孩博客园杨海潮MySQL--MySQL机构逻辑1
查看>>
Linux network adapter configuration
查看>>
决心书
查看>>
阿里云产品
查看>>
ESXi磁盘块大小设立
查看>>
我的友情链接
查看>>
elasticsearch 使用事项
查看>>
sqlserver中text与Varchar(max)的区别
查看>>
Docker私有仓库Registry的搭建验证
查看>>
企业信息化-之成立信息化专项小组
查看>>
jQuery 知识点总结
查看>>