MySQL数据库日志的管理与维护
来源:互联网 发布:美利奴羊毛线价格 知乎 编辑:程序博客网 时间:2024/05/16 11:43
MySQL数据库主要有5种类型的日志,分别为慢查询日志(log-slow-queries),二进制日志(log-bin),错误日志(log-error),查询日志(log),更新日志(log-update)。在新的MySQL版本中,已取消了更新日志,可以用二进制日志来替代这个功能。文章侧重讲解慢查询日志和二进制日志。
慢查询日志(log-slow-queries)
MySQL慢查询,指的是查询消耗时间较多,或者没有使用索引的查询,MySQL可以同时记录这两种情况:
# 慢日志保存路径log-slow-queries = slow.log# 超过2秒的查询long_query_time = 2# 没有使用索引的查询log-queries-not-using-indexes
二进制日志(log-bin)
在MySQL中,如果启用二进制日志记录,则MySQL的变更修改都会被记录到日志文件中:
mysql> show variables like 'log_bin'; +---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin | ON |+---------------+-------+1 row in set
如果想关闭bin日志的记录,可以修改配置文件my.ini,把里面的log-bin这一行注释掉,重启mysql服务。
查看的数据库的bin日志:
mysql> show binary logs;+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000001 | 946525 |+------------------+-----------+1 row in set
如果没有主从复制,可以通过以下方式,重置数据库日志,清除之前的日志文件:
mysql> reset master;Query OK, 0 rows affected
但是如果存在复制关系,应当通过PURGE的方式来清理bin日志:
语法如下:
PURGE MASTER LOGS TO 'log_name';PURGE MASTER LOGS BEFORE 'date';
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除。
例如:
PURGE MASTER LOGS TO 'mysql-bin.010';PURGE MASTER LOGS BEFORE '2008-06-23 15:00:00';
清除3天前的 binlog
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);BEFORE变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。
如果有主从复制,则注意以下几个问题:
1、从服务器是活动的,并且刚好在读取你正在试图删除的日志之一,那么执行这个命令不会起作用,而是触发一个错误。
2、从服务器是停止的,你碰巧清理了其想要读取的日志之一,则从服务器启动后不能复制。
3、从服务器是活动的,没有读取你试图删除的日志,那个这个命令是安全的,而且执行这个命令时从服务器不需要停止工作。
要清理日志,需按照以下步骤:
1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。
4. 备份你将要删除的所有日志。(这个步骤是自选的,但是建议采用。)
5. 清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步
参考:
http://blog.csdn.net/mycwq/article/details/17209169
http://ourmysql.com/archives/959
http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
- MySQL数据库日志的管理与维护
- MySQL数据库mysql-bin日志的管理与维护
- MySQL数据库管理与维护
- Mysql --分区表的管理与维护
- mysql 数据库的维护与修复
- Oracle管理与维护.数据库登录的身证验证
- Oracle管理与维护.数据库登录的身证验证
- Oracle管理与维护.数据库登录的身证验证
- 数据切分——Mysql分区表的管理与维护
- 数据切分——Mysql分区表的管理与维护
- MySQL数据库binlog日志管理
- 设备的管理与维护
- 设备的管理与维护
- innoDB锁问题-《深入浅出Mysql--数据库开发、优化与管理维护》
- 读《深入浅出MySQL:数据库开发、优化与管理维护》,学习了第一章
- 《深入浅出MySQL--数据库开发、优化与管理维护》读书笔记--开发篇
- 《深入浅出mysql数据库开发、优化与管理维护》sql基础(DDL、DML、DCL语句)
- 深入浅出MySQL++数据库开发、优化与管理维护(第2版)pdf
- HDU 2049 不容易系列之(4)——考新郎 (错排)
- Cloudera Hue Issues
- 乱世出英雄,逆境方能成大材
- 离开sina
- Oracle Sql高级编程--2.SQL执行(一)
- MySQL数据库日志的管理与维护
- android 中的 res 资源
- C primer plus(5th edit) program exercise 7-6(统计ei occurs)
- 生活用电安全常识:零线与地线的区别!
- UVA 10881 - Piotr's Ants(等效变换)
- 无效使用NULL
- here_doc 原著
- MFC关于Radio按钮的操作
- 关于U-BOOT中.balignl 16,0xdeadbeef的理解