共计 1073 个字符,预计需要花费 3 分钟才能阅读完成。
最近项目上装的 MySQL 服务,分配的磁盘空间太小了,导致 binlog 日志两天时间就能打满,这里记录下处理方式。
mysql 的 binlog 日志是一个很重要的日志,以事件形式记录了所有的 DDL 和 DML(除了数据查询语句) 语句,还包含执行的消耗的时间,在数据丢失的紧急情况下,我们可以利用 binlog 日志功能进行数据恢复。
1、问题上面说了,默认情况下 binlog 日志默认在 /var/spool/mail/root 路径下,磁盘空间比较小很快就被 binlog 打满了,为了保证项目上能正常使用,之前是维护人员手动清理和备份。在找到重新挂盘和修改 binlog 日志路径方法前,先给现场的配置下自动清理。
2、配置自动清理在 my.cnf 文件中,这个文件路径不知道的话执行 mysql –help | grep ‘Default options’ -A 1,就会列出文件的路径来
修改配置文件,vi /etc/my.cnf,找到 logbin 的部分
路径因为测试环境没法挂盘,随便写了个路径,下面新建我们上面指定的文件夹 mkdir -p /home/logs,然后重启 mysql 的时候报错了,经过一番折腾后,发现建的文件夹必须赋权限,泪目。。。chown -R mysql.mysql /home/logs
然后重启 service mysql restart,去新建的目录下看看,已经有最新的日志了,我的截图日志比较多是因为我重启过好几次,每重启一次生成一次新的。
到这里更换路径和自动清理的工作就完成了。
下面列几个常用的命令
0、查看日志开启状态 show variables like ‘log_%’;
1、查看所有 binlog 日志列表 show master logs;
2、查看最新一个 binlog 日志的编号名称,及其最后一个操作事件结束点 show master status;
3、刷新 log 日志,立刻产生一个新编号的 binlog 日志文件,跟重启一个效果 flush logs;
4、清空所有 binlog 日志 reset master;
5、日志查看,因为是二进制文件没法用 vi 等打开,可以用 mysql 的 mysqlbinlog 打开,/usr/bin/mysqlbinlog /home/logs/mysql-bin.000001,当然每个人路径可能不一样,这个只能自己去找了。
我这是新日志,也没做什么操作,所以日志内容没什么东西,具体的日志内容解释,以及如何通过 binlog 恢复数据,以后有时间的话再写写。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150149.htm