MySQL 基礎知識梳理學習(四)----GTID

来源:https://www.cnblogs.com/xuliuzai/archive/2019/01/13/10246914.html
-Advertisement-
Play Games

在日常運維中,GTID帶來的最方便的作用就是搭建和維護主從複製。GTID的主從模式代替了MySQL早期版本中利用二進位日誌文件的名稱和日誌位置的做法,使用GTID使操作和維護都變得更加簡潔和可高。 1.GTID的優點 (1)基於GTID搭建主從複製根據簡單。 (2)可以確保每個事務只會被執行一次。 ...


在日常運維中,GTID帶來的最方便的作用就是搭建和維護主從複製。GTID的主從模式代替了MySQL早期版本中利用二進位日誌文件的名稱和日誌位置的做法,使用GTID使操作和維護都變得更加簡潔和可高。

1.GTID的優點

(1)基於GTID搭建主從複製根據簡單。

(2)可以確保每個事務只會被執行一次。

(3)可以方便的實現Replication的Failover,不需要像傳統模式複製那樣去找master_log_file和master_log_pos。

(4)GTID在MGR中也發揮了中要作用。MGR各節點之間複製依賴於GTID,並且在集群節點進行Recover重新加入到集群的操作中,會選擇其中一個節點作為Donor,然後基於Purged的GTID開始同步數據。MGR還是通過GTID進行衝突驗證,用於跟蹤每個實例上提交的事務,確定哪些事務可能有衝突。

2.使用GTID搭建主從時,需要註意的MySQL參數。

(1)server_id: 設置MySQL實例的server_id,每個實例的server_id不能一樣。

(2)gtid_mod=ON: MySQL實例開啟GTID模式。

(3)enforce_gtid_consitency=ON: 使用GTID模式複製時,需要開啟此參數,用來保證GTID的一致性。

(4)log-bin: MySQL必須開啟Binlog。

(5)log-slave-updates=1: 決定slave從master接受到的更新且執行之後,執行的Binlog是否記錄到salve的Binlog中,建議開啟。

(6)binlog_format=ROW:強烈建議binlog_format使用ROW格式,其它格式可能造成數據不一致。

(7)skip-slave-start=1:當salve資料庫啟動的時候,salve不會自動開啟複製。

3.使用GTID的註意事項

由於基於GTID的複製依賴於事務,所以在使用GTID時,有些MySQL特性不支持。

(1)事務中混合多個存儲引擎,會產生多個GTID。

當使用GTID時,如果在同一個事務中,更新包含了非事務引擎(如MyISAM)和事務引擎(InnoDB)表的操作,就會導致多個GTID分配給同一個事務。

(2)主從庫的表存儲引擎不一致,會導致數據不一致。

如果主從庫的存儲引擎不一致,例如一個是事務存儲引擎,一個是非事務存儲引擎,則會導致事務和GTID之間一對一的關係被破壞,結果導致基於GTID的複製不能正確地運行。

(3)基於GTID模式複製,不支持Create table ...select 語句。

因為使用基於行模式的複製時,該語句實際上被記錄為兩個單獨的事件,一個是創建表,另一個是將原表中的數據插入到剛剛新建的表中。當在事務中執行該語句時,在一些情況下。這兩個事務可能接收到相同的事務ID,這意味著包含插入的事務將被從庫挑過。

(4)不支持Create Temporary table 和 drop temporary table。

使用GTID複製時, 不支持Create Temporary table 和 drop temporary table。但是,在autocommit=1的情況下可以創建臨時表,master創建臨時表不產生GTID信息,所以不會同步到Salve上,但是刪除臨時表時,產生GTID會導致主從中斷。

(5)不推薦在GTID模式的實例上進行mysql_upgrade.

因為mysql_upgrade的過程要創建或修改系統表,而系統表時非事務引擎,所以不建議在開啟GTID模式的實例上使用帶有--write-binlog選項的mysql_upgrade。

 

-----主要內容參考梳理於網路知識,此短文僅為學習筆記,在此原創作者感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.URL 生成 接著上篇講MVC的路由,MVC 應用程式可以使用路由的 URL 生成功能,生成指向操作的 URL 鏈接。 生成 URL 可消除硬編碼 URL,使代碼更穩定、更易維護。 此部分重點介紹 MVC 提供的 URL 生成功能,並且僅涵蓋 URL 生成工作原理的基礎知識。 IUrlHelpe ...
  • 內容來自:https://codereview.stackexchange.com/questions/20871/single-instance-wpf-application 第一步:添加System.RunTime.Remoting引用 第二步:新建一個類class1.cs(按自己想法命名) ...
  • 我們經常花費大量的時間來進行使用瀏覽器搜索網頁,如何進行高效的搜索,需要掌握一些快捷鍵: 使用這些快捷鍵可以,讓游標快速定位到地址欄進行使用預設引擎搜索! 資源來源自網路,保持更新,轉載請註明出處。 ...
  • 今天維護系統時發現一個非常詭異的問題:AAA用戶和BBB用戶同屬AAA組,但用AAA用戶創建的文件,許可權設置為777後,還是不能用BBB用戶刪除。詭異! 幾經周轉,發現AAA用戶創建文件位置的上層目錄的許可權是drwxrwxrwt,做開發這麼多年了,還沒見過所謂"t"的許可權,於是找了一位公司的linu ...
  • cobbler網路裝機 原理分析 cobbler簡介 Cobbler通過將設置和管理一個安裝伺服器所涉及的任務集中在一起,從而簡化了系統配置。相當於Cobbler封裝了DHCP、TFTP、XINTED等服務,結合了PXE、kickstart等安裝方法,可以實現自動化安裝操作系統,並且可以同時提供多種 ...
  • 有時我們在安裝系統後,發現沒有安裝當前系統的內核源碼在/usr/src/kernels目錄下,其實我們是少安裝了一個rpm包; 當你配置好yum源後: 更多源碼網址:https://mirrors.tuna.tsinghua.edu.cn/kernel/ 保持更新,轉載請註明出處。 ...
  • FUSE 倉庫 Wiki FUSE 性能評測 關於Fuse文件系統: FUSE (Filesystem in Userspace) is an interface for userspace programs to export a filesystem to the Linux kernel. T ...
  • 一 kubectl介紹 1.1 kubectl概要 kubectl控制Kubernetes集群管理器,使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理應用程式。使用kubectl,您可以檢查群集資源; 創建,刪除和更新組件; 看看你的新集群; 並提出示例應用程式。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...