mysql日志(默认存放在datadir):
1.错误日志 --错误日志,记录mysql服务端在运行时产生的错误信息
以及mysql启动和关闭时的日志信息
2.查询日志 --select * from xxx; show databases;
3.慢查询日志 --慢查询时间阀值,以秒为单位,如果超过这个阀值就是慢查询
4.binlog二进制日志 --记录对数据库增、删、改的SQL操作,可以使用这个日志做增量备份
5.事务日志 --每次增、删、改的SQL操作时,会把操作SQL语句写在事务日志,只innodb存储引擎才支持事务日志
6.relay-binlog --主从复制日志,从机器上从主机器复制过来日志,根据日志来同步数据。
分离mysql的数据和日志(从物理来分离出来,独立分区)
1、新建两个分区(raid+LVM)
vgsVG #PV #LV #SN Attr VSize VFree vol0 1 2 0 wz--n- 195.28G 48.81Glvcreate -n lv_data -L 5G vol0
lvcreate -n lv_log -L 5G vol0
mkfs.xfs /dev/vol0/lv_data
mkfs.xfs /dev/vol0/lv_log
mkdir /mysql/data -p
mkdir /mysql/logs -pvim /etc/fstab
/dev/vol0/lv_data /mysql/data/ ext3 defaults 0 0
/dev/vol0/lv_log /mysql/logs/ ext3 defaults 0 0mount -achmod 700 /mysql/{data,logs}
chown mysql.mysql /mysql/{data,logs}
2、移动数据和日志到不同的分区。
service mysql stop
cp -a /d1/* /mysql/data
3、指定各种类型的日志输出到/mysql/logs目录:
vim /data2/my.cnf
log-error=/mysql/logs/mysqld.log-err --错误日志,记录mysql服务端在运行时产生的错误信息,以及mysql启动和关闭时的日志信息。log=/mysql/logs/query.log --查询日志,一般不开启,做debug时才开启(新版mysql:general_log/general_log_file)log-bin=/mysql/logs/mysqld --二进制日志(重要),记录着对数据库的增删改,会造成约1%的性损失
log-bin-index=test_idx --二进制日志的索引记录,记录着当前使用的是哪个二进制日志文件,以及所有二进制文件的列表
max_binlog_cache_size= --默认是32768字节,二进制日志缓存是服务器支持事务存储引擎并且服务器启用了二进制日志前提下为每个客户端分配的内存
max_binlog_size=100MB --如果二进制日志写入的内容超出给定值,日志就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB
sync-binlog=0 | 1
二进制日志管理:
mysql> show binary logs; --查看当前所有的二进制日志
mysql> PURGE BINARY LOGS BEFORE '2012-03-26 16:21:00';
mysql> purge binary logs to 'mysqld.000005'; --删除mysqld.000005以前所有的日志,但不删除日志终结点
shell>mysqlbinlog /data2/mysqld.bin00001 --查看binlog文件中的内容
shell> mysqladmin -uroot -p456 flush-logs 截断日志
mysql> show master status --查询当前使用哪个二进制日志
mysql> flush logs; --截断二进制日志
mysql> flush master; --清空二进制日志
log_slow_queries=/mysql/logs/slow --慢查询日志
long-query-time=1 --只要超过1秒的查询将被记录下来,以便被做调优时做参考。