阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL清理二进制日志的技巧

131次阅读
没有评论

共计 1071 个字符,预计需要花费 3 分钟才能阅读完成。

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 hh24:min:ss’”命令,该命令将删除日期为“yyyy-mm-dd hh24: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 天前的日志都会被删除,系统自动删除

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143284.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1071字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中