linux下mysql数据,事物日志文件磁盘满,服务宕机

最近项目上装的MySQL服务,分配的磁盘空间太小了,导致binlog日志两天时间就能打满,这里记录下处理方式。

mysql的binlog日志是一个很重要的日志,以事件形式记录了所有的DDL和DML(除了数据查询语句)语句,还包含执行的消耗的时间,在数据丢失的紧急情况下,我们可以利用binlog日志功能进行数据恢复。

1、问题上面说了,默认情况下binlog日志默认在/var/lib/mysql路径下,磁盘空间比较小很快就被binlog打满了,为了保证项目上能正常使用,之前是维护人员手动清理和备份。在找到重新挂盘和修改binlog日志路径方法前,先给现场的配置下自动清理。

2、配置自动清理在my.cnf文件中,这个文件路径不知道的话执行mysql --help | grep 'Default options' -A 1,就会列出文件的路径来

 修改配置文件,vi /etc/my.cnf,找到logbin的部分

expire_logs_days =15 

路径因为测试环境没法挂盘,随便写了个路径,下面新建我们上面指定的文件夹mkdir -p /home/logs,然后重启mysql的时候报错了,经过一番折腾后,发现建的文件夹必须赋权限,泪目。。。chown -R mysql.mysql /home/logs

然后重启service mysql restart,去新建的目录下看看,已经有最新的日志了,我的截图日志比较多是因为我重启过好几次,每重启一次生成一次新的。

linux下mysql数据,事物日志文件磁盘满,服务宕机_第1张图片

到这里更换路径和自动清理的工作就完成了。

下面列几个常用的命令

0、查看日志开启状态 show variables like 'log_%'; 

linux下mysql数据,事物日志文件磁盘满,服务宕机_第2张图片

1、查看所有binlog日志列表 show master logs;

linux下mysql数据,事物日志文件磁盘满,服务宕机_第3张图片

2、查看最新一个binlog日志的编号名称,及其最后一个操作事件结束点 show master status;

 linux下mysql数据,事物日志文件磁盘满,服务宕机_第4张图片

3、刷新log日志,立刻产生一个新编号的binlog日志文件,跟重启一个效果 flush logs;

4、清空所有binlog日志 reset master;

5、日志查看,因为是二进制文件没法用vi等打开,可以用mysql的mysqlbinlog打开,/usr/bin/mysqlbinlog /home/logs/mysql-bin.000001,当然每个人路径可能不一样,这个只能自己去找了。

linux下mysql数据,事物日志文件磁盘满,服务宕机_第5张图片

我这是新日志,也没做什么操作,所以日志内容没什么东西,具体的日志内容解释,以及如何通过binlog恢复数据,以后有时间的话再写写。

你可能感兴趣的:(#,关系型数据库)