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

MySQL InnoDB Cluster 常見管理命令

 更新時間:2026年04月07日 10:02:04   作者:·云揚·  
本文基于實際操作場景,整理了 InnoDB Cluster 日常管理中高頻使用的命令,涵蓋連接、狀態(tài)查詢、成員管理、主從切換等核心操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

InnoDB Cluster 是 MySQL 官方推出的高可用解決方案,整合了 MySQL Server、MySQL Shell 和 MySQL Router 等組件,能實現(xiàn)集群的自動故障轉(zhuǎn)移、成員管理與模式切換,極大簡化了 MySQL 高可用架構(gòu)的部署與運維。本文基于實際操作場景,整理了 InnoDB Cluster 日常管理中高頻使用的命令,涵蓋連接、狀態(tài)查詢、成員管理、主從切換等核心操作,助力運維人員高效管控集群。

一、基礎(chǔ)準(zhǔn)備:連接 MySQL 實例

所有集群管理操作需通過 MySQL Shell 連接到集群中的任一實例(建議優(yōu)先連接主節(jié)點,如示例中的 192.168.184.151),命令格式如下:

# 格式:mysqlsh -u[用戶名] -p'[密碼]' -h[實例IP] -P[端口,默認3306可省略]
mysqlsh -umgr_user -p'BgIka^123' -h192.168.184.151

注意:實際使用時需替換 mgr_user(集群管理用戶)、BgIka^123(用戶密碼)和 192.168.184.151(實例IP)為自身環(huán)境信息,密碼建議避免明文輸入,可省略 -p 后手動交互輸入。

二、集群狀態(tài)與結(jié)構(gòu)查詢

連接實例后,需先定義集群變量(后續(xù)操作通過該變量調(diào)用集群方法),再執(zhí)行狀態(tài)、結(jié)構(gòu)與配置的查詢命令,掌握集群當(dāng)前健康度。

1. 定義集群變量

首次操作需通過集群名稱(示例為 Cluster01)獲取集群對象,后續(xù)命令可直接通過 cluster 變量調(diào)用:

# 格式:var cluster = dba.getCluster('[集群名稱]')
var cluster = dba.getCluster('Cluster01')

2. 查看集群整體狀態(tài)

查詢集群成員列表、角色(主/從)、健康狀態(tài)、復(fù)制狀態(tài)等核心信息,是運維中最常用的檢查命令:

cluster.status();

執(zhí)行后會返回類似如下關(guān)鍵信息:

  • 集群名稱與版本
  • 各成員實例的 IP:端口、角色(PRIMARY/SECONDARY)
  • 復(fù)制同步狀態(tài)(SYNCED/ERROR)
  • 集群整體健康度(OK/WARNING/ERROR)

3. 顯示集群詳細結(jié)構(gòu)

查看集群成員的具體配置(如實例地址、權(quán)重、故障轉(zhuǎn)移優(yōu)先級等),便于確認成員屬性:

cluster.describe();

4. 查看集群配置選項

查詢集群的全局配置,如故障轉(zhuǎn)移超時時間、復(fù)制延遲閾值、多主模式開關(guān)等:

cluster.options();

三、集群成員管理:增刪實例

根據(jù)業(yè)務(wù)需求(如擴容、下線故障實例),需對集群成員進行添加或移除操作,操作前建議先通過 cluster.status() 確認目標(biāo)實例狀態(tài)。

1. 移除集群成員

移除實例前需確保該實例處于 SECONDARY 角色(主節(jié)點需先切換角色),命令支持 IP:端口主機名:端口 兩種格式:

# 1. 先確認集群狀態(tài),找到目標(biāo)實例(示例為 192.168.184.153)
cluster.status();
# 2. 移除實例(二選一,根據(jù)環(huán)境選擇地址格式)
cluster.removeInstance('mgr_user@192.168.184.153:3306');
# 或使用主機名(需確保主機間能解析)
cluster.removeInstance('mgr_user@maria-03:3306');
# 3. 移除后再次確認狀態(tài),確保實例已從集群中刪除
cluster.status();

2. 添加集群成員

添加新實例前需確保:實例已初始化、與集群其他節(jié)點網(wǎng)絡(luò)互通、數(shù)據(jù)已同步(或支持自動增量同步),命令格式與移除類似:

