日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用組復制

組復制MySQL Group Replication(簡稱 MGR)是MySQL官方在已有的Binlog復制框架之上,基于Paxos協議實現的一種分布式復制形態。RDS MySQL集群系列實例支持組復制。本文介紹如何使復制方式為組復制。

背景信息

使用了組復制的MySQL集群能夠基于分布式Paxos協議自我管理,具有很強的數據可靠性和數據一致性。相比傳統主備復制方式,組復制具有以下優勢:

  • 數據的強一致性:組復制集群能夠自主管理集群,當主庫故障時,能夠主動進行故障節點剔除和主備切換,并且切換后主備庫的數據仍然保持一致。

  • 數據的強可靠性:組復制中事務在提交時,一定保證數據已經復制到了超過半數的節點,因此在多數派可用的情況下,能夠保證數據不丟失。

  • 全局事務強一致性:組復制具備集群的節點間的數據全局一致讀和全局一致寫能力,可根據業務需要修改group_replication_consistency參數設置讀寫的一致性等級。

    說明
    • 數據的全局一致讀能力:您可以在備庫上設置Session級別的group_replication_consistency參數為BEFORE,然后執行查詢語句。此時,備庫會等到主庫上所有先于此查詢語句的事務應用完成后,再執行這條查詢語句。

    • 數據的全局一致寫能力:您可以在主庫上設置Session級別的group_replication_consistency參數為AFTER,然后執行寫事務,這個事務會等到所有節點應用成功后,再在主庫上返回提交成功的消息。

    • 多數派:指集群中超過半數以上的節點。

應用場景

要求數據強可靠和強一致的業務場景,例如金融、電商、核心交易系統等。

前提條件

實例滿足以下條件:

  • 系列:RDS MySQL集群系列實例。

    說明

    高可用系列實例升級為集群系列實例的方法,請參見高可用系列升級為集群系列

  • 版本:內核小版本大于或等于MySQL 8.0 20221231。如需升級內核小版本,請參見升級內核小版本

  • 存儲引擎:InnoDB。

  • 內存:大于或等于8 GB。如需升級實例規格,請參見變更配置

  • 實例節點個數大于等于3,且為單數。

  • 在有數據庫代理的情況下,代理版本:大于或等于Maxscale_MySQL_2.2.12_20230302。如需升級數據庫代理版本,請參見升級獨享代理內核小版本

  • 產品類型:標準版

說明

您可以到RDS控制臺實例的基本信息頁面查看實例的系列、版本、規格等信息。

使用限制

  • 存在X-Engine引擎表的實例不能使用組復制。

    可以通過以下SQL語句檢查是否存在X-Engine引擎表,查詢結果為0表示不存在X-Engine引擎表。

    SELECT 
      COUNT(1) 
    FROM 
      information_schema.TABLES 
    WHERE 
      ENGINE = 'xengine' 
      AND table_schema NOT IN(
        'information_schema', 'performance_schema', 
        'mysql', 'test', 'sys', '__recycle_bin__'
      );
  • 存在無主鍵表的實例不能使用組復制。

    可以通過以下SQL語句檢查是否存在無主鍵表,查詢結果為0表示不存在無主鍵表。

    SELECT 
      COUNT(1) AS count 
    FROM 
      information_schema.TABLES t1 
      LEFT OUTER JOIN information_schema.columns t2 ON t1.table_schema = t2.TABLE_SCHEMA 
      AND t1.table_name = t2.TABLE_NAME 
      AND t2.COLUMN_KEY = 'PRI' 
    WHERE 
      t2.table_name IS NULL 
      AND t1.table_type = 'BASE TABLE' 
      AND t1.TABLE_SCHEMA NOT IN(
        'information_schema', 'performance_schema', 
        'mysql', 'sys'
      );
  • 除了上述限制外,業務層面的組復制的使用限制,請參見官網文檔Requirements and Limitations

影響

