最近还原生产的sql备份文件,验证备份的有效性,发现10来个g的数据,总需要还原两三天,受不了,研究了半天,发现修改mysql8.0的几个配置,可以大幅加快还原效率。如下:
[mysqld]
skip-log-bin
#log-bin="USER-20220912IO-bin"
innodb_buffer_pool_size=2G
innodb_log_file_size=2G
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=2
=========================================================================
skip-log-bin:还原过程不生成bin log日志文件,
#log-bin="USER-20220912IO-bin":一定要注释掉log-bin参数
innodb_buffer_pool_size=2G:写缓冲池配置2g内存
innodb_log_file_size=2G:日志大小配置2G
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit:配置为2
0(延迟写): log_buff --每隔1秒--> log_file —实时—> disk
1(实时写,实时刷): log_buff —实时—> log_file —实时—> disk
2(实时写,延迟刷): log_buff —实时—> log_file --每隔1秒--> disk
如此设置之后,在16g内存,i5, 固态硬盘的笔记本上,还原10g sql文件,时间可控制在1小时左右,节省很多时间