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

MySQL GTID集合運(yùn)算函數(shù)總結(jié)

 更新時(shí)間:2025年04月18日 08:40:17   作者:恬淡虛無真氣從之  
本文主要介紹了MySQL GTID集合運(yùn)算函數(shù)總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

MySQL GTID 有一些運(yùn)算函數(shù)可以幫助我們?cè)谶\(yùn)維工作中提高運(yùn)維效率。

1、GTID內(nèi)置函數(shù)

MySQL 包含GTID_SUBSET、GTID_SUBTRACT、WAIT_FOR_EXECUTED_GTID_SET、WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS 4個(gè)內(nèi)置函數(shù),用于GTID集合的基本運(yùn)算。

1.1 GTID_SUBSET(set1,set2)

給定兩個(gè)GTID集set1和set2,set1是set2的子集返回true,否則返回false。

root@(none) 10:29:28>select 
gtid_subset('53442434-8bfa-11e9-bc15-005056a50f77:1-2','8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-2') c8,
gtid_subset('53442434-8bfa-11e9-bc15-005056a50f77:1-2','8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-2,53442434-8bfa-11e9-bc15-005056a50f77:1-2') c9;
+----+----+
| c8 | c9 |
+----+----+
|  0 |  1 |
+----+----+
1 row in set (0.00 sec)

1.2  GTID_SUBTRACT(set1,set2)

GTID_SUBTRACT(gtid_set1, gtid_set2) 返回一個(gè)新的 GTID 集,表示 gtid_set1 中存在但 gtid_set2 中不存在的 GTID(即 gtid_set1 減去 gtid_set2 的結(jié)果)。

select gtid_subtract('53442434-8bfa-11e9-bc15-005056a50f77:1-2,8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-2','8eed0f5b-6f9b-11e9-94a9-005056a57a4e:2-3') c9;

root@(none) 10:37:49>select gtid_subtract('53442434-8bfa-11e9-bc15-005056a50f77:1-2,8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-2','8eed0f5b-6f9b-11e9-94a9-005056a57a4e:2-3') c9\G;
*************************** 1. row ***************************
c9: 53442434-8bfa-11e9-bc15-005056a50f77:1-2,
8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1
1 row in set (0.00 sec)

select gtid_subtract('53442434-8bfa-11e9-bc15-005056a50f77:1-5','53442434-8bfa-11e9-bc15-005056a50f77:3-10') c8

root@(none) 10:45:32>select gtid_subtract('53442434-8bfa-11e9-bc15-005056a50f77:1-5','53442434-8bfa-11e9-bc15-005056a50f77:3-10') c8;
+------------------------------------------+
| c8                                       |
+------------------------------------------+
| 53442434-8bfa-11e9-bc15-005056a50f77:1-2 |
+------------------------------------------+
1 row in set (0.01 sec)

1.3 WAIT_FOR_EXECUTED_GTID_SET(gtid_set[, timeout])

等到服務(wù)器應(yīng)用了包含在 gtid_set 中的所有事務(wù)。如果指定可選的 timeout 值 (秒數(shù)),超時(shí)會(huì)使函數(shù)停止等待而退出。

select wait_for_executed_gtid_set('53442434-8bfa-11e9-bc15-005056a50f77:1-7'); 
select wait_for_executed_gtid_set('53442434-8bfa-11e9-bc15-005056a50f77:8',5);

1.4 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(gtid_set[, timeout][,channel])

WAIT_FOR_EXECUTED_GTID_SET類似,但針對(duì)單個(gè)啟動(dòng)的復(fù)制通道.

1.5 可以自定義函數(shù)

# 如果兩個(gè)GTID集相同,函數(shù)返回非零值
create function gtid_is_equal(gtid_set_1 longtext, gtid_set_2 longtext)
returns int deterministic
  return gtid_subset(gtid_set_1, gtid_set_2) and gtid_subset(gtid_set_2, gtid_set_1);
# 如果兩個(gè)GTID集不相交,函數(shù)返回非零值
create function gtid_is_disjoint(gtid_set_1 longtext, gtid_set_2 longtext)
returns int deterministic
  return gtid_subset(gtid_set_1, gtid_subtract(gtid_set_1, gtid_set_2));
# 如果兩個(gè)GTID集不相交,則函數(shù)返回非零,sum是兩個(gè)集的并集
create function gtid_is_disjoint_union(gtid_set_1 longtext, gtid_set_2 longtext, sum longtext)
returns int deterministic
  return gtid_is_equal(gtid_subtract(sum, gtid_set_1), gtid_set_2) and
         gtid_is_equal(gtid_subtract(sum, gtid_set_2), gtid_set_1);
