国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL故障切換筆記之應用無感知設計詳解

2024-07-24 12:49:58
字體:
來源:轉載
供稿:網友

1. 簡介

大家都知道,在數據庫中間件讀寫分離應用場景中,如何保證底層數據庫出現故障節點的時,中間件可以快速斷開或遷移數據庫連接,讓用戶無感知。

在MySQL數據庫中,提供了一個session_track_transaction_info參數來提供解決方案。

因為官方文檔上沒有對該參數的說明,本文專門介紹該參數的可選值并驗證了實際的影響。下面話不多說了,來隨著小編一起看看詳細的介紹吧

2. session_track_transaction_info參數

2.1 參數介紹

MySQL5.7中,可以通過設置session_track_transaction_info變量來跟蹤事務的狀態。

該參數存在global以及session兩個級別,可以動態修改。 該參數可以設置的值為0(默認OFF),1,2
/** Transaction tracking level*/enum enum_session_track_transaction_info { TX_TRACK_NONE = 0, ///< do not send tracker items on transaction info TX_TRACK_STATE = 1, ///< track transaction status TX_TRACK_CHISTICS = 2 ///< track status and characteristics};

該參數允許設置的值為0,1,2

設置為0的時候,show variables like '%session_track_transaction_info%'顯示為OFF,表示不開啟事務狀態跟蹤 設置為1的時候,show variables like '%session_track_transaction_info%'顯示為STATE,表示跟蹤事務狀態 設置為2的時候,show variables like '%session_track_transaction_info%'顯示為CHARACTERISTICS,表示跟蹤事務狀態和語句

2.2 參數設置影響

開啟session_track_transaction_info參數的時候,在數據庫中無法直接查詢到事務狀態記錄。

根據[WL#4797],MySQL是將事務狀態跟蹤的信息記錄到了每一個Query請求返回的OK packet中。

可以通過抓包的方式查看事務狀態信息。

2.2.1 原生MySQL OK packet格式

OK Packet的數據包格式定義

類型 名字 描述
int<1> 頭部 用0x00或者0xFE表示該數據包是一個OK Packet
int 影響的行數 影響的行數
int 上次插入的id 上次插入的id
int<2> 狀態標識 如果定義了CLIENT_PROTOCOL_41,會有這一部分
int<2> 警告數量 警告的數量,如果定義了CLIENT_PROTOCOL_41,會有這一部分
int<2> 狀態標識 如果定義了CLIENT_TRANSACTIONS,會有這一部分
string 信息 人類可讀的狀態信息,如果定義了CLIENT_SESSION_TRACK,會有這一部分
string 會話狀態 會話狀態信息,如果定義了SERVER_SESSION_STATE_CHANGED,會有這一部分
string 信息 人類可讀的信息
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 思茅市| 北海市| 唐河县| 任丘市| 柞水县| 江油市| 略阳县| 靖州| 潜江市| 普兰县| 娄烦县| 贵德县| 阳东县| 荥阳市| 静宁县| 大英县| 襄樊市| 岚皋县| 屏南县| 宜君县| 梁河县| 青海省| 新田县| 台东市| 荣昌县| 确山县| 东丰县| 滦平县| 莲花县| 宜春市| 泰兴市| 晋城| 芒康县| 静海县| 黑水县| 鹤峰县| 乌兰浩特市| 阳原县| 凤台县| 黄龙县|