使用 GTID 式複寫 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 GTID 式複寫

接下來,您可以了解如何在 Aurora MySQL 叢集和外部來源間搭配使用全域交易識別符 (GTID) 與二進位日誌 (binlog) 複寫。

注意

若為 Aurora,您僅可對會在外部 MySQL 資料庫間進行 binlog 複寫的 Aurora MySQL 叢集使用這項功能。其他資料庫可能是 Amazon RDS MySQL 執行個體、內部部署的 MySQL 資料庫,或是位於不同 AWS 區域 中的 Aurora 資料庫叢集。若要了解如何設定該類型的複寫作業,請參閱Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)

如果您是使用 binlog 複寫,且不熟悉如何在 MySQL 使用 GTID 式複寫,則可參閱 MySQL 文件中的使用全域交易識別符的複寫

Aurora MySQL 第 2 版和第 3 版不支援 GTID 型複寫。

全域交易識別符 (GTID) 的概觀

「全域交易識別符 (GTID)」是系統為遞交的 MySQL 交易所產生的唯一識別符。GTID 能讓 binlog 複寫的操作更簡單,也更容易進行故障診斷。

注意

當 Aurora 在叢集中的資料庫執行個體間同步資料時,該複寫機制並不會用到二進位日誌 (binlog)。在 Aurora MySQL 中,唯有您同時使用 binlog 複寫功能來複寫資料至外部 MySQL 相容資料庫的 Aurora MySQL 資料庫叢集,或從中複寫資料的情況下,才能套用 GTID 式複寫。

進行 binlog 複寫作業時,MySQL 會使用兩種不同類型的交易:

  • GTID 交易 – 透過 GTID 識別的交易。

  • 匿名交易 – 未指派 GTID 的交易。

在複寫組態中,全部的資料庫執行個體都有各自不同的 GTID。GTID 可簡化複寫組態,因為使用時不需要參照日誌檔案位置。GTID 也使得追蹤複寫的交易更容易,而且可決定來源執行個體和複本是否一致。

一般而言,當您從外部 MySQL 相容資料庫複寫至 Aurora 叢集時,即可對 Aurora 叢集使用 GTID 式複寫。您可以設定這個複寫組態,將其做為從現場部署資料庫或 Amazon RDS 資料庫到 Aurora MySQL 遷移流程的一部分。如果外部資料庫已使用 GTID,則可為 Aurora 叢集啟用 GTID 式複寫功能,藉此簡化複寫程序。

若要為 Aurora MySQL 叢集設定 GTID 式複寫,您首先要在資料庫叢集參數群組中設定相關的組態參數。接著,請建立該參數群組與叢集間的關聯。

GTID 式複寫的參數

使用以下參數來設定 GTID 式複寫。

參數 有效值 描述

gtid_mode

OFF, OFF_PERMISSIVE, ON_PERMISSIVE, ON

OFF 指定新交易是匿名交易 (也就是沒有 GTID),而且交易必須是匿名交易才能複寫。

OFF_PERMISSIVE 指定新交易是匿名交易,但全部交易都可以複寫。

ON_PERMISSIVE 指定新交易是 GTID 交易,而且全部交易都可以複寫。

ON 指定新交易是 GTID 交易,而且交易必須是 GTID 交易才能複寫。

enforce_gtid_consistency

OFF, ON, WARN

OFF 允許交易違反 GTID 一致性。

ON 可避免交易違反 GTID 一致性。

WARN 允許交易違反 GTID 一致性,但會在出現違反行為時產生警告。

注意

在 AWS Management Console 中,gtid_mode 參數會顯示為 gtid-mode

進行 GTID 式複寫時,您可以使用下列設定來配置 Aurora MySQL 資料庫叢集的資料庫叢集參數群組:

  • ONON_PERMISSIVE 僅適用於從 Aurora MySQL 叢集進行的傳出複寫作業。這兩個值都會導致 Aurora 資料庫叢集使用 GTID 來執行複寫至外部資料庫的交易。如果設定 ON,外部資料庫需同時使用 GTID 式複寫。如果設定 ON_PERMISSIVE,則外部資料庫不一定要使用 GTID 式複寫。

  • 若設定 OFF_PERMISSIVE,表示 Aurora 資料庫叢集可接受來自外部資料庫的傳入複寫作業。無論外部資料庫是否使用 GTID 式複寫,此值都能實現這項功能。

  • 若設定 OFF,表示唯有在外部資料庫未使用 GTID 式複寫的情況下,Aurora 資料庫叢集才能接受來自該資料庫的傳入複寫作業。

提示

傳入複寫是 Aurora MySQL 叢集最常見的 binlog 複寫案例。如果要進行傳入複寫,建議您將 GTID 模式設定為 OFF_PERMISSIVE。該設定可允許來自外部資料庫的傳入複寫作業,不管複寫來源的 GTID 設定為何都是如此。

如需參數群組的詳細資訊,請參閱Amazon Aurora 的參數群組