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

詳解MySQL如何使用離線模式維護(hù)服務(wù)器

 更新時(shí)間:2023年10月10日 10:13:25   作者:愛可生開源社區(qū)  
這篇文章主要為大家介紹了MySQL如何使用離線模式維護(hù)服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

離線模式

作為 DBA,最常見的任務(wù)之一就是批量處理 MySQL 服務(wù)的啟?;蚱渌恍┗顒?。在停止 MySQL 服務(wù)前,我們可能需要檢查是否有活動連接;如果有,我們可能需要把它們?nèi)繗⑺?。通常,我們使?nbsp;pt-kill 殺死應(yīng)用連接或使用 SELECT 語句查詢準(zhǔn)備殺死語句。例如:

pt-kill --host=192.168.11.11 --user=percona -p --sentinel /tmp/pt-kill.sentinel2 --pid /tmp/pt-kill.pid --victims all --match-command 'Query' --ignore-user 'pmm|rdsadmin|system_user|percona' --busy-time 10 --verbose --print --kill
select concat('kill ',id,';') from information_schema.processlist where user='app_user';

MySQL 有一個名為 offline_mode 的變量來將服務(wù)器設(shè)置為維護(hù)模式。設(shè)置此選項(xiàng)后,它會立即斷開所有不具有 SYSTEM_VARIABLES_ADMIN 和 CONNECTION_ADMIN 權(quán)限的客戶端連接,并且不允許新連接,除非用戶擁有這些權(quán)限。如果您手動終止連接或使用 pt-kill,則無法避免新連接的創(chuàng)建。但通過使用這種模式,我們可以避免新的連接。這是一個全局動態(tài)變量,我們可以在服務(wù)器運(yùn)行時(shí)設(shè)置此模式。

啟用 offline_mode

要啟用 offline_mode,用戶帳戶必須具有 SYSTEM_VARIABLES_ADMIN* 權(quán)限和 CONNECTION_ADMIN 權(quán)限(或已棄用的 SUPER 權(quán)限,它涵蓋了這兩個權(quán)限)。CONNECTION_ADMIN 從 MySQL 8.0.31 開始是必需的,并建議在所有版本中使用,以防止意外鎖定。讓我們測試一下。

要對此進(jìn)行測試,請創(chuàng)建一個新用戶 app_user,該用戶僅具有 DDL/DML 權(quán)限。

mysql> create user app_user identified by 'App@!234TEst';
Query OK, 0 rows affected (0.20 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP , REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE,CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE on *.* to app_user;
Query OK, 0 rows affected (0.00 sec)

使用 aap_user 用戶啟動 sysbench 工具

[root@centos12 vagrant]# sysbench /usr/share/sysbench/oltp_read_write.lua --threads=10 --time=100? --mysql-db=sysbench --mysql-user=app_user --mysql-password='App@!234TEst' run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 10
Initializing random number generator from current time
Initializing worker threads...
mysql> show processlist;
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 2151 | Waiting for next activation | NULL | 2151034 | 0 | 0 |
| 9 | bhuvan | 192.168.33.11:50642 | NULL | Binlog Dump | 2102 | Source has sent all binlog to replica; waiting for more updates | NULL | 2102317 | 0 | 0 |
| 14 | bhuvan | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 | 0 |
| 20 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 11 | 0 | 0 |
| 21 | app_user | localhost | sysbench | Execute | 0 | updating | DELETE FROM sbtest1 WHERE id=5000 | 6 | 0 | 0 |
| 23 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 8 | 0 | 0 |
| 24 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 18 | 0 | 0 |
| 25 | app_user | localhost | sysbench | Execute | 0 | updating | UPDATE sbtest1 SET c='99153469917-25523144931-18125321038-96151238215-88445737418-14906501975-136014 | 13 | 0 | 0 |
| 27 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 7 | 0 | 0 |
| 28 | app_user | localhost | sysbench | Execute | 0 | statistics | SELECT c FROM sbtest1 WHERE id=5003 | 0 | 0 | 0 |
| 29 | app_user | localhost | sysbench | Execute | 0 | updating | UPDATE sbtest1 SET c='84180675456-88426921120-90373546373-84823361786-77912396694-08592771856-912331 | 13 | 0 | 0 |
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
13 rows in set (0.00 sec)

當(dāng) sysbench 運(yùn)行時(shí),設(shè)置 offline_mode=ON,來自 sysbech with Sysbench") 的所有連接都將被終止。您將在 sysbench 中看到錯誤。

mysql> select @@offline_mode;
+----------------+
| @@offline_mode |
+----------------+
| 0 |
+----------------+
1 row in set (0.15 sec)
mysql> set global offline_mode=1;
Query OK, 0 rows affected (0.15 sec)
mysql> show processlist;
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 2178 | Waiting for next activation | NULL | 2178008 | 0 | 0 |
| 9 | bhuvan | 192.168.33.11:50642 | NULL | Binlog Dump | 2129 | Source has sent all binlog to replica; waiting for more updates | NULL | 2129291 | 0 | 0 |
| 14 | bhuvan | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 | 0 |
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
3 rows in set (0.01 sec)

如果您在 offline_mode=1 時(shí)嘗試使用 app_user 連接數(shù)據(jù)庫,它將不允許連接并收到一條錯誤消息,表明服務(wù)器當(dāng)前處于離線模式。這個 offline_mode 不會影響復(fù)制??梢钥吹缴厦娴?processlist 日志,當(dāng)我們設(shè)置 offline_mode=1 時(shí),復(fù)制線程并沒有斷開。要禁用 offline_mode,請將值設(shè)置為 0。

mysql> set global offline_mode=0;
Query OK, 0 rows affected (0.00 sec)

結(jié)論

offline_mode 是將服務(wù)器置于維護(hù)模式的一個不錯的選擇。只需確保應(yīng)用程序用戶沒有管理員權(quán)限,只有管理員有。我們可以在以下情況下使用 offline_mode

  • 在將數(shù)據(jù)庫服務(wù)器取出進(jìn)行維護(hù)或其相關(guān)活動之前,請?jiān)谂渲梦募羞M(jìn)行更改并保持此模式,直到所有活動完成。
  • 在從服務(wù)器進(jìn)行備份時(shí),我們可以設(shè)置這個 offline_mode,以避免服務(wù)器的負(fù)載,使備份速度更快。
  • 如果由于大量查詢而導(dǎo)致副本上出現(xiàn)大量復(fù)制,我們可以設(shè)置此模式,直到復(fù)制與主服務(wù)器同步。
  • 當(dāng)您想立即終止所有應(yīng)用程序連接時(shí)。

