Mysql

是為所有事務創建 MySQL GTID,還是僅為啟用 GTID 後發生的事務創建?

  • October 10, 2017

我有一個要開始複製的 MySQL 數據庫,我計劃使用 GTID 來複製。從站將是位於海外的全新虛擬化伺服器。

我的問題有兩個:

  1. 當我在現有主伺服器上啟用 GTID 時,是否會為所有以前的事務創建 GTID?還是只會為啟用 GTID 後發布的交易創建它們?
  2. 如果是,我可以簡單地讓從屬設備按照自己的節奏重播所有 GTID 嗎?(這意味著我不必在啟用複制之前同步從屬設備)
  • 我不在乎從站同步需要多長時間(當然,在合理範圍內。2 周可能是最大值)。

我將在周一或週二在一些虛擬開發伺服器上對此進行測試,但我想我會先在這裡問。

版本和數據庫資訊:

  • 大師: Windows Server 2008R2 上的 MySQL 5.6.19(EoL,我知道…),但將在開始複製之前升級到 5.6.37,然後在之後的某個時間升級到 5.7.x。

    • log_bin此伺服器目前為OFF
  • 從站: Ubuntu Server 16.04 LTS 上的 MySQL 5.7.19(已驗證兼容

  • **大小:**它可能被認為是一個小型數據庫,總共只有大約 330GB 和大約 25 億行。

以前的研究

我在GTID 文件和整個複製文件中都找不到任何答案。

到目前為止,我已經在各種開發伺服器上完成並啟用了基於二進制日誌的複制基於 GTID 的複制,但它們 1)非常小/空;2)log_bin從一開始就啟用;或 3) 在啟用複制之前同步。

正如我所料,不會為預先存在的數據創建 GTID。

這是有道理的,因為,尤其是在沒有二進制日誌的情況下,伺服器如何知道哪些事務用於生成數據?

引用自:https://dba.stackexchange.com/questions/187935