# 函數(shù)返回格式化的GTID集。沒有空格且沒有重復(fù),UUID按字母順序排列,間隔按數(shù)字順序排列
create function gtid_normalize(g longtext)
returns longtext deterministic
return gtid_subtract(g, '');
# 函數(shù)返回兩個(gè)GTID集的并集
create function gtid_union(gtid_set_1 longtext, gtid_set_2 longtext)
returns longtext deterministic
  return gtid_normalize(concat(gtid_set_1, ',', gtid_set_2));
# 函數(shù)返回兩個(gè)GTID集的交集
create function gtid_intersection(gtid_set_1 longtext, gtid_set_2 longtext)
returns longtext deterministic
  return gtid_subtract(gtid_set_1, gtid_subtract(gtid_set_1, gtid_set_2));
# 函數(shù)返回兩個(gè)GTID集的對(duì)稱差集
create function gtid_symmetric_difference(gtid_set_1 longtext, gtid_set_2 longtext)
returns longtext deterministic
  return gtid_subtract(concat(gtid_set_1, ',', gtid_set_2), gtid_intersection(gtid_set_1, gtid_set_2));
# 函數(shù)返回除去指定UUID的GTID集
create function gtid_subtract_uuid(gtid_set longtext, uuid text)
returns longtext deterministic
  return gtid_subtract(gtid_set, concat(uuid, ':1-', (1 << 63) - 2));
# 函數(shù)返回指定UUID的GTID集
create function gtid_intersection_with_uuid(gtid_set longtext, uuid text)
returns longtext deterministic
  return gtid_subtract(gtid_set, gtid_subtract_uuid(gtid_set, uuid));

2、GTID使用示例

2.1、監(jiān)控從庫是否有人執(zhí)行了寫操作,生產(chǎn)GTID:

使用 gtid_subset 來驗(yàn)證,從庫的gtid一定是主庫的gtid的子集。

GTID_SUBSET(set1,set2)

執(zhí)行 GTID_SUBSET(從庫gtid,主庫gtid),如果是true就沒問題,如果是false就是有人誤操作了從庫。

  • 從庫('53442434-8bfa-11e9-bc15-005056a50f77:1-2,8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-6')
  • 主庫('53442434-8bfa-11e9-bc15-005056a50f77:1-3,8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-5')
  • 主庫('53442434-8bfa-11e9-bc15-005056a50f77:1-3')
  • 主庫('53442434-8bfa-11e9-bc15-005056a50f77:1-3',8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-7')

結(jié)果:

2.2、驗(yàn)證從庫的復(fù)制是否最新:

內(nèi)置函數(shù)GTID_SUBSETGTID_SUBTRACT可用于檢查從庫是應(yīng)用了主庫的每個(gè)事務(wù)。使用GTID_SUBSET執(zhí)行此檢查,在從庫上執(zhí)行以下命令:

master_gtid_executed=`mysql -uroot -proot -h192.168.2.80 -N -e "select replace(@@global.gtid_executed,char(10),'')"`



slave_gtid_executed=`mysql -uroot -proot -N -e "select replace(@@global.gtid_executed,char(10),'')"` sql="select gtid_subset('$master_gtid_executed', '$slave_gtid_executed')"

dls

mysql -uroot -proot -e "$sql" 

gtid_subset('dd746660-528a-11ed-9c86-000c293b9f86:1-14,e189b1a5-529d-11ed-992e-000c29c1da06:1', 'dd746660-528a-11ed-9c86-000c293b9f86:1-14,e189b1a5-529d-11ed-992e-000c29c1da06:1') ;

2.3 驗(yàn)證復(fù)制拓?fù)渲械姆?wù)器是否執(zhí)行過本地事務(wù)

自定義函數(shù) GTID_INTERSECTION_WITH_UUID 可用于驗(yàn)證服務(wù)器是否執(zhí)行過本地事務(wù)??梢栽诜?wù)器上發(fā)出以下語句來檢查:

SELECT GTID_INTERSECTION_WITH_UUID(@@GLOBAL.gtid_executed, my_server_uuid);

2.4 檢查從庫上的異常事務(wù)

自定義函數(shù) GTID_SUBTRACT_UUID 可用于檢查從庫是否只接收到源自其指定主庫的事務(wù)。對(duì)于單主復(fù)制,執(zhí)行以下語句,server_uuid_of_master 是主庫的 server_uuid:

SELECT GTID_SUBTRACT_UUID(@@GLOBAL.gtid_executed, server_uuid_of_master);