# 二選一,添加 192.168.184.153 實例到集群
cluster.addInstance('mgr_user@192.168.184.153:3306');
# 或使用主機名
cluster.addInstance('mgr_user@maria-03:3306');

添加成功后,新實例會自動加入復(fù)制集群,角色默認為 SECONDARY。

四、主節(jié)點管理:手動切換與模式切換

InnoDB Cluster 支持 單主模式(默認,僅一個 PRIMARY 節(jié)點)和 多主模式(多個 PRIMARY 節(jié)點,支持并行寫入),可根據(jù)業(yè)務(wù)寫入需求切換模式,或手動指定主節(jié)點。

1. 手動切換主節(jié)點(單主模式下)

當(dāng)原主節(jié)點需維護(如升級)時,可手動將 SECONDARY 節(jié)點切換為新主節(jié)點,命令如下:

# 格式:cluster.setPrimaryInstance('管理用戶@目標(biāo)實例地址')
cluster.setPrimaryInstance('mgr_user@192.168.184.153:3306');
# 或使用主機名
cluster.setPrimaryInstance('mgr_user@maria-03:3306');

注意:切換過程中集群會短暫停止寫入,建議在業(yè)務(wù)低峰期執(zhí)行,且確保目標(biāo)節(jié)點數(shù)據(jù)與原主節(jié)點完全同步。

2. 切換為多主模式

多主模式適用于分布式寫入場景(需確保業(yè)務(wù)無寫入沖突),切換命令需在主節(jié)點的 MySQL Shell 中執(zhí)行:

# 在 192.168.184.151(原主節(jié)點)的 MySQL Shell 中執(zhí)行
cluster.switchToMultiPrimaryMode();
# 查看切換后狀態(tài)(所有節(jié)點角色變?yōu)?PRIMARY)
cluster.status();

3. 切換回單主模式

若業(yè)務(wù)不再需要多主寫入,可切換回單主模式,并指定新的主節(jié)點(示例為 maria-01:3306):

# 格式:cluster.switchToSinglePrimaryMode('目標(biāo)主節(jié)點地址')
cluster.switchToSinglePrimaryMode('maria-01:3306');
# 查看切換后狀態(tài)(僅指定節(jié)點為 PRIMARY,其余為 SECONDARY)
cluster.status();

五、復(fù)制與成員信息深度查詢

1. 查看復(fù)制統(tǒng)計信息

通過查詢 MySQL 系統(tǒng)表 performance_schema.replication_group_member_stats,可監(jiān)控 MySQL 組復(fù)制(Group Replication)中單個成員節(jié)點的事務(wù)處理狀態(tài)、沖突情況及隊列信息,是排查復(fù)制延遲、數(shù)據(jù)一致性問題的關(guān)鍵視圖。以下逐字段解析含義,并結(jié)合示例數(shù)據(jù)說明實際意義:

SELECT * FROM performance_schema.replication_group_member_stats\G

  1. 基礎(chǔ)標(biāo)識字段(定位成員與復(fù)制通道)
字段名含義示例解讀
CHANNEL_NAME復(fù)制通道名稱,組復(fù)制默認使用 group_replication_applier 通道(負責(zé)“應(yīng)用”從其他成員同步過來的事務(wù))。示例值 group_replication_applier 表示該統(tǒng)計數(shù)據(jù)對應(yīng)組復(fù)制的默認應(yīng)用通道,無自定義通道配置。
VIEW_ID組復(fù)制的“視圖ID”,用于標(biāo)識當(dāng)前集群的成員拓撲(成員加入/離開會導(dǎo)致視圖ID更新,格式為 [集群初始化ID]:[視圖版本號])。示例值 17648371625947332:7 表示:
- 前半段 17648371625947332 是集群初始化時生成的唯一ID;
- 后半段 7 表示當(dāng)前是第7版成員視圖(集群曾有6次成員變更,如節(jié)點加入/退出)。
MEMBER_ID組復(fù)制成員節(jié)點的唯一ID(UUID格式),與 performance_schema.replication_group_members 表的 MEMBER_ID 一一對應(yīng),用于定位具體節(jié)點。示例值 532e3c83-d0c0-11f0-8a53-000c29aab861 是當(dāng)前查詢節(jié)點的UUID,可通過它關(guān)聯(lián)查詢節(jié)點的IP、端口等基礎(chǔ)信息。
  1. 事務(wù)隊列與校驗統(tǒng)計(監(jiān)控事務(wù)流轉(zhuǎn)效率)
