mysql相关的日志文件
Mysql的日志文件种类比较多,有的日志文件记录了mysql的服务状态以及mysql在工作中产生的系统信息,我们利用这些信息可以更方便的对mysql服务进行运维,但是有的日志文件如果我们进行了不正确的配置将对mysql的服务器主机造成不良的后果,下面我们就来看看mysql有哪些日志文件以及他们的各自的作用。
Mysql相关的日志文件,主要有两大类:事务日志和事件日志:
【事务日志】
事务日志:详细的记录了在什么时间发生了什么时候,在哪个时间对哪些数据进行了改变,能后实现事件的重放,一般只记录对数据进行改变的操作,对于读操作一般不进行记录
事物日志为数据库服务器实现以下功能:
1、将随机IO转换为顺序IO,大大的提高了数据库的性能,存储的数据可能存在在磁盘的不同位置,降低了数据的读取和操作性能。转换为顺序IO的原理为,先将数据存放在日志文件中,然后由RDBSM的后台将日志中的数据存放到磁盘上,这样就保证了存储的数据是连续的。
2、为事件重放提供基础,事务日志详细的记录了时间发生的时间以及操作的数据对象,事务进程可以根据这些信息进行时间重放
默认的事务日志文件有两个,位于数据目录下以ibdata+number结尾的数字,我们可以对事务日志的位置、文件大小、增长方式进行定义,定义的方法如下:
这里以使用支持事务的Innodb存储引擎为例
在服务器的主配置文件/etc/my.cnf中:
innodb_data_home_dir = /innodata 定义存放事务日志的目录
innodb_data_file_path = ibdata1:1024M 定义日志的名字和大小
innodb_data_file_path = ibdata2:50M:autoextend 定义日志大小的增长方式
【事件日志】
事件日志:记录了服务器的历史事件,即在生么时间发生了什么事,其中根据记录内容的不同可以将事件日志分为一下几种:
1、 the error log错误日志:在对应的数据目录中,以主机名+.err命名的文件。
错误日志记录的信息类型:
1、记录了服务器运行中产生的错误信息
2、记录了服务在启动和停止是所产生的信息
3、在从服务器上如果启动了复制进程的时候,复制进程的信息也会被记录
启用错误日志:默认情况下,系统已近将其自动启动
在主配置文件中:
log-error= 指定错误日志的位置,这个位置myaql用户必须有写权限,
2、the binary log二进制日志:默认开启。精确的记录了用户对数据库中的数据进行操作的命令和操作的数据对象。
二进制日志文件的作用:
1、提供了增量备份的功能
2、提供了数据基于时间点的恢复,这个恢复的时间点可以由用户控制
3、为mysql的复制架构提供基础,将这主服务器的二进制日志复制到从服务器上并执行同样的操作,就可将数据进行同步
启用:默认在数据目录下以mysql-bin.number命名的文件
log-bin= 指定二进制日志文件的名字
log-bin-index= 定义二进制日志文件的名字的索引文件的位置,其用来保存可用的二进制日志文件的名字
(注:二进制日志文件的删除和一般文件的删除是不同的,我们可以采用以下的方法
PURAGE BINARYLOGS BEFORE ‘mysql-bin.00001’清除某个二进制日志文件之前的二进制日志文件
PURAGE BINARYLOGS BEFORE ‘2011-3-5 23:00:00'清除某个时间点之前的所有二进制日志的记录
3、the general query log查询日志:对除了慢查日志中记录的查询信息都将记录下来,这将对服务器主机产生大量的压力,所以对于繁忙的服务器应该关闭这个日志
启用和关闭的方法:
在主配置文件中:
general_log=[ON/OFF]
log_output=指定存放查询日志的位置,可以放在文件中,也可以放在数据库的表中,放在表中比放在文件中更容易查看
4、the slow query log慢查日志:默认为关闭状态,记录下来查询时间超过设定时长的查询,这些查询日志将被慢查日志记录下来
在主配置文件中配置:
通过long_query_time=num 定义默认的时长,默认时长为10秒
在配置文件中启用:
slow_query_log=ON
slow_query_log_file= 指定慢查日志的位置及名字
在mysql中启用的方法:
mysql>SET GLOBAL slow_query_log=ON
5、the relay log中继日志,主要是在mysql服务器的中从架构中的从服务器上用到的,当从服务器想要和主服务器进行数据的同步时,从服务器将主服务器的二进制日志文件拷贝到己的主机上放在中继日志中,然后调用SQL线程按照拷中继日志文件中的二进制日志文件执行以便就可达到数据的同步。
开启的方法:(只在从服务器上开启)
配置mysql的主配置文件:
relay-log= 指定中继日志的位置和名字
relay-log-index= 指定中继日志的名字的索引文件的位置和名字
6、the ratationg logs 滚动日志,只要是针对二进制日志进行滚动的,对某个类型的日志文件滚动一次就生成一个新的相对应的日志文件,通过这种方法保证日志文件的特定大小,从而保证服务器在对日志文件查询时有较高的响应能力
滚动二进制日志的命令:FLUSH LOGS
两者都能够实现对数据操作的还原,但是前者的还原操作都是有系统自动完成的,不需要也不允许人为进行干预,而后者的恢复是完全依靠人为进行的。