如何安全地更改 MySQL innodb 变量'innodb_log_file_size'?

2023-02-09
前端之家小编收集整理的如何安全地更改 MySQL innodb 变量'innodb_log_file_size'?内容,希望整理的这个开发编程问题如何安全地更改 MySQL innodb 变量'innodb_log_file_size'?能够快速解决!

代码问题

是的,一旦 mysqld 关闭,删除日志文件是安全的

鉴于此,只需执行以下步骤:

mysql -uroot -p... -e"SET GLOBAL innodb_fast_shutdown = 0"
service mysql stop
mv /var/lib/mysql/ib_logfile[01] /tmp
service mysql start

启动 mysqld 将重新创建ib_logfile0ib_logfile1

试试看 !!!

在重做日志文件之前,它会干净地分页出 InnoDB 缓冲池中的所有数据,您应该在关机前大约 1 小时设置此选项:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

默认情况下,为 75(MySQL 5.5+)或 90(MySQL 5.5 之前)。将此设置为零可使脏页数保持在 InnoDB 缓冲池的 1% 以下。service mysql stop无论如何,表演都会这样做。此外,关机将完成重做日志中的所有剩余项目。要保留此选项,只需将其添加到 /etc/my.cnf:

[mysqld]
innodb_max_dirty_pages_pct = 0

更新了我的答案,因为我曾经重新启动 mysql 并停止 mysql 来执行此操作。现在,这一步骤至关重要,因为每个未提交的事务都可能在 InnoDB 事务日志内外有其他移动部分()。

请注意,将设置为 2 也会清除日志,但更多移动部件仍然存在,并在 mysqld 启动期间在崩溃恢复时被选中。最好设置为 0。

问题答案

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:starryrocklee#gmail.com (将#修改为@)

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


CREATE FILE 遇到操作系统错误 5(访问被拒绝。)
如何在一个查询中删除具有公共前缀的多个表?
多语句 TVF 与内联 TVF 性能
由于可能丢失数据,无法转换该值
SQL Server 数据库不收缩