• MySQL启动关闭服务巨慢,这样解决!


    墨墨导读:正常情况下 MySQL 关闭启动服务的为什么会很慢?大家遇到过这种情况吗?作者将解决的详细过程分享至此,希望可以帮助到读者朋友。

    有一次,在客户现场,调优的时候发现配置128G内存服务器,但innodb_buffer_pool_size 设置 4G 和100G的情况下,发现关机启动的时候非常慢?突然蒙了,没碰到过这样的场景。带着疑问,就进行查证有如下设置。

    MySQL提供关闭启动热数据参数:

    show variables where variable_name  like 'innodb_buffer_pool_dump%' 
    or variable_name  like 'innodb_buffer_pool_load%';
    
    

    在MySQL5.6里一个新特性

    • innodb_buffer_pool_dump_at_shutdown = 1
      解释:在关闭时把热数据dump到本地磁盘。

    • innodb_buffer_pool_dump_now = 1
      解释:采用手工方式把热数据dump到本地磁盘。

    • innodb_buffer_pool_dump_pct
      解释:指定每个缓冲池最近使用的页面读取和转储的百分比。范围是1到100。默认值是25。例如,如果有4个缓冲池,每个缓冲池有100个page,并且innodb_buffer_pool_dump_pct设置为25,则dump每个缓冲池中最近使用的25个page。

    • innodb_buffer_pool_load_abort
      是否要中止缓冲池加载操作,默认是关闭的

    • innodb_buffer_pool_load_at_startup = 1
      解释:在启动时把热数据加载到内存。

    • innodb_buffer_pool_load_now = 1
      解释:采用手工方式把热数据加载到内存。

    保存缓冲区文件

    关闭MySQL时,会把内存中的热数据保存在磁盘里ib_buffer_pool文件中,位于redo日志存放的路径innodb_log_group_home_dir数据目录下。

    查看日志,会发现:

    在启动后,会自动加载热数据到Buffer_Pool缓冲池里。
    查看方式:显示加载时间

    mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
    

    手动加载
    参看配置参数(innodb_buffer_pool_load_at_startup)

    mysql> SHOW variables WHERE variable_name  like 'innodb_buffer_pool_dump%'
        -> or variable_name  like 'innodb_buffer_pool_load%';
    

    查看执行状态:没有进行加载

    mysql>SHOW STATUS LIKE 'Innodb_buffer_pool_load_status';
    

    手动进行加载:

    mysql> set global innodb_buffer_pool_load_now=1;
    

    这样,始终保持热数据在内存中。

    总结:
    只有在正常关闭MySQL服务,或者pkill mysql时,会把热数据dump到内存。机器宕机或者pkill -9 mysql,是不会dump。

    官方说明:https://dev.mysql.com/doc/refman/5.7/en/innodb-preload-buffer-pool.html

    墨天轮原文链接:https://www.modb.co/db/24698(复制到浏览器中打开或者点击“阅读原文”)

    推荐阅读:144页!分享珍藏已久的数据库技术年刊

    数据和云

    ID:OraNews

    如有收获,请划至底部,点击“在看”,谢谢!

    点击下图查看更多 ↓

    云和恩墨大讲堂 | 一个分享交流的地方

    长按,识别二维码,加入万人交流社群

    请备注:云和恩墨大讲堂

      点个“在看”

    你的喜欢会被看到❤

  • 相关阅读:
    Spring boot unable to determine jdbc url from datasouce
    Unable to create initial connections of pool. spring boot mysql
    spring boot MySQL Public Key Retrieval is not allowed
    spring boot no identifier specified for entity
    Establishing SSL connection without server's identity verification is not recommended
    eclipse unable to start within 45 seconds
    Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
    macOS 下安装tomcat
    在macOS 上添加 JAVA_HOME 环境变量
    Maven2: Missing artifact but jars are in place
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311682.html
Copyright © 2020-2023  润新知