將異步或半同步復制方式切換為組復制方式時,會出現實例切換,請在業務低峰期進行。請確保您的應用程序具有重連機制,重連機制需要在您的應用程序中設置。實例切換的影響請參見實例切換的影響

技術實現

組復制是基于Paxos協議實現的一種分布式復制形態。詳細實現原理請參見組復制簡介

注意事項

  • 組復制性能弱于異步復制,內存資源消耗多于異步和半同步復制,性能敏感型或資源敏感型業務請在測試后使用。

  • 為保證組復制集群的穩定運行,在使用組復制時,系統會將以下參數設為固定值,如下所示。

    disabled_storage_engines=MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY,XENGINE
    gtid_mode=ON
    enforce_gtid_consistency=ON
    log_slave_updates=ON
    binlog_format=ROW
    slave_preserve_commit_order=ON
    rpl_semi_sync_master_enabled=OFF
    rpl_semi_sync_slave_enabled=OFF
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    binlog_transaction_dependency_tracking=WRITESET
    transaction_write_set_extraction=XXHASH64
    slave_parallel_type=LOGICAL_CLOCK
    replication_communication_stack=MYSQL
    group_replication_single_primary_mode=ON
    group_replication_paxos_single_leader=ON
    group_replication_consistency=BEFORE_ON_PRIMARY_FAILOVER

費用

使用組復制不需要額外支付費用。

操作步驟

新創建使用組復制的實例

在創建RDS MySQL集群系列實例時,參數模板選擇MySQL_InnoDB_8.0_集群系列_組復制參數模板,即可開通復制方式為組復制的實例。

已創建的實例變更為組復制

如果您已經有RDS MySQL集群系列實例,可以在實例基本信息頁面的實例拓撲管理區域,單擊修改數據復制方式,在彈出的對話框中選中組復制,單擊確認,即可將實例復制方式變更為組復制。

說明

組復制也可以切換為異步或半同步復制。

常見問題

Q:使用組復制后,還能切換回異步或半同步復制模式嗎?

A:可以。異步、半同步、組復制三種復制模式可以相互切換,您可以在實例基本信息頁面的實例拓撲管理區域,單擊修改數據復制方式,在彈出的對話框中修改復制方式。

Q:使用組復制后,備節點還支持可讀嗎?

A:支持。由于組復制的各節點之間使用Paxos協議,在備節點負載過高的情況下,會影響主節點寫入性能,建議開通數據庫代理服務進行讀寫分離,數據庫代理支持配置讀權重和復制延遲閾值,可有效避免備節點負載過高。

Q:組復制支持多主模式嗎?

A:不支持。RDS MySQL當前只提供單主模式的組復制實例。多主模式下集群的穩定性很差,任意節點的抖動或故障,都會影響全集群的可用性。

Q:為什么使用組復制要求內存大于等于8 GB?

A:在開啟組復制后,Xcom層中維護了一個約1 GB的Xcom Cache,用來儲存Xcom message。組復制的事務認證模塊會維護一個認證信息數組,占用一定的內存。組復制還會開啟額外的后臺線程,消耗部分內存。如果購買的實例規格內存偏小,在有大查詢等內存使用率較高的場景下,會導致實例OOM。因此,我們推薦開啟組復制的實例盡量選取內存較大的規格。

Q:使用組復制后,應該購買通用型規格還是獨享型規格?

A:由于組復制會使用額外的內存,所以當購買的規格內存較小時(8 GB~16 GB),推薦選取通用型規格,可以規避部分管控內存消耗,提升實例的可用內存;

如果所購買內存較大(如32 GB),推薦選取獨享型規格實例,可以獲取更好的隔離性與高峰性能。

相關API

API

描述

創建一個RDS實例

調用CreateDBInstance接口創建復制方式為組復制的集群系列實例時,您需要將DBParamGroupId參數值設置為rpg-sys-01040407010400,其他參數請按需配置。

修改實例的高可用模式和數據復制方式

調用ModifyDBInstanceHAConfig接口修改實例的復制方式為組復制時,您需要將SyncMode參數設置為Mgr,其他參數請按需配置。