字段名含義示例解讀
COUNT_TRANSACTIONS_IN_QUEUE已從其他成員接收、但尚未開始校驗和應(yīng)用的事務(wù)數(shù)量(隊列長度)。示例值 0 表示無待處理事務(wù),隊列無積壓,復(fù)制延遲風(fēng)險低。若該值持續(xù)增長,可能是CPU資源不足或事務(wù)執(zhí)行緩慢導(dǎo)致應(yīng)用阻塞。
COUNT_TRANSACTIONS_CHECKED節(jié)點已接收并完成一致性校驗的事務(wù)總數(shù)(包括本地發(fā)起和遠程同步的事務(wù))。示例值 6 表示當(dāng)前節(jié)點累計校驗了6個事務(wù),所有事務(wù)均通過“是否與其他成員沖突”的校驗。
COUNT_CONFLICTS_DETECTED校驗過程中檢測到的事務(wù)沖突總數(shù)(組復(fù)制核心指標(biāo),沖突會導(dǎo)致事務(wù)回滾或重試)。示例值 0 表示無沖突事務(wù),集群數(shù)據(jù)一致性良好。若該值大于0,需排查沖突原因(如多節(jié)點同時修改同一行數(shù)據(jù),未合理設(shè)計主鍵或唯一索引)。
COUNT_TRANSACTIONS_ROWS_VALIDATING校驗時需要比對行數(shù)據(jù)的事務(wù)數(shù)量(僅當(dāng)事務(wù)修改數(shù)據(jù)時觸發(fā),只讀事務(wù)無需行校驗)。示例值 1 表示有1個事務(wù)在校驗階段需要比對具體行的數(shù)據(jù)(確認是否被其他節(jié)點修改),其余5個事務(wù)可能是只讀或無需行校驗的操作。
  1. 事務(wù)提交與沖突歷史(追溯數(shù)據(jù)一致性狀態(tài))
字段名含義示例解讀
TRANSACTIONS_COMMITTED_ALL_MEMBERS已在集群所有成員節(jié)點上成功提交的事務(wù)ID列表(格式為 [發(fā)起節(jié)點UUID]:[事務(wù)序列號范圍])。示例值包含3段事務(wù):
1. 1c783805-d0da-11f0-87d1-000c295cba4b:1-1126:來自節(jié)點A的事務(wù)1~1126;
2. aec1a885-d0c0-11f0-84c1-000c295cba4b:1-8:來自節(jié)點B的事務(wù)1~8;
3. cc759266-d0eb-11f0-915e-000c295cba4b:1-55:1000053:來自節(jié)點C的事務(wù)1~55和1000053(可能是間隙事務(wù)或特殊標(biāo)記)。
這些事務(wù)已在所有節(jié)點提交,集群數(shù)據(jù)完全一致。
LAST_CONFLICT_FREE_TRANSACTION最近一個無沖突提交的事務(wù)ID(若從未發(fā)生沖突,則為最新提交的事務(wù))。示例值 cc759266-d0eb-11f0-915e-000c295cba4b:55 表示:最近一次無沖突提交的事務(wù)是節(jié)點C的第55號事務(wù),后續(xù)無新沖突(與 COUNT_CONFLICTS_DETECTED=0 一致)。
  1. 本地與遠程事務(wù)細分(區(qū)分事務(wù)來源)
字段名含義示例解讀
COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE從其他成員同步過來、已進入應(yīng)用隊列但尚未應(yīng)用的事務(wù)數(shù)量(COUNT_TRANSACTIONS_IN_QUEUE 的子集,僅統(tǒng)計遠程事務(wù))。示例值 0 表示無遠程事務(wù)積壓,遠程事務(wù)應(yīng)用及時。
COUNT_TRANSACTIONS_REMOTE_APPLIED從其他成員同步過來并已成功應(yīng)用的事務(wù)總數(shù)。示例值 6 表示當(dāng)前節(jié)點累計應(yīng)用了6個來自其他節(jié)點的事務(wù)(與 COUNT_TRANSACTIONS_CHECKED=6 一致,說明所有校驗通過的事務(wù)均為遠程事務(wù))。
COUNT_TRANSACTIONS_LOCAL_PROPOSED當(dāng)前節(jié)點本地發(fā)起并提交到集群的事務(wù)總數(shù)(本地事務(wù)需先“提議”給集群,經(jīng)校驗后同步到其他節(jié)點)。示例值 1 表示當(dāng)前節(jié)點發(fā)起過1個本地事務(wù),且該事務(wù)已通過校驗并同步到其他節(jié)點(因 TRANSACTIONS_COMMITTED_ALL_MEMBERS 包含本地事務(wù)ID)。
COUNT_TRANSACTIONS_LOCAL_ROLLBACK當(dāng)前節(jié)點本地發(fā)起但因沖突或錯誤被回滾的事務(wù)總數(shù)。示例值 0 表示本地發(fā)起的事務(wù)均成功提交,無回滾,本地業(yè)務(wù)操作正常。

