使用我的 Aurora 設定複寫篩選器 SQL - Amazon Aurora

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

使用我的 Aurora 設定複寫篩選器 SQL

您可以使用複寫篩選條件來指定要與僅供讀取複本一起複寫的資料庫和資料表。複寫篩選條件可以包含複寫中的資料庫和資料表,或將其排除在複寫之外。

下列是複寫篩選條件的一些應用案例:

  • 要縮小僅供讀取複本的大小。使用複寫篩選,您可以排除僅供讀取複本不需要的資料庫和資料表。

  • 基於安全考量,要將資料庫和資料表從僅供讀取複本中排除。

  • 為不同僅供讀取複本的特定應用案例複寫不同的資料庫和資料表。例如,您可以使用特定僅供讀取複本進行分析或分區。

  • 對於具有不同僅供讀取複本的資料庫叢集 AWS 區域,以複製不同的資料庫或資料表 AWS 區域.

  • 指定要使用在輸入複寫拓撲中設定為複本的 Aurora My SQL DB 叢集複寫哪些資料庫和表格。如需此組態的詳細資訊,請參閱「在 Aurora 和我之間SQL或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位記錄複寫」。

為我的 Aurora 設定複寫篩選參數 SQL

若要設定複製篩選器,請設定下列參數:

  • binlog-do-db - 將變更複寫到指定的二進位日誌。當您為 binlog 來源叢集設定此參數時,只會複寫參數中指定的二進位記錄檔。

  • binlog-ignore-db - 請不要將變更複寫到指定的二進位日誌。為 binlog 來源叢集設定binlog-do-db參數時,不會評估此參數。

  • replicate-do-db – 將變更複寫至指定的資料庫。當您為 binlog 複本叢集設定此參數時,只會複寫參數中指定的資料庫。

  • replicate-ignore-db – 請勿將變更複寫至指定的資料庫。為 binlog 複本叢集設定replicate-do-db參數時,不會評估此參數。

  • replicate-do-table – 將變更複製到指定的資料表。當您為僅供讀取複本設定此參數時,只會複寫參數中指定的資料表。此外,設定replicate-do-dbreplicate-ignore-db參數時,請務必在 binlog 複本叢集的複寫中包含包含指定表格的資料庫。

  • replicate-ignore-table – 請勿將變更複寫至指定的資料表。為 binlog 複本叢集設定replicate-do-table參數時,不會評估此參數。

  • replicate-wild-do-table – 根據指定的資料庫和資料表名稱模式複寫資料表。支援 %_ 萬用字元。設定replicate-do-dbreplicate-ignore-db參數時,請務必在 binlog 複本叢集的複寫中包含包含指定表格的資料庫。

  • replicate-wild-ignore-table – 請勿根據指定的資料庫和資料表名稱模式複寫資料表。支援 %_ 萬用字元。為 binlog 複本叢集設定replicate-do-tablereplicate-wild-do-table參數時,不會評估此參數。

系統會按照列出的順序對參數進行評估。如需這些參數如何運作的詳細資訊,請參閱 My SQL 文件:

根據預設,這些參數中的每個參數都有一個空值。在每個 binlog 叢集上,您可以使用這些參數來設定、變更和刪除複寫篩選器。當您設定其中一個參數時,請使用逗號將每個篩選條件與其他篩選條件分隔。

您可以在 %_ 參數中使用 replicate-wild-do-tablereplicate-wild-ignore-table 萬用字元。% 萬用字元等同於任意數目的字元,而 _ 萬用字元只會等同於一個字元。

來源資料庫執行個體的二進位記錄格式對複寫非常重要,因為它會決定資料變更的記錄。binlog_format 參數的設定會決定複寫是以資料列為基礎還是以陳述式為基礎。如需詳細資訊,請參閱設定 Aurora MySQL 二進位記錄

注意

無論來源資料庫執行個體的binlog_format設定為何,所有資料定義語言 (DDL) 陳述式都會複寫為陳述式。

我的 Aurora 的複寫篩選限制 SQL

下列限制適用於 Aurora My 的複寫篩選SQL:

  • 只有 Aurora 我的SQL版本 3 才支援複寫篩選器。

  • 每個複寫篩選參數都有 2,000 個字元的限制。

  • 複寫篩選條件不支援逗號。

  • 複寫篩選不支援 XA 交易。

    如需詳細資訊,請參閱 My SQL 文件中的 XA 交易限制