如果結(jié)果不為空,則返回的事務(wù)是不是源自指定主庫的異常事務(wù)。對(duì)于多主復(fù)制拓?fù)渲械膹膸?,重?fù)該功能,例如:

SELECT GTID_SUBTRACT_UUID(GTID_SUBTRACT_UUID(@@GLOBAL.gtid_executed,
                                             server_uuid_of_master_1),
                                             server_uuid_of_master_2);

到此這篇關(guān)于MySQL GTID集合運(yùn)算函數(shù)總結(jié)的文章就介紹到這了,更多相關(guān)MySQL GTID集合運(yùn)算函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中的一些稍微復(fù)雜用法實(shí)例代碼

    mysql中的一些稍微復(fù)雜用法實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于mysql中的一些稍微復(fù)雜用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • MySQL中行級(jí)鎖和表級(jí)鎖的區(qū)別小結(jié)

    MySQL中行級(jí)鎖和表級(jí)鎖的區(qū)別小結(jié)

    MySQL中的行級(jí)鎖和表級(jí)鎖是兩種不同的鎖機(jī)制,它們?cè)诓l(fā)控制和鎖粒度方面有顯著的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • 關(guān)于MYSQL的優(yōu)化全面詳解

    關(guān)于MYSQL的優(yōu)化全面詳解

    一直用了那么久的mysql,雖然了解了一些優(yōu)化方法,但是都是比較簡(jiǎn)單的一些應(yīng)用,這次就系統(tǒng)的了解一下
    2012-09-09
  • mysql-8.0.16 winx64的最新安裝教程圖文詳解

    mysql-8.0.16 winx64的最新安裝教程圖文詳解

    最近剛學(xué)習(xí)數(shù)據(jù)庫,首先是了解數(shù)據(jù)庫是什么,數(shù)據(jù)庫、數(shù)據(jù)表的基本操作,這就面臨了一個(gè)問題,mysql的安裝,我這里下載的是64位的,基于Windows的,需要的朋友可以參考下
    2019-06-06
  • 通過MySQL慢查詢優(yōu)化MySQL性能的方法講解

    通過MySQL慢查詢優(yōu)化MySQL性能的方法講解

    今天小編就為大家分享一篇關(guān)于通過MySQL慢查詢優(yōu)化MySQL性能的方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql中使用sql命令將時(shí)間戳解析成datetime類型存入

    mysql中使用sql命令將時(shí)間戳解析成datetime類型存入

    這篇文章主要介紹了mysql中使用sql命令將時(shí)間戳解析成datetime類型存入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MySQL數(shù)據(jù)實(shí)時(shí)同步到MongoDB的實(shí)踐分享

    MySQL數(shù)據(jù)實(shí)時(shí)同步到MongoDB的實(shí)踐分享

    很多 DBA 同學(xué)經(jīng)常會(huì)遇到要從一個(gè)數(shù)據(jù)庫實(shí)時(shí)同步到另一個(gè)數(shù)據(jù)庫的問題,同構(gòu)數(shù)據(jù)還相對(duì)容易,遇上異構(gòu)數(shù)據(jù)、表多、數(shù)據(jù)量大等情況就難以同步,我自己親測(cè)了一種方式可以實(shí)現(xiàn)MySQL數(shù)據(jù)實(shí)時(shí)同步到MongoDB,跟大家分享一下,希望對(duì)你有幫助
    2024-01-01
  • Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    這篇文章主要介紹了Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行),需要的朋友可以參考下
    2017-05-05
  • MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼

    MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼

    這篇文章主要介紹了MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼,文中給大家提到了MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實(shí)現(xiàn)

    MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實(shí)現(xiàn)

    本文主要介紹了MySQL根據(jù)條件遷移數(shù)據(jù)的實(shí)現(xiàn),包括使用INSERT INTO SELECT、UPDATE、DELETE語句以及結(jié)合子查詢進(jìn)行遷移,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論

申扎县| 萝北县| 新巴尔虎左旗| 凤山县| 龙井市| 蒲江县| 陇南市| 北京市| 大田县| 刚察县| 手游| 龙井市| 崇文区| 景宁| 四平市| 宁波市| 彭泽县| 卢氏县| 巴林右旗| 蒙城县| 漳州市| 福泉市| 突泉县| 仁布县| 新竹市| 巫溪县| 淄博市| 南涧| 镇康县| 尉氏县| 霞浦县| 九寨沟县| 铅山县| 金阳县| 长海县| 思南县| 台州市| 巴里| 通山县| 社旗县| 秦安县|