分类:
编程软件 Java 中间件 Elasticsearch 前端开发 kafka 云计算大数据 Lua zookeeper PHP 网络与运维 项目构建管理 ActiveMQ 办公应用软件 Memcached RabbitMQ Sentinel Nacos
南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗 南玻医疗

Mysql删除binlog(安全清理)

2019-04-20 23:03|来源: 网路

如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件

-rw-rw---- 1 mysql mysql 1073742134 4月  16 06:12 mysql-bin.000011
-rw-rw---- 1 mysql mysql 1073741951 4月  17 00:43 mysql-bin.000012
-rw-rw---- 1 mysql mysql 1073742031 4月  17 17:20 mysql-bin.000013
-rw-rw---- 1 mysql mysql 1073741902 4月  18 08:59 mysql-bin.000014
-rw-rw---- 1 mysql mysql 1073742935 4月  19 05:23 mysql-bin.000015
-rw-rw---- 1 mysql mysql 1073742107 4月  20 05:42 mysql-bin.000016
-rw-rw---- 1 mysql mysql  757510167 4月  20 20:05 mysql-bin.000017
-rw-rw---- 1 mysql mysql     190398 4月  20 20:15 mysql-bin.000018
-rw-rw---- 1 mysql mysql        152 4月  20 20:05 mysql-bin.index


下面来介绍几种解决方法:

~~> 如果你的数据库没有搭建主从同步这样的服务 , binlog 日志也不用的情况下 , 你可以将 /etc/my.cnf 文件下面行删除或注释掉
log-bin=mysql-bin
~~> 如果你需要这样的文件 , 那么建议你在主配置文件 /etc/my.cnf 中添加如下行 , 来限制 binlog 日志文件存在时间 , 过期自动删除
expire_logs_days = 7 # 只保留 7 天的日志文件
~~> 如果你直接得到一台服务器 , 上面的 binlog 日志已经影响到了磁盘空间 , 那么你将使用下面命令清除
mysql> reset master; # 清空所有 binlog 文件
~~> 如果你的得到的服务器 , mysql 还做了主从同步 , 那么上面的命令就不适合你了 , 因为 binlog 文件删除过多的话 , 会导致数据不同步
mysql> show slave status\G # 你首先要来 slave 上查看从库读 binlog 到了哪里 
Master_Log_File: mysql-bin.000009 # 我们可以看到是 mysql-bin.000009
mysql> purge master logs to 'mysql-bin.000009'; # 我们可以在 master 中执行这条指令 , 将 binlog 文件删除至 mysql-bin.000009 前
mysql> purge master logs before '2014-11-18 00:00:00'; # 将 binlog 文件删除至此日期前


转自:https://www.cnblogs.com/wangxiaoqiangs/p/5336273.html

相关问答

更多

mysql开启binlog日志

mysql开启binlog日志 mysql有以下几种日志:错误日志: -log-err查询日志: -log慢查询日志: -log-slow-queries更新日志: -log-update二进制日志: -log-bin在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了

当同一台服务器上有2个mysql slave实例时,如何区分mysql主binlog转储线程?(How can I distinguish mysql master binlog dump threads when there are 2 mysql slave instance on same server?)

我为它制作了一个mysql插件 。 演示: mysql> select * from information_schema.binlog_dump_list; +----+----------------+------+------+-----------------------------------------------------------------------+ | ID | HOST | PORT | USER | STATUS

mysql怎样通过binlog恢复被恶意删除的数据

1. 以前我错误的认为mysql的日志可以恢复到任何时间的状态,其实并不是这样,这个恢复是有前提的,就是你至少得有一个从日志记录开始后的数据库备份,通过日志恢复数据库实际上只是一个对以前操作的回放过程而已,不用想得太复杂,既然是回放你就得注意了,如果你执行了两次恢复那么就相当于是回放了两次,后果如何你自己应该清楚了吧。 2. 要想通过日志恢复数据库,在你的my.cnf文件里应该有如下的定义,log-bin=mysql-bin,这个是必须的.binlog-do-db=db_test,这个是指定哪些

恢复已清除的mysql binlog文件(Restoring purged mysql binlog files)

好的,我做到了。 然而,这种解决方案并不完美/ 100%安全。 我已经将所有文件名输入到我的mysql-bin.index中 find /var/log/mysql/ -wholename '/var/log/mysql/mysql-bin.0*' | sort > mysql-bin.index (如果你将使用它首先检查mysql-bin.index文件中的文件名格式并根据你的需要调整) 然后重启mysql,mysql在启动时重新加载该文件。 MASTER准备好了。 现在它已经足够了 SLA

什么是show processlist中的mysql binlog转储(what is mysql binlog dump in show processlist)

通常我们在获取错误too many connections时正在执行show process,但在我的情况下,Mysql没有间歇性响应。 因此,如果有任何长时间运行的查询,我会考虑查看进程,以便我可以杀死它。 我在进程列表中的Command列下获得了binlog转储 。 Command显示线程当前正在执行的命令类型。 binlog dump是主服务器上的一个线程,用于将二进制日志内容发送到从属服务器。 如果需要有关Command不同值的更多信息,可以参考: http://dev.mysql.co

相关文章

更多

最近更新

更多