我的 Aurora 的複寫篩選範例 SQL

若要設定僅供讀取複本的複寫篩選,請修改與僅供讀取複本關聯之資料庫叢集參數群組中的複寫篩選參數。

注意

您無法修改預設資料庫叢集參數群組。如果僅供讀取複本使用預設參數群組,請建立新的參數群組,並將它與僅供讀取複本建立關聯。如需資料庫叢集參數群組的詳細資訊,請參閱 Amazon Aurora 的參數群組

您可以使用 AWS Management Console, AWS CLI,或RDSAPI。如需有關設定參數的詳細資訊,請參閱 修改 Aurora 數據庫參數組中的參數。當您在資料庫叢集參數群組中設定參數時,與參數群組關聯的所有資料庫叢集都會使用參數設定。如果您在資料庫叢集參數群組中設定複寫篩選參數,請確定參數群組僅與僅供讀取複本叢集相關聯。將來源資料庫執行個體的複寫篩選參數保留空白。

以下實例設置參數使用 AWS CLI。 這些範例設定ApplyMethod為,immediate以便在CLI指令完成後立即發生參數變更。如果您想要在僅供讀取複本重新啟動後套用擱置變更,請將設定 ApplyMethodpending-reboot

下列範例會設定複寫篩選條件:

範例 在複寫中包含資料庫

下列範例包含複寫中的 mydb1mydb2 資料庫。

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-do-db,ParameterValue='mydb1,mydb2',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-do-db,ParameterValue='mydb1,mydb2',ApplyMethod=immediate"
範例 在複寫中包含資料表

下列範例包含複寫資料庫 table1 中的 table2mydb1 資料表。

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-do-table,ParameterValue='mydb1.table1,mydb1.table2',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-do-table,ParameterValue='mydb1.table1,mydb1.table2',ApplyMethod=immediate"
範例 使用萬用字元在複寫中包含資料表

下列範例包含複寫時在資料庫 order 中名稱開頭為 returnmydb 的資料表。

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-wild-do-table,ParameterValue='mydb.order%,mydb.return%',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-wild-do-table,ParameterValue='mydb.order%,mydb.return%',ApplyMethod=immediate"
範例 從複寫中排除資料庫

下列範例會從複寫中排除 mydb5mydb6 資料庫。

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-db,ParameterValue='mydb5,mydb6',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-ignore-db,ParameterValue='mydb5,mydb6,ApplyMethod=immediate"
範例 從複寫中排除資料表

下列範例會從複寫中排除資料庫 mydb5 中的資料表 table1 和資料庫 mydb6 中的 table2

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-table,ParameterValue='mydb5.table1,mydb6.table2',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-ignore-table,ParameterValue='mydb5.table1,mydb6.table2',ApplyMethod=immediate"
範例 使用萬用字元從複寫中排除資料表

下列範例會從複寫中排除資料庫 order 中名稱開頭為 returnmydb7 的資料表。

用於 Linux, macOS,或 Unix:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-wild-ignore-table,ParameterValue='mydb7.order%,mydb7.return%',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name myparametergroup ^ --parameters "ParameterName=replicate-wild-ignore-table,ParameterValue='mydb7.order%,mydb7.return%',ApplyMethod=immediate"

檢視僅供讀取複本的複寫篩選條件

您可以使用下列方式檢視僅供讀取複本的複寫篩選條件:

  • 檢查與僅供讀取複本關聯之參數群組中複寫篩選參數的設定。

    如需說明,請參閱「檢視 Aurora 中資料庫參數群組的參數值」。

  • 在 [我的SQL用戶端] 中,連線到僅供讀取複本並執行SHOW REPLICA STATUS陳述式。

    在輸出中,下列欄位會顯示僅供讀取複本的複寫篩選條件:

    • Binlog_Do_DB

    • Binlog_Ignore_DB

    • Replicate_Do_DB

    • Replicate_Ignore_DB

    • Replicate_Do_Table

    • Replicate_Ignore_Table

    • Replicate_Wild_Do_Table

    • Replicate_Wild_Ignore_Table

    如需這些欄位的詳細資訊,請參閱我的SQL文件集中的檢查複寫狀態