MySQL日志——删除二进制日志
2015-11-22 22:13
471 查看
二进制日志等增长速度往往比数据库本身的速度还快,因为它会记录所有的操作过程,而数据库只会记录最终的结果。
因此需要对二进制的管理指定备份或管理计划,无用的要及时删除。
说明:mysql重启会重新一个新的二进制日志文件,即使上一个文件是空的什么都没写入!
因此为了准备实验环境,可以使用多次重启mysql服务的方式创建多个日志文件来进行练习。
删除二进制日志有三种方式:
(1) 操作系统的删除命令,例如Linux的rm 命令来删除多个无用的二进制日志文件。这种方式不建议使用,因为要先停止mysql服务才能删除,否则会引起数据不一致的情况,因为二进制日志和数据文件的写入是在一个事务中的,如果数据库文件写入成功而二进制日志没有写入成功,mysql可能会撤销这个事务的影响,也就是事务会失败。并且这种方式会破环二进制日志本身的索引。
(2) RESETMASETR,需要登录mysql执行该命令,会删除过去所有的二进制日志文件和二进制日志的索引文件,并且会自动创建出一个新的二进制日志文件以及索引
(localhost-bin.000001和localhost-bin.index)
(3) PURGE,举例如下:
PURGE {MASTER|BINARY} LOGS TO ‘log_name’;
PURGE {MASTER|BINARY} LOGS TO ‘date’;
MASTER|BINARY指定的是删除MASTER日志或BINART日志,也就是如果是replicaton环境的mysql,那么会产生master日志(二进制日志的另一种形式),那么此时就是删除master日志,如果只是一个单机的mysql那么就删除普通二进制日志(BINARY),单机mysql只会产生二进制日志,而replicaton环境中作为主库的mysql产生的是MASTER日志
LOGS TO ‘log_name’就表示删除到哪一个日志文件为止,例如有0001、0002、0003三个文件,此时如果指定了LOGS TO ‘0002’,那么就会删除0002之前的所有日志文件,而不会删除0002和之后的0003。
LOGS TO ‘date’指定删除到哪个日志,该日期之前的MASTER|BINARY日志都会被删除,不包括该日期。
以上的命令或删除都可以小写的,因为mysql对命令和语句的大小写没有要求。
补充:以及登录到mysql后,如果mysql服务重启,那么这个连接就失效了,但是此时不会被推出mysql,如果服务以及启动,再次在这个连接上请求mysql的时候会自动重新连接。
因此需要对二进制的管理指定备份或管理计划,无用的要及时删除。
说明:mysql重启会重新一个新的二进制日志文件,即使上一个文件是空的什么都没写入!
因此为了准备实验环境,可以使用多次重启mysql服务的方式创建多个日志文件来进行练习。
删除二进制日志有三种方式:
(1) 操作系统的删除命令,例如Linux的rm 命令来删除多个无用的二进制日志文件。这种方式不建议使用,因为要先停止mysql服务才能删除,否则会引起数据不一致的情况,因为二进制日志和数据文件的写入是在一个事务中的,如果数据库文件写入成功而二进制日志没有写入成功,mysql可能会撤销这个事务的影响,也就是事务会失败。并且这种方式会破环二进制日志本身的索引。
(2) RESETMASETR,需要登录mysql执行该命令,会删除过去所有的二进制日志文件和二进制日志的索引文件,并且会自动创建出一个新的二进制日志文件以及索引
(localhost-bin.000001和localhost-bin.index)
(3) PURGE,举例如下:
PURGE {MASTER|BINARY} LOGS TO ‘log_name’;
PURGE {MASTER|BINARY} LOGS TO ‘date’;
MASTER|BINARY指定的是删除MASTER日志或BINART日志,也就是如果是replicaton环境的mysql,那么会产生master日志(二进制日志的另一种形式),那么此时就是删除master日志,如果只是一个单机的mysql那么就删除普通二进制日志(BINARY),单机mysql只会产生二进制日志,而replicaton环境中作为主库的mysql产生的是MASTER日志
LOGS TO ‘log_name’就表示删除到哪一个日志文件为止,例如有0001、0002、0003三个文件,此时如果指定了LOGS TO ‘0002’,那么就会删除0002之前的所有日志文件,而不会删除0002和之后的0003。
LOGS TO ‘date’指定删除到哪个日志,该日期之前的MASTER|BINARY日志都会被删除,不包括该日期。
以上的命令或删除都可以小写的,因为mysql对命令和语句的大小写没有要求。
补充:以及登录到mysql后,如果mysql服务重启,那么这个连接就失效了,但是此时不会被推出mysql,如果服务以及启动,再次在这个连接上请求mysql的时候会自动重新连接。
相关文章推荐
- MySQL日志——使用二进制日志恢复数据介绍
- Mysql 操作
- Mysql-Proxy实现mysql读写分离、负载均衡 (转)
- 安装MySQL for Windows 数据库
- MySQL之truncate表后恢复思路整理(前提是有备份且开启binlog)
- mysql数据库 SQL查询语句优化和一些注意
- 修改mysql 提示符
- zabbix 的报错sock报错
- 初学MySQL
- mysql 配置环境变量的方法及作用
- mysql性能优化学习笔记(6)数据库配置优化&硬件优化
- mysql性能优化学习笔记(5)数据库结构优化
- mysql性能优化学习笔记(4)索引的优化
- mysql性能优化学习笔记(3)常见sql语句优化
- MySQL命令大全
- 一个高性能的MySQL proxy(kingshard)的性能测试报告
- mysql数据类型
- MySQL 入门
- [实战]MVC5+EF6+MySql企业网盘实战(16)——逻辑重构3
- mysql Error 1044 错误解决