最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何安全地關(guān)閉MySQL

 更新時間:2020年12月17日 11:58:30   作者:abce  
這篇文章主要介紹了如何安全地關(guān)閉MySQL,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下

在關(guān)閉mysql server的時候,可能會由于關(guān)閉的方式而出現(xiàn)各種問題。下面的一些步驟,可以減少問題的發(fā)生。

1.停止復(fù)制

在一些特殊環(huán)境下,slave節(jié)點(diǎn)可能會嘗試從錯誤的位置(position)進(jìn)行啟動。為了減少這種風(fēng)險,要先停止io thread,從而不接收新的事件信息。

mysql> stop slave io_thread;

等sql thread應(yīng)用完所有的events之后,也將sql thread停掉。

mysql> show slave status\G
mysql> stop slave sql_thread;

這樣io thread和sql thread就可以處于一致性位置,這樣relay log就只是包含被執(zhí)行過的events,relay_log_info_repository中的位置信息也是最新的。

對于開啟了多線程復(fù)制的slave,確保在關(guān)閉復(fù)制之前,已經(jīng)填充了gaps

mysql> stop slave;
mysql> start slave until sql_after_mts_gaps; #應(yīng)用完relay log中的gap
mysql> show slave status\G #要確保在之前已經(jīng)停掉了sql_thread
mysql> stop slave ;

2.提交、回滾或kill長時間運(yùn)行的事務(wù)

1分鐘內(nèi)可以發(fā)生很多事,在關(guān)閉時,innodb必須回滾未提交的事務(wù)。事務(wù)回滾的代價是非常昂貴的,可能會花費(fèi)很長時間。任何事務(wù)回滾都可能意味著數(shù)據(jù)丟失,因此理想情況下關(guān)閉時沒有打開任何事務(wù)。

如果關(guān)閉的是讀寫的數(shù)據(jù)庫,寫操作應(yīng)該提前路由到其他節(jié)點(diǎn)。如果必須關(guān)閉還在接收事務(wù)的數(shù)據(jù)庫,下面的查詢會輸出運(yùn)行時間大于60秒的會話信息。根據(jù)這些信息再決定下一步:

mysql> SELECT trx_id, trx_started, (NOW() - trx_started) trx_duration_seconds, id processlist_id, user, IF(LEFT(HOST, (LOCATE(':', host) - 1)) = '', host, LEFT(HOST, (LOCATE(':', host) - 1))) host, command, time, REPLACE(SUBSTRING(info,1,25),'\n','') info_25 FROM information_schema.innodb_trx JOIN information_schema.processlist ON innodb_trx.trx_mysql_thread_id = processlist.id WHERE (NOW() - trx_started) > 60 ORDER BY trx_started;
+--------+---------------------+----------------------+----------------+------+-----------+---------+------+---------------------------+
| trx_id | trx_started         | trx_duration_seconds | processlist_id | user | host      | command | time | info_25                   |
+--------+---------------------+----------------------+----------------+------+-----------+---------+------+---------------------------+
| 511239 | 2020-04-22 16:52:23 |                 2754 |           3515 | dba  | localhost | Sleep   | 1101 | NULL                      |
| 511240 | 2020-04-22 16:53:44 |                   74 |           3553 | root | localhost | Query   |   38 | update t1 set name="test" |
+--------+---------------------+----------------------+----------------+------+-----------+---------+------+---------------------------+
2 rows in set (0.00 sec)

3.清空processlist

mysql要斷開連接并關(guān)閉了。我們可以手動幫助mysql一下。

使用pt-kill查看并殺死活躍和睡眠狀態(tài)的連接。這時應(yīng)該不會有新的寫連接進(jìn)來。我們只是處理讀的連接。

pt-kill --host="localhost" --victims="all" --interval=10 --ignore-user="pmm|orchestrator" --busy-time=1 --idle-time=1 --print [--kill]

這里可以選擇性地排除某些用戶建立的連接。

4.配置innodb完成最大刷新(flush)

SET GLOBAL innodb_fast_shutdown=0;
SET GLOBAL innodb_max_dirty_pages_pct=0;
SET GLOBAL innodb_change_buffering='none';

disable掉innodb_fast_shutdown可能會使得關(guān)閉過程花費(fèi)幾分鐘甚至個把小時,因?yàn)樾枰却齯ndo log的purge和changebuffer的merge。

為了加速關(guān)閉,設(shè)置innodb_max_dirty_pages_pct=0并監(jiān)控下面查詢的結(jié)果。期望值是0,但并不總是能保證,如果mysql中還有活動的話。那么,查出的結(jié)果不再繼續(xù)變小的話,就可以繼續(xù)下一步了:

SHOW GLOBAL STATUS LIKE '%dirty%';

如果使用了pmm監(jiān)控,可以查看“innodb change buffer”的圖示。

5.轉(zhuǎn)儲buffer pool中的內(nèi)容

