使用 My 配置複製篩選器 SQL - Amazon Relational Database Service

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

使用 My 配置複製篩選器 SQL

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

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

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

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

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

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

注意

您也可以使用複寫篩選器,指定要使用設定為輸入複寫拓撲中的複本的主要 My SQL DB 執行個體來複製哪些資料庫和表格。如需此組態的詳細資訊,請參閱「使用外部來源執行個體設定二進位日誌檔案位置複寫」。

為 RDS [我的] 設定複寫篩選參數 SQL

要設定複寫篩選條件,請在僅供讀取複本上設定下列複寫篩選參數:

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

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

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

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

  • replicate-wild-do-table – 根據指定的資料庫和資料表名稱模式複寫資料表。支援 %_ 萬用字元。設定 replicate-do-dbreplicate-ignore-db 參數時,請務必使用僅供讀取複本將包含指定資料表的資料庫納入複寫中。

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

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

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

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

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

注意

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

[我的] 的複寫篩選限制 RDS SQL

下列限制適用於 [我的] 的RDS複寫篩選SQL:

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

  • 參數值的複寫篩選器不支援逗號。在參數清單中,逗號只能用作值分隔符號。例如,ParameterValue='`a,b`'不支援,但ParameterValue='a,b'是是.

  • 我的SQL--binlog-do-db和二進位記錄篩--binlog-ignore-db選的選項不受支援。

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

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

[我的] 的複寫篩選範例 RDS SQL

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

注意

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

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

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

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

範例 在複寫中包含資料庫

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

用於 Linux, macOS,或 Unix:

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

用於 Windows:

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

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

用於 Linux, macOS,或 Unix:

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

用於 Windows:

aws rds modify-db-parameter-group ^ --db-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-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-wild-do-table,ParameterValue='mydb.order%,mydb.return%',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-parameter-group ^ --db-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-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-db,ParameterValue='mydb5,mydb6',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-parameter-group ^ --db-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-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-table,ParameterValue='mydb5.table1,mydb6.table2',ApplyMethod=immediate"

用於 Windows:

aws rds modify-db-parameter-group ^ --db-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-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-wild-ignore-table,ParameterValue='mydb7.order%,mydb7.return%',ApplyMethod=immediate"

用於 Windows:

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

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

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

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

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

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

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

    • Replicate_Do_DB

    • Replicate_Ignore_DB

    • Replicate_Do_Table

    • Replicate_Ignore_Table

    • Replicate_Wild_Do_Table

    • Replicate_Wild_Ignore_Table

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

    注意

    以前版本的我SQL使用SHOW SLAVE STATUS而不是SHOW REPLICA STATUS. 如果您使用的是 8.0.23 之前的「我的SQL版本」,請使用. SHOW SLAVE STATUS