1. 二进制日志(binlog)
1). binlog 存在用途:
记录所有数据的更新操作(insert update delete),当数据库不小心挂了时,可以根据binlog来恢复,也可用作同步主从数据库。
2). 默认关闭此功能
将下面写入配置文件my.ini(重启生效) 或者 执行用SQL语句设置下面几个变量的值
log-bin = binlog-filename
## binlog的递增生成的文件名为binlog-filename.000000x
expire_logs_days = n
## mysql隔几天定期清除binlog日志
max_binlog_size = n
## 单个binlog的最大容量
在xp下,要让配置文件重新生效必须重启服务,进入dos控制台,执行 net stop mysql; net start mysql;
3). 删除binlog方法
a. mysql> reset master;
b. mysql> purge master logs before '2013-12-1'
4). 查看binlog方法
a. shell> mysqlbinlog -v(命令详细)/-vv filename --start-datetime='2013-11-1 00:00:00' --stop-datetime='2013-12-1' | head -n 100;
b. mysql命令:
mysql> show binary logs;
mysql> show binlog events in 'binlog-filename.000000x' limit 2 \G(格式化输出);
5). 全局参数 sync_binlog 不等于0时 (每写缓存几次就会同步到磁盘,默认为0),
Sql语句开始执行,将事务写入binlog缓存日志,待执行结束事务提交时,将其写入binlog文件。
缓存日志大小是由binlog_cache_size决定,假如要写入的内容大小超过设置值,多余的会被写入一个临时文件。
通过查询 binlog_cache_use 和 binlog_cache_disk_use(临时文件使用数) 可看出binlog_cache_size设置是否合理
6). 怎么binlog恢复数据(例如将在A、B时间内的操作事务回滚)
shell> mysqlbinlog binlog-filename.000000x --start-datetime=A --stop-datetime=B > rollbackTrans.sql
mysql> source rollbackTrans.sql
参考网址:
mysql-bin.000001文件的来源及处理方法
Binlog中table_map_id 的探究
mysql的binlog详解
MySQL的mysqldump工具的基本用法
2. 慢查询日志(slow query log)
1). 用途:
记录可能运行较慢的sql语句,辅助mysql优化
2). 默认关闭此功能
将下面写入配置文件my.ini(重启生效) 或者 执行用SQL语句设置下面几个变量的值
slow_query_log = 1
## 之前是log_slow_queries参数,已弃用)
long_query_time = 2
## 慢查询阀值,将执行时间大于等于此值的sql语句记录下来,默认是10秒
log_queries_not_using_indexes = 1
## 设置是否将没有使用到索引的sql语句记录下来
3). 查看慢查询日志 shell> mysqldumpslow -s al/at/ar/c/l/r/t -n 2 filename-slow.log
4). 默认是将slow log写入文件中,可以通过设置全局变量 log_output = 'TABLE',将其写入mysql.slow_log表中(注意表引擎修改)
参考网址:
linux下开启mysql慢查询,分析查询语句
MySQL笔记 - InnoDB存储引擎数据文件和日志文件 | InnoDB storage engine data files and log files
3. 查询日志(log)
记录所有对数据库进行请求的信息,默认关闭,设置 general_log 变量开启日志功能
4. 错误日志(error log)
记录MySQL启动、运行、关闭过程中出现的问题
阅读(1322) | 评论(0) | 转发(0) |