譯自:https://www.percona.com/blog/mysql-offline-mode-to-disconnect...

以上就是MySQL 如何使用離線模式維護(hù)服務(wù)器的詳細(xì)內(nèi)容,更多關(guān)于MySQL 如何使用離線模式維護(hù)服務(wù)器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL基本命令、常用命令總結(jié)

    MySQL基本命令、常用命令總結(jié)

    這篇文章主要介紹了MySQL基本命令、常用命令總結(jié),需要的朋友可以參考下
    2014-03-03
  • 在MySQL中實(shí)現(xiàn)冷熱數(shù)據(jù)分離的方法及使用場景底層原理解析

    在MySQL中實(shí)現(xiàn)冷熱數(shù)據(jù)分離的方法及使用場景底層原理解析

    MySQL冷熱數(shù)據(jù)分離通過分表/分區(qū)策略、數(shù)據(jù)歸檔和索引優(yōu)化,將頻繁訪問的熱數(shù)據(jù)與冷數(shù)據(jù)分開存儲,提升查詢效率并降低存儲成本,適用于高并發(fā)交易、數(shù)據(jù)分析和日志管理等場景,感興趣的朋友跟隨小編一起看看吧
    2025-07-07
  • Mysql的水平分表與垂直分表的講解

    Mysql的水平分表與垂直分表的講解

    今天小編就為大家分享一篇關(guān)于Mysql的水平分表與垂直分表的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL中因字段字符集不同導(dǎo)致索引不能命中的解決方法

    MySQL中因字段字符集不同導(dǎo)致索引不能命中的解決方法

    這篇文章主要給大家介紹了關(guān)于MySQL中因字段字符集不同導(dǎo)致索引不能命中的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • mysql8.0.30用戶與權(quán)限管理的實(shí)踐

    mysql8.0.30用戶與權(quán)限管理的實(shí)踐

    MySQL8.0新加了很多功能,其中在用戶管理中增加了角色的管理,本文主要介紹了mysql8.0.30用戶與權(quán)限管理的實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • MySQL 使用 ORDER BY 排序和 DELETE 刪除記錄的操作過程

    MySQL 使用 ORDER BY 排序和 DELETE 刪

    這篇文章主要介紹了MySQL 使用 ORDER BY 排序和 DELETE 刪除記錄的操作過程,即數(shù)據(jù)庫查詢與數(shù)據(jù)操作,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-11-11
  • MySQL?數(shù)據(jù)庫的約束及數(shù)據(jù)表的設(shè)計(jì)原理

    MySQL?數(shù)據(jù)庫的約束及數(shù)據(jù)表的設(shè)計(jì)原理

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫的約束及數(shù)據(jù)表的設(shè)計(jì)原理,數(shù)據(jù)庫中的約束即是對插入數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行限定,為了保證數(shù)據(jù)的有效性和完整性,下面一起來了解具體的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2021-12-12
  • MySQL的復(fù)合索引總結(jié)

    MySQL的復(fù)合索引總結(jié)

    這篇文章主要介紹了MySQL的復(fù)合索引總結(jié),針對索引進(jìn)行一些優(yōu)化。一些表結(jié)構(gòu)本身已經(jīng)有了不少索引,如果再繼續(xù)添加索引,勢必會影響到插入數(shù)據(jù)的性能,需要的朋友可以參考一下
    2021-12-12
  • MySQL教程數(shù)據(jù)定義語言DDL示例詳解

    MySQL教程數(shù)據(jù)定義語言DDL示例詳解

    這篇文章主要為大家介紹了MySQL教程中什么是數(shù)據(jù)定義語言DDL的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • 為什么說MySQL不建議使用delete刪除數(shù)據(jù)

    為什么說MySQL不建議使用delete刪除數(shù)據(jù)

    MySQL的DELETE語句是數(shù)據(jù)刪除的核心工具,支持條件刪除、多表關(guān)聯(lián)刪除及條數(shù)限制等高級功能,這篇文章主要介紹了為什么MySQL不建議使用delete刪除數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03

最新評論

凤凰县| 孟州市| 阿坝县| 绵竹市| 贺州市| 黄陵县| 淮安市| 寻甸| 北海市| 芷江| 徐水县| 乌恰县| 来宾市| 平和县| 陇南市| 镇平县| 望谟县| 育儿| 广丰县| 仪陇县| 靖安县| 蒙阴县| 临漳县| 周至县| 龙南县| 谢通门县| 黄陵县| 太仆寺旗| 高雄县| 中山市| 金堂县| 皋兰县| 宣武区| 横山县| 苍南县| 泰顺县| 沙湾县| 岑溪市| 油尖旺区| 河北区| 兴和县|