View a markdown version of this page

Conversione di un’istanza database esistente in un cluster attivo-attivo - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Conversione di un’istanza database esistente in un cluster attivo-attivo

La versione del motore di database dell’istanza database da migrare in cluster attivo-attivo deve essere una delle seguenti:

  • Tutte le versioni di MySQL 8.4

  • MySQL 8.0.35 e versioni secondarie successive

Se è necessario aggiornare la versione del motore, consulta Aggiornamenti del motore di database RDS per MySQL.

Se configuri un cluster attivo-attivo con istanze database in più di un cloud privato virtuale, verifica che i prerequisiti in Preparazione per un cluster attivo-attivo tra VPC siano soddisfatti.

Per migrare un’istanza database esistente in un cluster attivo-attivo per RDS per MySQL, esegui queste operazioni.

Fase 1: impostare i parametri del cluster attivo-attivo in uno o più gruppi di parametri personalizzati

Le istanze database RDS per MySQL in un cluster attivo-attivo devono essere associate a un gruppo di parametri personalizzato con l’impostazione corretta per i parametri richiesti. Per ulteriori informazioni sui parametri e la relativa impostazione per ciascuno, consulta Impostazioni dei parametri richieste per i cluster attivi-attivi.

È possibile impostare i parametri in nuovi gruppi di parametri o in gruppi di parametri esistenti. Tuttavia, per evitare di influire accidentalmente sulle istanze database che non fanno parte del cluster attivo-attivo, si consiglia di creare un nuovo gruppo di parametri personalizzato. Le istanze database di un cluster attivo-attivo possono essere associate allo stesso gruppo di parametri di database oppure a gruppi di parametri di database diversi.

È possibile utilizzare Console di gestione AWS o il AWS CLI per creare un nuovo gruppo di parametri personalizzato. Per ulteriori informazioni, consulta Creazione di un gruppo di parametri database in Amazon RDS. L'esempio seguente esegue il AWS CLI comando create-db-parameter-group per creare un gruppo di parametri DB personalizzato denominato RDS for myactivepg MySQL 8.0:

Per Linux, macOS o Unix:

aws rds create-db-parameter-group \ --db-parameter-group-name myactivepg \ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters"

Per Windows:

aws rds create-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters"

È inoltre possibile utilizzare Console di gestione AWS o the per impostare i parametri nel gruppo di parametri personalizzato AWS CLI . Per ulteriori informazioni, consulta Modifica dei parametri in un gruppo di parametri database in Amazon RDS.

L'esempio seguente esegue il AWS CLI comando modify-db-parameter-group per impostare i parametri per RDS for MySQL 8.0. Per utilizzare questo esempio con RDS per MySQL 8.4, modificare slave_preserve_commit_order in replica_preserve_commit_order.

Per Linux, macOS o Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myactivepg \ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"

Per Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"

Fase 2: associare l’istanza database a un gruppo di parametri di database con i parametri di replica di gruppo richiesti impostati

Associa l’istanza database a un gruppo di parametri di database creato o modificato nella fase precedente. Per istruzioni, consulta Associazione di un gruppo di parametri database a un’istanza database in Amazon RDS.

Affinché le nuove impostazioni del parametro abbiano effetto, riavvia l’istanza database. Per istruzioni, consulta Riavvio di un'istanza DB DB.

Fase 3: creare il cluster attivo-attivo

Nel gruppo di parametri di database associato a ciascuna istanza database, imposta il parametro group_replication_group_seeds sull’endpoint delle istanze database in fase di conversione.

È possibile utilizzare o the per impostare il parametro. Console di gestione AWS AWS CLI Dopo aver impostato il parametro, non è necessario riavviare l’istanza database. Per informazioni sull’impostazione dei parametri, consulta Modifica dei parametri in un gruppo di parametri database in Amazon RDS.

L’esempio seguente utilizza il comando modify-db-parameter-group della AWS CLI per impostare i parametri:

Per Linux, macOS o Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myactivepg \ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"

Per Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"

Fase 4: creare istanze database RDS per MySQL per il cluster attivo-attivo

Per creare istanze database aggiuntive per il cluster attivo-attivo, esegui il ripristino point-in-time sull’istanza database in fase di conversione. Per istruzioni, consulta Aggiunta di un’istanza database a un cluster attivo-attivo tramite il ripristino point-in-time.

Nei cluster attivi-attivi possono essere presenti fino a nove istanze database. Esegui il ripristino point-in-time sull’istanza database fino a ottenere il numero di istanze database desiderate per il cluster. Quando esegui il recupero point-in-time, assicurati di associare l’istanza database in fase di aggiunta a un gruppo di parametri di database con rds.group_replication_enabled impostato su 1. In caso contrario, la replica di gruppo non verrà avviata sull’istanza database aggiunta.

Fare 5: inizializzare il gruppo sull’istanza database in fase di conversione

Inizializza il gruppo e avvia la replica:

  1. Connettiti all’istanza database in fase di conversione in un client SQL. Per ulteriori informazioni sulla connessione a un’istanza database RDS per MySQL, consulta Connessione all’istanza database MySQL.

  2. Nel client SQL, esegui le seguenti stored procedure e group_replication_user_password sostituiscile con la password dell'rdsgrprepladminutente. In un cluster attivo-attivo, l’utente rdsgrprepladmin è riservato alle connessioni di replica di gruppo. La password di tale utente deve essere la stessa su tutte le istanze database di un cluster attivo-attivo.

    call mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(1);

    Questo esempio imposta il valore binlog retention hours su 168 in modo che i file di log binari vengano mantenuti per sette giorni nell’istanza database. È possibile modificare questo valore per soddisfare i requisiti specifici.

    Questo esempio specifica 1 nella stored procedure mysql.rds_group_replication_start per inizializzare un nuovo gruppo con l’istanza database corrente.

    Per ulteriori informazioni sulle stored procedure chiamate nell’esempio, consulta Gestione di cluster attivi-attivi.

Fase 6: avviare la replica sulle altre istanze database nel cluster attivo-attivo

Per ciascuna istanza database del cluster attivo-attivo, utilizza un client SQL per connetterti all’istanza ed esegui queste stored procedure. Sostituire group_replication_user_password con la password dell'rdsgrprepladminutente.

call mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(0);

Questo esempio imposta il valore binlog retention hours su 168 in modo che i file di log binari vengano mantenuti per sette giorni in ciascuna istanza database. È possibile modificare questo valore per soddisfare i requisiti specifici.

L’esempio specifica 0 nella stored procedure mysql.rds_group_replication_start per unire l’istanza database corrente a un gruppo esistente.

Suggerimento

Assicurati di eseguire queste stored procedure su tutte le altre istanze database del cluster attivo-attivo.

Fase 7 (consigliata): verificare lo stato del cluster attivo-attivo

Per verificare che ogni membro del cluster sia configurato correttamente, connettiti a un’istanza database del cluster attivo-attivo ed esegui questo comando SQL per controllare lo stato del cluster:

SELECT * FROM performance_schema.replication_group_members;

L’output deve essere ONLINE per l’elemento MEMBER_STATE di ogni istanza database, come nell’output di esempio seguente:

+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK | +---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+ | group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL | | group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL | | group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL | +---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+ 3 rows in set (0.00 sec)

Per informazioni sui possibili valori MEMBER_STATE, consulta Group Replication Server States nella documentazione MySQL.