国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQL數據庫主從技術GTID大揭秘

數據庫 MySQL
GTID(全局事務標識符)是mysql MySQL-5.6.5開始支持的新特性之一,全局事務標識符不僅在源(主)服務器上是唯一的,而且在給定復制設置中的所有服務器都是唯一的。

一、概述

[[400337]]

1.1 GTID的概念

GTID(全局事務標識符)是mysql MySQL-5.6.5開始支持的新特性之一,全局事務標識符不僅在源(主)服務器上是唯一的,而且在給定復制設置中的所有服務器都是唯一的。正因為這樣一個特性使得mysql的主從復制變得更加簡單且一致性更高。它與源(主)服務器上提交的每個事務相關聯,由服務器ID+事務ID組合而成。

GTID = source_id:transaction_id,中間由“:”分隔,source_id用于標識原服務器,通常指server_uuid,由于GTID會傳遞到slave,所以也可以理解為源ID。transaction_id為當前服務器上已提交事務的一個序列號,通常從1開始自增長的序列,一個數值對應一個事務。

查看本機的server_uuid方法如下:

  1. mysql> show variables like '%uuid%'
  2. +---------------+--------------------------------------+ 
  3. | Variable_name | Value                                | 
  4. +---------------+--------------------------------------+ 
  5. | server_uuid   | f3d0a8b5-a657-11eb-a6e5-000c29dbd935 | 
  6. +---------------+--------------------------------------+ 
  7. 1 row in set (0.01 sec) 

 1.2 GTID的工作原理

1、當一個事務在主庫端執行并提交時,會產生一個GTID并記錄到binlog日志中。

2、binlog傳輸到slave,并存儲到slave的relaylog后,讀取這個GTID的這個值設置gtid_next變量,即告訴Slave,下一個要執行的GTID值。

3、sql線程從relay log中獲取GTID,然后對比slave端的binlog是否有該GTID,如果有說明該GTID的事務已經執行,slave會忽略。如果沒有記錄,slave會執行該GTID的事務,在執行前會檢查其他session持有該GTID,確保該GTID的事務不會被重復執行,并記錄該GTID到自身的binlog。

4、在解析過程中會判斷是否有主鍵,如果沒有就用二級索引,再沒有就走全表掃描。

1.3 mysql.gtid_exected表

GTID存儲在mysql的 gtid_executed的表中。該表供mysql服務器內部使用,該表中的一行代表的每個GTID或GTID集合,以及該集合的開始和結束事務ID;對于僅引用單個GTID的行,最后兩個值相同。

