如何添加和调整mysql innodb log文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何添加和调整mysql innodb log文件相关的知识,希望对你有一定的参考价值。
参考技术A 数据在不断变化,数据库性能随着数据量的变大而变低,在对数据库进行性能分析时,为保障数据库处于高性能状态下,有时改变InnoDB日志文件大小或数量,这个过程需要停止mysql服务,否则会造成数据丢失或mysql服务启动失败。在说明如何添加和调整innodblog文件之前,先来看看与日志有关的参数。
innodb_log_group_home_dir
在事务被提交并写入到表空间磁盘文件上之前,事务数据存储在InnoDB的redo日志文件里。这些日志位于innodb_log_group_home_dir变量定义的目录中,通常我们把这个目录设置与innodb_data_home_dir变量相同。为了获得最佳性能,建议分离innodb_data_home_dir和innodb_log_group_home_dir到单独的物理存储阵列上,这样可以保证IO资源不起冲突,利于服务器处理大量高并发连接。
innodb_log_file_size
这个选项决定着性能,要慎重设置。默认设置为5M,难以满足生产环境下的需求。日志文件在mysql实例第一次启动时初始化,该文件是旋转的,因此可以根据文件修改时间来判断日志文件的旋转频率,旋转频率太频繁,说明日志文件太小了,要扩大。
innodb_log_file_size设置大小通常视innodb_buffer_pool_size而定。影响日志文件性能的变量是innodb_log_buffer_size,确保有足够大的日志缓冲区来保存脏数据在被写入到日志文件之前。
对于比较小的innodb_buffer_pool_size,建议是设置一样大。
但是,对于比较大的innodb_buffer_pool_size,不建议这么设置,这会存在一个潜在的问题,那就是当mysql挂掉时,恢复数据需要很久,造成大量的停机时间。官方文档的建议设置是innodb_buffer_pool_size/innodb_log_files_in_group。
[warning]innodb_log_file_size是静态的变量,需要以“干净”的方式更改并重新启动,否则mysql启动不起来。[/warning]
innodb_log_buffer_size
该变量将数据存导入到内存中,可以减少大量的IO资源消耗。当事务提交时,保存脏数据,后续在刷新到磁盘。当我们调整innodb_buffer_pool_size大小时,innodb_log_buffer_size和innodb_log_file_size也应该做出相应的调整。
innodb_log_files_in_group
该变量控制日志文件数。默认值为2。日志是以顺序的方式写入。
[warning]innodb_log_files_in_group是静态的变量,需要以“干净”的方式更改并重新启动,否则mysql启动不起来。[/warning]
添加和调整innodb
log文件步骤:
1.
停止mysql服务
view
source
print?
#
/etc/init.d/mysqld
stop
[warning]一定要正常的关闭。[/warning]2.
根据innodb_log_group_home_dir变量进入到日志目录下
view
source
print?
#
cd
/data/mysql_data
3.
备份旧的日志文件,以防不测便于回退
view
source
print?
#
mv
ib_logfile*
/backup/
4.
按照要求调整日志文件大小或数量并写入到my.cnf文件中
innodb_log_file_size调整日志文件大小。
innodb_log_files_in_group调整日志文件数量。
innodb_log_group_home_dir调整日志文件位于目录。
5.
重新启动mysql服务
该过程将会按照新的日志配置来创建日志文件。同时,注意查看mysql错误日志,来监控是否出错。
转载仅供参考,版权属于原作者。
kettle如何增量更新数据,有哪几种方式
增量更新,正常的都是使用时间戳去增量,主键增量次之,联合主键等 参考技术A kettle如何增量更新数据,有哪几种方式如果你用的是INNODB数据库,有一个最简单有效的调整,就是将INI文件里面的下面参数调整:
原始:
innodb_flush_log_at_trx_commit=1
调整为:
innodb_flush_log_at_trx_commit=2
以上是关于如何添加和调整mysql innodb log文件的主要内容,如果未能解决你的问题,请参考以下文章
调整innodb redo log files数目和大小的具体方法和步骤