当前位置:网站首页>How to reduce the shutdown time of InnoDB database?

How to reduce the shutdown time of InnoDB database?

2022-07-06 12:48:00 wx5caecf2ed0645


   We are using innodb When it comes to databases , You will find such a phenomenon , When we need to shut down or restart mysql In service , It will take quite a long time , If the database process shuts down abnormally , Opening the database will take a long time to recover .

    At first, I thought the database was too large , Later I saw an article about “innodb_max_dirty_pages_pct Relationship with checkpoints ” , To understand the truth . The usual reason is from buffer pool Dirty page data exchange ,mysql Will inform OS, Exchange some dirty pages , The exchange is to modify in memory , Not on the hard disk .



If you need to shut down quickly innodb database , Then there is a way , as follows :



1, Set global variables , Set up innodb_max_dirty_pages_pct The value of the parameter .

mysql> set global innodb_max_dirty_pages_pct = 0;



2, Execute the following command , View the modified data page .

/usr/local/mysql/bin/mysqladmin -uroot -p  ext -i10 | grep dirty

Enter password: 

| Innodb_buffer_pool_pages_dirty    | 4530        |

| Innodb_buffer_pool_pages_dirty    | 4576        |

| Innodb_buffer_pool_pages_dirty    | 4475        |

| Innodb_buffer_pool_pages_dirty    | 4496        |

| Innodb_buffer_pool_pages_dirty    | 4411        |



When this parameter becomes 0, Or close to 0( If your server is using , It won't become 0 Of ).

here , When this value is quite low , You can restart your database service , This is the time , You will find that the speed is quite fast .



Be careful :

    This is the sum of innodb buffer It has a lot to do with it , It is generally not recommended to change this value , Unless it's yours innodb buffer It's big . I have 3 Database servers , One set 3G Of innodb buffer Dirty page data in 1000 about , The other is 1G Of innodb buffer Dirty page in 4000 about ,, It seems that innodb buffer The bigger the better !


    Maybe you will say you can pass innodb_fast_shutdown This option adjusts the closing speed , The system defaults to 1, But if you change the value of this item to 0 perhaps 2,, In this way mysql It's dangerous .



The official description is as follows :


The InnoDB shutdown mode. By default, the value is 1, which causes a “fast” shutdown (the normal type of shutdown).


If the value is 0, InnoDB does a full purge and an insert buffer merge before a shutdown. These operations can take minutes, or even hours in extreme cases.


If the value is 1, InnoDB skips these operations at shutdown.


If the value is 2, InnoDB will just flush its logs and then shut down cold, as if MySQL had crashed; no committed transaction will be lost, but crash recovery will be done at the next startup. A value of 2 cannot be used on NetWare. 


原网站

版权声明
本文为[wx5caecf2ed0645]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131503431583.html