发布:阿里云代理商凯铧互联
问题场景:
最近一位客户委托凯铧互联工程师维护数据库,发现客户MYSQL数据库的DATA目录下有大量mysql-bin.00001文件。每个文件都很大。那么这是什么文件呢?可否清理呢?如下
-rw-rw---- 1 mysql mysql 5242880 Feb 27 14:49 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Dec 27 17:55 ib_logfile1
-rw-rw---- 1 mysql mysql 588M Mar 12 02:03 maria_log.00000003
-rw-rw---- 1 mysql mysql 52 Mar 12 01:54 maria_log_control
drwx------ 2 mysql root 4.0K Jan 15 14:28 mysql
-rw-rw---- 1 mysql mysql 20K Dec 27 17:54 mysqld-bin.000001
-rw-rw---- 1 mysql mysql 715K Dec 27 17:54 mysqld-bin.000002
-rw-rw---- 1 mysql mysql 625 Dec 28 11:46 mysqld-bin.000003
-rw-rw---- 1 mysql mysql 125 Dec 27 18:20 mysqld-bin.000004
-rw-rw---- 1 mysql mysql 1.1K Feb 27 14:49 mysqld-bin.index
凯铧互联技术回复:
其实mysql-bin.000001、mysql-bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。这主要是用于操作审查和多数据库同步的。ib_logfile则是用来记录InnoDB的表一致性的,只有在服务器当机后才能发挥作用:
1:数据恢复
如果你的数据库出问题了,而你之前有过备份,那么可以看这些日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。
2:主从服务器之间同步数据
主服务器上所有的操作都在以上的记录日志中,从服务器可以根据该日志来进行,以确保两个同步。
但是对于一般用户来说,没有主从数据库,也不用审查操作,这些文件完全就没有任何用处的!因此,首先清理一下这些文件。然后编辑mysql配置文件,打开/etc/mysql/my.cnf,把里面的log-bin这一行注释掉。
清理日志方法为:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2008-12-19 21:00:00';
如果你确定从服务器已经同步过了,跟主服务器一样了,那么可以直接RESET MASTER将这些文件删除。
专享服务:
如果您的问题还未能解决,您可以联系阿里云代理商凯铧互联客服寻求帮助。阿里云代理商凯铧互联提供阿里云服务器/企业邮箱等产品的代购服务,同样的品质,更多贴心的服务,更实惠的价格。 阿里云代理商凯铧互联会为您提供一对一专业全面的技术服务,同时还能为您提供阿里云其他产品购买的专属折扣优惠。通过凯铧互联购买可以获得折上折优惠!若您需要帮助可以直接联系我方客服,阿里云代理商凯铧互联专业技术团队为您提供全面便捷专业的7x24技术服务。 电话专线:136-5130-9831,QQ:3398234753。
如果您是工作时间以外的时间需要服务,请加微信号158-0160-3153,当然了,这个微信号也是手机号,可以随时拨打!
扫一下凯铧互联微信号,立享优惠折扣!!