示例數(shù)據(jù)整體結(jié)論
從當(dāng)前查詢結(jié)果可判斷:

  1. 集群狀態(tài)健康:無事務(wù)隊列積壓(0)、無沖突(0)、無本地回滾(0);
  2. 數(shù)據(jù)完全一致:所有校驗通過的事務(wù)(6個遠程+1個本地)均已在全集群提交;
  3. 復(fù)制效率正常:遠程事務(wù)應(yīng)用及時,無延遲風(fēng)險。

2. 查看集群成員列表(全節(jié)點通用)

在任一集群實例中執(zhí)行以下 SQL,可查看所有成員的 ID、地址、角色與狀態(tài):

SELECT * FROM performance_schema.replication_group_members;

返回結(jié)果包含:

  • MEMBER_HOST:成員IP/主機名
  • MEMBER_PORT:端口
  • MEMBER_ROLE:角色(PRIMARY/SECONDARY)
  • MEMBER_STATE:狀態(tài)(ONLINE/OFFLINE/RECOVERING)

3. 列出關(guān)聯(lián)的 MySQL Router 實例

MySQL Router 是集群的入口,負責(zé)流量分發(fā),通過以下命令可查看當(dāng)前與集群關(guān)聯(lián)的 Router 實例信息(如 Router 名稱、地址、版本):

# 在主節(jié)點(如 192.168.184.151)的 MySQL Shell 中執(zhí)行
cluster.listRouters();

六、組復(fù)制啟停(應(yīng)急操作)

組復(fù)制(Group Replication)是 InnoDB Cluster 實現(xiàn)高可用的核心機制,若需臨時下線某節(jié)點(如修復(fù)故障),可手動啟停該節(jié)點的組復(fù)制。

1. 關(guān)閉組復(fù)制(目標(biāo)節(jié)點執(zhí)行)

在需下線的節(jié)點(示例為 192.168.184.153)的 MySQL Shell 中執(zhí)行:

# 關(guān)閉當(dāng)前節(jié)點的組復(fù)制
STOP GROUP_REPLICATION;
# 切換到主節(jié)點(192.168.184.151)查看集群狀態(tài),確認該節(jié)點已離線
cluster.status();

2. 啟動組復(fù)制(目標(biāo)節(jié)點執(zhí)行)

故障修復(fù)后,在該節(jié)點(192.168.184.152)的 MySQL Shell 中重啟組復(fù)制,節(jié)點會自動重新加入集群:

# 啟動當(dāng)前節(jié)點的組復(fù)制
START GROUP_REPLICATION;
# 切換到主節(jié)點查看狀態(tài),確認該節(jié)點已重新上線(狀態(tài)變?yōu)?ONLINE)
cluster.status();

七、操作注意事項

  1. 權(quán)限與安全:集群管理用戶(如 mgr_user)需具備 GROUP_REPLICATION_ADMIN、CLUSTER_ADMIN 等權(quán)限;生產(chǎn)環(huán)境中避免明文輸入密碼,建議通過 MySQL 密鑰文件或交互輸入。
  2. 數(shù)據(jù)備份:執(zhí)行成員刪除、模式切換等關(guān)鍵操作前,需對集群數(shù)據(jù)進行全量備份,防止操作失誤導(dǎo)致數(shù)據(jù)丟失。
  3. 網(wǎng)絡(luò)與解析:集群節(jié)點間需確保 3306(數(shù)據(jù)庫端口)、33061(組復(fù)制端口)等端口互通;若使用主機名(如 maria-03),需配置節(jié)點間的主機名解析(如 /etc/hosts)。
  4. 狀態(tài)校驗:所有操作前后均建議執(zhí)行 cluster.status() 校驗集群狀態(tài),確保無 ERROROFFLINE 節(jié)點后再繼續(xù)操作。

