mysql参数innodb_flush_log_at_trx_commit
2017-09-06 14:37
369 查看
查看mysql数据库innodb_flush_log_at_trx_commit :
参考资料:https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
Controls the balance between strict ACID compliance for commit operations and higher performance that is possible when commit-related I/O operations are rearranged and done in batches. You can achieve better performance by changing the default value but then you can lose up to a second of transactions in a crash.
The default value of 1 is required for full ACID compliance. With this value, the contents of the
With a value of 0, the contents of the
With a value of 2, the contents of the
DDL changes and other internal
For durability and consistency in a replication setup that uses
If binary logging is enabled, set
Always set
Caution
Many operating systems and some disk hardware fool the flush-to-disk operation. They may tell mysqld that the flush has taken place, even though it has not. In this case, the durability of transactions is not guaranteed even with the setting 1, and in the worst case, a power outage can corrupt
命令查看:mysqld --verbose --help
可通过命令设置,也可通过my.cnf配置.
mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_flush_log%'; +--------------------------------+-------+ | Variable_name | Value | +--------------------------------+-------+ | innodb_flush_log_at_timeout | 1 | | innodb_flush_log_at_trx_commit | 1 | +--------------------------------+-------+ 2 rows in set (0.00 sec) mysql>
参考资料:https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
innodb_flush_log_at_trx_commit
Command-Line Format | --innodb-flush-log-at-trx-commit[=#] | |
System Variable | Name | innodb_flush_log_at_trx_commit |
Variable Scope | Global | |
Dynamic Variable | Yes | |
Permitted Values | Type | enumeration |
Default | 1 | |
Valid Values | 0 | |
1 | ||
2 |
The default value of 1 is required for full ACID compliance. With this value, the contents of the
InnoDBlog buffer are written out to the log file at each transaction commit and the log file is flushed to disk.
With a value of 0, the contents of the
InnoDBlog buffer are written to the log file approximately once per second and the log file is flushed to disk. No writes from the log buffer to the log file are performed at transaction commit. Once-per-second flushing is not guaranteed to happen every second due to process scheduling issues. Because the flush to disk operation only occurs approximately once per second, you can lose up to a second of transactions with any mysqld process crash.
With a value of 2, the contents of the
InnoDBlog buffer are written to the log file after each transaction commit and the log file is flushed to disk approximately once per second. Once-per-second flushing is not 100% guaranteed to happen every second, due to process scheduling issues. Because the flush to disk operation only occurs approximately once per second, you can lose up to a second of transactions in an operating system crash or a power outage.
InnoDBlog flushing frequency is controlled by
innodb_flush_log_at_timeout, which allows you to set log flushing frequency to
Nseconds (where
Nis
1 ... 2700, with a default value of 1). However, any mysqld process crash can erase up to
Nseconds of transactions.
DDL changes and other internal
InnoDBactivities flush the
InnoDBlog independent of the
innodb_flush_log_at_trx_commitsetting.
InnoDBcrash recovery works regardless of the
innodb_flush_log_at_trx_commitsetting. Transactions are either applied entirely or erased entirely.
For durability and consistency in a replication setup that uses
InnoDBwith transactions:
If binary logging is enabled, set
sync_binlog=1.
Always set
innodb_flush_log_at_trx_commit=1.
Caution
Many operating systems and some disk hardware fool the flush-to-disk operation. They may tell mysqld that the flush has taken place, even though it has not. In this case, the durability of transactions is not guaranteed even with the setting 1, and in the worst case, a power outage can corrupt
InnoDBdata. Using a battery-backed disk cache in the SCSI disk controller or in the disk itself speeds up file flushes, and makes the operation safer. You can also try to disable the caching of disk writes in hardware caches.
命令查看:mysqld --verbose --help
可通过命令设置,也可通过my.cnf配置.
--innodb-flush-log-at-trx-commit[=#] Set to 0 (write and flush once per second), 1 (write and flush at each commit) or 2 (write at commit, flush once per second).
相关文章推荐
- MySQL参数:innodb_flush_log_at_trx_commit 和 sync_binlog
- MySQL HA架构下innodb_flush_log_at_trx_commit及sync_binlog参数
- 10015---MySQL--innodb_flush_log_at_trx_commit参数
- MySQL参数:innodb_flush_log_at_trx_commit 和 sync_binlog
- mysql mysql的innodb_flush_log_at_trx_commit参数深有体会
- mysql mysql的innodb_flush_log_at_trx_commit参数深有体会
- mysql 性能参数 innodb_flush_log_at_trx_commit
- mysql的innodb_flush_log_at_trx_commit参数深有体会
- 有关mysql的innodb_flush_log_at_trx_commit参数【转】
- 有关mysql的innodb_flush_log_at_trx_commit参数
- 有关mysql的innodb_flush_log_at_trx_commit参数
- mysql之sync_binlog和innodb_flush_log_at_trx_commit参数浅析
- mysql mysql的innodb_flush_log_at_trx_commit参数深有体会
- MySQL 重要参数 innodb_flush_log_at_trx_commit 和 sync_binlog
- [MySQL] 参数: innodb_flush_log_at_trx_commit和sync_binlog
- mysql 参数 innodb_flush_log_at_trx_commit
- mysql 性能参数 innodb_flush_log_at_trx_commit
- mysql的innodb_flush_log_at_trx_commit参数深有体会
- MySQL的innodb_flush_log_at_trx_commit
- mysql的innodb_flush_log_at_trx_commit