SET GLOBAL innodb_buffer_pool_dump_pct=75;
SET GLOBAL innodb_buffer_pool_dump_now=ON;
mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';
+--------------------------------+--------------------------------------------------+
| Variable_name                  | Value                                            |
+--------------------------------+--------------------------------------------------+
| Innodb_buffer_pool_dump_status | Buffer pool(s) dump completed at 200429 14:04:47 |
+--------------------------------+--------------------------------------------------+
1 row in set (0.01 sec)

啟動的時候,要想加載轉(zhuǎn)儲出的內(nèi)容,要檢查一下參數(shù)innodb_buffer_pool_load_at_startup的配置。

6.刷日志

FLUSH LOGS;

現(xiàn)在,就可以關(guān)閉mysql了。

大多時候,我們只是執(zhí)行stop命令,MySQL關(guān)閉并重啟都是很正常的。偶爾也會遇到一些問題。

以上就是如何安全地關(guān)閉MySQL的詳細(xì)內(nèi)容,更多關(guān)于安全關(guān)閉MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL的driverClassName與url使用方式

    MySQL的driverClassName與url使用方式

    這篇文章主要介紹了MySQL的driverClassName與url使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • mysql下修改engine引擎的方法

    mysql下修改engine引擎的方法

    修改mysql的引擎為INNODB,可以使用外鍵,事務(wù)等功能,性能高。
    2011-08-08
  • MySQL修改密碼方法匯總

    MySQL修改密碼方法匯總

    本文中小編給大家匯總介紹了MySQL修改密碼的方法,分為MySQL5.7版本之前以及MySQL5.7版本之后的修改方法,有需要的小伙伴可以參考下
    2018-08-08
  • 詳解mysql?bit/json/enum/set?的數(shù)據(jù)存儲

    詳解mysql?bit/json/enum/set?的數(shù)據(jù)存儲

    這篇文章主要介紹了mysql?bit/json/enum/set?的數(shù)據(jù)存儲,探究的主要內(nèi)容為 int 類類型的存儲, 浮點(diǎn)類類型的存儲, char 類類型的存儲, blob 類類型的存儲, enum/json/set/bit 類類型的存儲,需要的朋友可以參考下
    2023-09-09
  • MySQL聯(lián)合索引遵循最左前綴匹配原則

    MySQL聯(lián)合索引遵循最左前綴匹配原則

    這篇文章主要介紹了MySQL聯(lián)合索引遵循最左前綴匹配原則,?MySQL聯(lián)合索引遵循最左前綴匹配原則,即最左優(yōu)先,查詢的時候會優(yōu)先匹配最左邊的索引
    2022-08-08
  • mysql刪除語句超詳細(xì)匯總

    mysql刪除語句超詳細(xì)匯總

    這篇文章主要給大家介紹了關(guān)于mysql刪除語句超詳細(xì)匯總的相關(guān)資料,SQL是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計算機(jī)語言,簡稱結(jié)構(gòu)化查詢語言,SQL中的刪除語句有多種方法,這里總結(jié)下,需要的朋友可以參考下
    2023-08-08
  • mysql導(dǎo)入sql文件失敗的解決方案

    mysql導(dǎo)入sql文件失敗的解決方案

    這篇文章主要介紹了mysql導(dǎo)入sql文件失敗的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 探討Mysql中OPTIMIZE TABLE的作用詳解

    探討Mysql中OPTIMIZE TABLE的作用詳解

    本篇文章是對Mysql中OPTIMIZE TABLE的作用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Mysql Data目錄和 Binlog 目錄 搬遷的方法

    Mysql Data目錄和 Binlog 目錄 搬遷的方法

    剛開始安裝時使用了默認(rèn)目錄,使用一段時間,數(shù)據(jù)慢慢變在,發(fā)現(xiàn)當(dāng)前設(shè)置的目錄空間不夠時,就要搬遷數(shù)據(jù)到另一個目錄了
    2011-10-10
  • 詳解mysql數(shù)據(jù)庫中文亂碼問題

    詳解mysql數(shù)據(jù)庫中文亂碼問題

    這篇文章主要介紹了詳解mysql數(shù)據(jù)庫中文亂碼問題的相關(guān)資料,需要的朋友可以參考下
    2017-10-10

最新評論

金塔县| 德化县| 长春市| 禄劝| 黑山县| 大石桥市| 都昌县| 阿图什市| 静安区| 三原县| 嘉定区| 宜丰县| 色达县| 巍山| 青河县| 永兴县| 宣威市| 区。| 准格尔旗| 宁都县| 克什克腾旗| 亚东县| 谷城县| 仁布县| 贵阳市| 建湖县| 张家界市| 南木林县| 江西省| 商水县| 彰武县| 筠连县| 铅山县| 兴国县| 甘孜县| 荥阳市| 北辰区| 潍坊市| 徐闻县| 杭锦后旗| 彭山县|