結(jié)語

本文整理的命令覆蓋了 InnoDB Cluster 從連接、查詢到成員管理、模式切換的核心場景,是日常運維的“工具箱”。實際使用中,需結(jié)合業(yè)務(wù)場景(如單主/多主、讀寫分離)與集群規(guī)模靈活調(diào)整,同時建議參考 MySQL 官方文檔 深入理解命令背后的原理,確保集群長期穩(wěn)定運行。

到此這篇關(guān)于MySQL InnoDB Cluster 常見管理命令的文章就介紹到這了,更多相關(guān)MySQL InnoDB Cluster 管理命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 幾個比較重要的MySQL變量

    幾個比較重要的MySQL變量

    這篇文章主要介紹了幾個比較重要的MySQL變量,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • MySQL批量插入數(shù)據(jù)腳本

    MySQL批量插入數(shù)據(jù)腳本

    shell下向mysql批量插入數(shù)據(jù)的范例代碼,有需要的小伙伴可以參考下
    2016-02-02
  • MySQL多版本并發(fā)控制MVCC深入學(xué)習(xí)

    MySQL多版本并發(fā)控制MVCC深入學(xué)習(xí)

    這篇文章主要介紹了MySQL多版本并發(fā)控制MVCC,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • MySQL基本命令、常用命令總結(jié)

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

    這篇文章主要介紹了MySQL基本命令、常用命令總結(jié),需要的朋友可以參考下
    2014-03-03
  • mysql之TIMESTAMP(時間戳)用法詳解

    mysql之TIMESTAMP(時間戳)用法詳解

    這篇文章主要介紹了mysql之TIMESTAMP(時間戳)用法,需要的朋友可以參考下
    2014-07-07
  • MYSQL?常用語句速查(最新整理)

    MYSQL?常用語句速查(最新整理)

    這篇文章主要介紹了MYSQL?常用語句速查,包括庫級操作、表級操作、字段級操作和數(shù)據(jù)級操作,需要的朋友可以參考下
    2024-12-12
  • mysql 生成連續(xù)日期及變量賦值

    mysql 生成連續(xù)日期及變量賦值

    這篇文章主要介紹了mysql 生成連續(xù)日期及變量賦值的相關(guān)資料,分享內(nèi)容及代碼詳細,具有一的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • Win7x64下Mysql5.7.18解壓版的安裝方法

    Win7x64下Mysql5.7.18解壓版的安裝方法

    這篇文章主要介紹了Win7x64下Mysql5.7.18解壓版的安裝方法,需要的朋友可以參考下
    2017-07-07
  • mysql數(shù)據(jù)庫查詢優(yōu)化 mysql效率

    mysql數(shù)據(jù)庫查詢優(yōu)化 mysql效率

    MySQL由于它本身的小巧和操作的高效, 在數(shù)據(jù)庫應(yīng)用中越來越多的被采用.我在開發(fā)一個P2P應(yīng)用的時候曾經(jīng)使用MySQL來保存P2P節(jié)點,由于P2P的應(yīng)用中,結(jié)點數(shù)動輒上萬個,而且節(jié)點變化頻繁,因此一定要保持查詢和插入的高效.以下是我在使用過程中做的提高效率的三個有效的嘗試. 1. 使用statement進行綁定查詢 2. 隨機的獲取記錄 3. 使用連接池管理連接.
    2008-01-01
  • mysql 8.0.11 安裝配置方法圖文教程(win10)

    mysql 8.0.11 安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細介紹了mysql 8.0.11 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論

阳东县| 麻阳| 常宁市| 巴塘县| 漳州市| 旬阳县| 都匀市| 方正县| 东辽县| 齐齐哈尔市| 博客| 双峰县| 麦盖提县| 彭泽县| 于都县| 吉木乃县| 藁城市| 乾安县| 开鲁县| 花莲市| 西乌| 射洪县| 毕节市| 宝应县| 广饶县| 彩票| 新乡市| 连城县| 云林县| 宁河县| 永川市| 尚义县| 蓬溪县| 安新县| 沾化县| 永宁县| 磴口县| 明溪县| 龙陵县| 灵台县| 南安市|