在mysql.gtid_executed安裝或升級MySQL Server時,使用create table 類似于以下所示的語句創建該表(如果尚不存在):

  1. CREATE TABLE gtid_executed ( 
  2.     source_uuid CHAR(36) NOT NULL
  3.     interval_start BIGINT(20) NOT NULL
  4.     interval_end BIGINT(20) NOT NULL
  5.     PRIMARY KEY (source_uuid, interval_start) 

 注意:與其他MySQL系統表一樣,請勿嘗試自己創建或修改該表。

GTID僅當gtid_mode is ON or ON_PERMISSIVE時,GTID才會存儲在gtid_executed的表中,GTID的存儲與mysql是否啟用二進制日志緊密相關。

  • 如果禁用了二進制日志記錄(log_binis OFF),或者如果 log_slave_updates禁用了二進制日志記錄,則服務器將屬于每個事務的GTID與該事務一起存儲在表中。此外,該表會以用戶可配置的速率定期壓縮。這種情況僅適用于禁用了二進制日志記錄或副本更新日志記錄的副本。它不適用于復制源服務器,因為必須在源上啟用二進制日志記錄才能進行復制。
  • 如果啟用了二進制日志記錄(log_bin是 ON),則每當旋轉二進制日志或關閉服務器時,服務器都會將寫入前一個二進制日志的所有事務的GTID寫入mysql.gtid_executed表中。這種情況適用于復制源服務器或啟用了二進制日志記錄的副本。
  • 如果服務器意外停止,則當前二進制日志文件中的GTID集不會保存在 mysql.gtid_executed表中。恢復期間,這些GTID從二進制日志文件添加到表中。例外的是重新啟動服務器時未啟用二進制日志記錄。在這種情況下,服務器無法訪問二進制日志文件以恢復GTID,因此無法啟動復制。

啟用二進制日志記錄后,該 mysql.gtid_executed表將不保存所有已執行事務的GTID的完整記錄。該信息由gtid_executed系統變量的全局值提供 。始終使用 @@GLOBAL.gtid_executed,它在每次提交后都會更新,以表示MySQL服務器的GTID狀態,而不查詢 mysql.gtid_executed表。

1.4 mysql.gtid_executed表壓縮

隨著時間的流逝, mysql.gtid_executed表中可能會出現很多行,表會越來越大,為了節省空間,MySQL服務器mysql.gtid_executed通過用橫跨事務標識符整個間隔的一行替換每行這樣的行來定期壓縮 表,如下所示:

  1. +--------------------------------------+----------------+--------------+ 
  2. | source_uuid                          | interval_start | interval_end | 
  3. |--------------------------------------+----------------+--------------| 
  4. | 3E11FA47-71CA-11E1-9E33-C80AA9429562 | 37             | 43           | 
  5. ... 

 您可以通過設置

gtid_executed_compression_period 系統變量來控制壓縮速率,此變量的默認值為1000,這意味著默認情況下,每1000個事務處理后將對表進行壓縮。設置 gtid_executed_compression_period 為0根本無法執行壓縮,gtid_executed如果您這樣做,應該準備增加表可能需要的磁盤空間量 。

該mysql.gtid_executed表的壓縮由名為的專用前臺線程執行

thread/sql/compress_gtid_table。該線程未在的輸出中列出SHOW PROCESSLIST,但可以在threads表中的一行中查看 ,如下所示:

  1. mysql> SELECT * FROM performance_schema.threads WHERE NAME LIKE '%gtid%'\G 
  2.      RESOURCE_GROUP: SYS_default 
  3. *************************** 2. row *************************** 
  4.           THREAD_ID: 45 
  5.                NAME: thread/sql/compress_gtid_table 
  6.                TYPE: FOREGROUND 
  7.      PROCESSLIST_ID: 6 
  8.    PROCESSLIST_USER: NULL 
  9.    PROCESSLIST_HOST: NULL 
  10.      PROCESSLIST_DB: NULL 
  11. PROCESSLIST_COMMAND: Daemon 
  12.    PROCESSLIST_TIME: 8757 
  13.   PROCESSLIST_STATE: Suspending 
  14.    PROCESSLIST_INFO: NULL 
  15.    PARENT_THREAD_ID: 1 
  16.                ROLE: NULL 
  17.        INSTRUMENTED: YES 
  18.             HISTORY: YES 
  19.     CONNECTION_TYPE: NULL 
  20.        THREAD_OS_ID: 7602 
  21.      RESOURCE_GROUP: SYS_default 
  22. rows in set (0.01 sec) 

 二、GTID復制的優缺點

2.1 GTID優勢

1、更簡單的實現failover,不用以前那樣在需要找log_file和log_pos。 2、更簡單的搭建主從復制。 3、比傳統的復制更加安全。 4、GTID是連續的沒有空洞的,保證數據的一致性,零丟失。

2.2 GTID的限制

1、不允許在同一個事務內對事務表和非事務進行DML操作,例如在同一個事務內先update innodb表,然后update myisam表。因為GTID強制每一個GTID對應一個事務,而在同一個事務內既操作innodb表又操作myisam,就會產生兩個GTID; 2、不允許CREATE TABLE … SELECT語句,首先這種語句對于statement格式的binlog是不安全的;而對于row格式的binlog,這種語句在binlog實際是分成兩個event進行記錄的,一個記錄create創建操作,一個記錄insert操作,那么就有可能這兩個操作是對應到同一個GTID上,而當將這兩個擁有相同GTID的event傳到從庫時,從庫就會忽略擁有相同GTID的insert操作,造成數據丟失; 3、CREATE TEMPORARY TABLE和DROP TEMPORARY TABLE不允許在事務內執行,只有在事務以外并且autocommit=1才能正常執行; 4、不支持sql_slave_skip_counter,如果需要跳過事務,可以用以下方法:

  1. set @@session.gtid_next='需要跳過的事務gtid' 
  2. begin;commit
  3. set session gtid_next=automatic; 

 【編輯推薦】

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2011-04-14 11:09:14

MySQL數據庫

2014-02-14 09:22:36

AWSOracle云數據庫

2019-06-20 15:25:14

MySQLL數據庫存儲

2023-01-11 08:00:00

MySQLGTID雙主模式

2012-06-11 18:07:03

2011-08-29 14:00:26

MySQL主從延時

2017-08-24 09:19:20

分解技術揭秘

2017-01-17 15:14:49

MySQL數據庫自動化

2010-06-09 15:01:18

MySQL數據庫同步

2025-06-13 09:33:45

2019-08-27 15:00:09

MySQL數據庫存儲

2024-10-21 08:21:12

數據庫主從延遲

2011-04-06 09:59:00

MySQL數據庫主從復制

2010-11-03 08:41:55

MySQL

2011-04-07 15:02:02

LinuxMySQL數據庫

2019-11-08 07:27:34

網絡網絡體檢網絡技術

2024-07-15 09:14:03

MySQL主從復制

2021-09-24 18:14:02

華為云GaussDB

2019-12-09 12:39:58

數據庫技術機器學習

2023-10-06 13:52:40

數據庫模型
點贊
收藏

51CTO技術棧公眾號

亚洲一区二区三区四区在线 | 国产区在线观看成人精品| 亚洲精品777| 三区四区不卡| 欧美a级理论片| 国产精品久久久精品| 91网页在线观看| 国产成人亚洲综合a∨婷婷 | 国产精选一区二区三区| 3344国产精品免费看| 91国产精品91| 欧美一级电影久久| 日本电影一区二区三区| 少妇一区二区三区| 在线观看精品国产视频| 91网址在线观看| 一个色妞综合视频在线观看| 亚洲激情图片| 黄页视频在线91| 久久久久久久久久久综合| 国产精品一区高清| 日本精品中文字幕| 欧美成人毛片| 最新国产精品拍自在线播放 | 免费看的黄色欧美网站| 91综合在线| 久久亚洲影音av资源网| 澳门av一区二区三区| 欧美日韩国产片| 美女航空一级毛片在线播放| 欧美激情视频一区二区三区免费| 欧美日本黄视频| www国产精品| 高清欧美电影在线| 精品国产99| 粉嫩av一区二区三区免费观看 | 国产精品成人一区二区不卡| 视频二区在线| 亚洲成av人片一区二区三区| 国产激情99| 水蜜桃精品av一区二区| 99热在线国产| 黄色片网站在线| 亚洲国产高清自拍| 亚洲免费一区三区| 97欧洲一区二区精品免费| baoyu777.永久免费视频| 天天爽夜夜爽夜夜爽精品视频| 免费看成年人视频在线观看| 欧美午夜免费电影| 在线天堂新版最新版在线8| 91在线三级| 国产精品久久久久久久蜜臀| www.日日操| 欧美伊人久久久久久久久影院| 台湾佬中文娱乐久久久| 91av在线视频观看| 欧美理论在线| 成人三级av| 亚洲午夜av电影| 妺妺窝人体色www在线小说| 精品久久久久久久久久久久久| 完全免费av在线播放| 亚洲色图色老头| 欧美理论电影在线精品| 99porn视频在线| 97久久超碰精品国产| 5566av亚洲| 91丨九色丨黑人外教| 欧美在线激情网| 777久久久精品一区二区三区| av黄色免费| 亚洲人成在线观看网站高清| 欧美激情偷拍| 992tv在线观看免费进| 日本中文字幕一区| 中文在线a在线| 91在线观看下载| 在线观看h片| 国产成人综合一区二区三区| 欧美精品少妇| 97热精品视频官网| 久久精品亚洲精品国产欧美| 日本蜜桃在线观看视频| 91在线观看免费| 日韩理论片网站| 99re精彩视频| 伊人久久综合97精品| 国产在线视频精品一区| 日本在线视频www色| 国产剧情一区在线| 手机av在线播放| 日本不卡在线播放| 日韩欧美国产三级电影视频| 亚洲最好看的视频| 成人高清免费| 日本黄网免费一区二区精品| 亚洲电影免费观看高清完整版在线| 综合五月婷婷| 蜜芽在线免费观看| 国产香蕉一区二区三区| 亚洲免费一级电影| 成人在线视频首页| 美女精品久久| 久久天堂电影| 色综合久久88色综合天天提莫| 亚洲第一精品自拍| 国产精品视频在线看| 97精品中文字幕| 日本aa在线| 久久综合伊人77777| av中文一区二区三区| 亚洲国产国产| 91精品久久| 国产欧美日韩亚洲| 亚洲成人精品一区二区| 国产精品毛片av| 国产日韩精品视频| 国产精品热久久久久夜色精品三区 | 欧美日一区二区在线观看 | 欧美亚洲午夜视频在线观看 | 午夜精品999| 国产区在线看| 国产精品视频一二三四区| 亚洲色图一区二区| 久久精品午夜| 日韩在线观看| 色综合久久中文| 不卡av免费观看| 日本一区二区三区视频在线播放 | 午夜久久久影院| 国产馆精品极品| 亚洲综合资源| av黄色在线| 中文在线www| 美女av电影| 亚洲激情视频在线播放| 免费观看久久av| 成视频免费在线看| 亚洲一区二区三区欧美| 91精品国产综合久久久久久丝袜| 中文字幕亚洲二区| 精品一区二区精品| 欧美精品a∨在线观看不卡 | 亚洲激情欧美激情| 国产69精品久久99不卡| 日韩视频三区| 黄色在线视频观看网站| 阿v天堂2017| 操人视频在线观看欧美| 精品国产91亚洲一区二区三区婷婷| 欧美视频一区二区三区在线观看 | 精品亚洲国产成av人片传媒| 欧美性色综合网| 精品成人一区二区| 精品国模在线视频| a级高清视频欧美日韩| 久久久久久免费毛片精品| 国产精品视频第一区| 粉嫩13p一区二区三区| 久久亚洲视频| 蜜桃视频一区二区三区| 国产精品乡下勾搭老头1| 国产精品久久占久久| 久久蜜桃精品| 激情综合五月婷婷| 高清av一区二区| 午夜av区久久| 亚洲国产97在线精品一区| 日韩电影大片中文字幕| 久久91精品久久久久久秒播| 视频二区不卡| а√在线中文网新版地址在线| 91视频 - 88av| av无码精品一区二区三区| 猛男欧美办公室激情在线| 免费黄色网页在线观看| 激情亚洲小说| 久久激情电影| 成人精品电影在线观看| 亚洲国产成人在线| 一本一道久久a久久精品蜜桃| 销魂美女一区二区三区视频在线| 在线免费高清一区二区三区| 青青草在线视频免费观看| 少女频道在线观看高清| 果冻天美麻豆一区二区国产| 九色丨porny丨自拍入口| 精品麻豆一区二区三区| 久久国际精品| 国产乱子轮精品视频| 一区二区日韩电影| 在线日韩中文字幕| 婷婷精品国产一区二区三区日韩| 日本中文不卡| 蜜桃成人在线视频| 大伊香蕉精品在线品播放| 中文有码一区| 久久午夜国产精品| 亚洲国产欧美一区二区三区同亚洲 |