91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.7新增加的特性gtid基礎介紹

發布時間:2020-05-14 16:55:30 來源:億速云 閱讀:340 作者:三月 欄目:建站服務器

下文主要給大家帶來MySQL5.7新增加的特性gtid基礎,希望這些內容能夠帶給大家實際用處,這也是我編輯MySQL5.7新增加的特性gtid基礎這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

1、MySQL5.7 新特性:gtid復制

①:GTID是什么

    是事務的ID,唯一識別號,全局唯一。

    隨事務記錄到Binary Log中,用來標識事務。

    每個事務有一個Gtid_log_event。    

②:GTID的構成

    UUID + Sequence Number

注意:Sequence Number是MySQL云服務器內部的一個事務順序號.一個MySQL云服務器上的事務不會有重復的順序號(保證云服務器內唯一)。

每個MySQL云服務器有一個全局唯一的UUID.

③:GTID的目的

   簡化復制的使用過程和降低復制集群維護的難度:不再依賴Master的binlog文件名和文件中的位置。

   由 CHANGE MASTER TO MASTER_LOG_FILE=‘Master-bin.000010’, MASTER_LOG_POS=‘214’; 改為:CHANGE MASTER TO AUTO_POSITION=1;

④:AUTO_POSITION的原理

*:MySQL Server 記錄了所有已經執行了的事務的GTID,包括復制過來的。

   可用過系統變量Gtid_executed查看。

*:Slave記錄了所有從master接收過來的事務的GTID。

   可通過Retrieve_gtid_set查看

*:Slave連接到Master時,會把gtid_executed中的gtid發給master. Master會自動跳過這些事務,只將沒有復制的事物發送到Slave去。

MySQL5.7新增加的特性gtid基礎介紹

⑤:MySQL5.7GTID在線啟用GTID功能的優點

   不需要重啟MySQL云服務器.

   配置過程在線,整個復制集群仍然對外提供讀和寫的服務.

   不需要改變復制拓撲結構.

   可以在任何結構的復制集群中在線啟用GTID功能.

     更簡單的搭建主從復制。

     比傳統的復制更加安全。

     GTID是連續的沒有空洞的,保證數據的一致性,零丟失。

⑥:GTID的開啟場景

   新系統搭建時直接開啟GTID功能

     老系統升級到MySQL5.7后開啟GTID功能

   老系統開啟GTID的復雜性

     復制集群中有的開啟了GTID,有的沒有開啟。

     開啟前的BINLOG中的事務沒有GTID,開啟后的有GTID

GTID啟動過程中的模式:

   全局系統變量GTID_MODE

     OFF           不產生GTID,  Slave只接受不帶GTID的事務

     OFF_PERMISSIVE   不產生GTID,  Slave即接受不帶GTID的事務也接受帶GTID的事務

     ON_PERMISSIVE    產生GTID,  Slave即接受不帶GTID的事務也接受帶GTID的事務

     ON            產生GTID,  Slave只接受帶GTID的事務

⑦:簡化的配置過程

 SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE; (在每一個云服務器上設置)

 SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE; (在每一個云服務器上設置)

 等一段時間, 讓不帶GTID的binlog events在所有的云服務器上執行完畢。

 SET @@GLOBAL.GTID_MODE = ON; (在每一個云服務器上設置)

存儲GTID到表中的目的:

   支持Slave不開啟Binlog的場景

      有些Slave永遠不會被切換成Master.不開啟binlog,可以節省空間,提高性能。

      MySQL5.6上GTID只能存儲在binlog中,所以必須開啟Binlog才能使用GTID功能。    

    MySQL5.7則不需要開啟binlog了。

如何記錄GTID到表中

   如果開啟了binlog,在切換binlog時,將當前binlog的所有GTID插入gtid_executed表中。插入操作等價于一個或多個INSERT語句。

INSERT INTO mysql.gtid_executed(UUID, 1, 100)

如果沒有開啟binlog,每個事務在提交之前,會執行一個等價的INSERT的操作。此操作是該事務的一部分,和事務的其他操作整體保持原子性。

BEGIN;

INSERT INTO mysql.gtid_executed(UUID, 101, 101);

COMMIT;

gtid_executed表的壓縮:

壓縮前

+--------------------------------------+----------------+--------------+

| source_uuid                          | interval_start | interval_end |

+--------------------------------------+----------------+--------------+

| xxxxxxxx-4733-11e6-91fe-507b9d0eac6d |              1 |            1 |

+--------------------------------------+----------------+--------------+

| xxxxxxxx-4733-11e6-91fe-507b9d0eac6d |              2 |            2 |

+--------------------------------------+----------------+--------------+

| xxxxxxxx-4733-11e6-91fe-507b9d0eac6d |              3 |            3 |

+--------------------------------------+----------------+--------------+

壓縮后

+--------------------------------------+----------------+--------------+

| source_uuid                          | interval_start | interval_end |

+--------------------------------------+----------------+--------------+

| xxxxxxxx-4733-11e6-91fe-507b9d0eac6d |              1 |            3 |

+--------------------------------------+----------------+--------------+

控制壓縮頻率

mysql> SET GLOBAL gtid_executed_compression_period = N;   (N – 事務的數量)

GTID的受限語句檢測:

   GTID不支持的語句/事務:

      CREATE TABLE … SELECT

   事務中同時使用了支持事務和不支持事務的引擎。

   BEGIN;

   INSERT INTO innodb_tbl(…);

   INSERT INTO myisam_tbl(…);

   COMMIT;

   在事務中使用CREATE/DROP TEMPORARY TABLE 

   BEGIN;

   INSERT INTO innodb_tbl(…);

   CREATE TEMPORARY TABLE temp1;

   ...

   COMMIT;

啟用GTID前,檢測系統中是否有GTID不支持的語句/事務,提前處理。

全局系統變量enforce-gtid-consistency

OFF    :不檢測是否有GTID不支持的語句/事務

WARN   :當發現不支持的語句/事務時,返回警告,并在日志中記錄警告信息。

ON     :當發現語句/事務不支持GTID時,返回錯誤。

+---------+------+---------------------------------------------------------------+

| Level   | Code | Message                                                       |

+---------+------+---------------------------------------------------------------+

| Warning | 1786 | Statement violates GTID consistency: CREATE TABLE ... SELECT. |

+---------+------+---------------------------------------------------------------+

在線上的數據庫云服務器或測試環境中,開啟WARN模式。

    處理完GTID不支持的語句后,再啟用GTID。

對于以上關于MySQL5.7新增加的特性gtid基礎,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南川市| 云和县| 定远县| 定日县| 宜春市| 策勒县| 穆棱市| 阿尔山市| 定州市| 成安县| 饶阳县| 外汇| 利川市| 寿阳县| 金阳县| 鄂托克前旗| 绥江县| 东兴市| 民丰县| 历史| 东至县| 平舆县| 惠水县| 板桥市| 扶余县| 潞西市| 杭锦旗| 唐山市| 罗源县| 左云县| 红桥区| 盐池县| 天津市| 秀山| 镇原县| 略阳县| 八宿县| 蒲江县| 黎川县| 承德市| 广汉市|