Importazione dei dati in un database Amazon RDS per MySQL con tempo di inattività ridotto - 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à.

Importazione dei dati in un database Amazon RDS per MySQL con tempo di inattività ridotto

In alcuni casi, potrebbe essere necessario importare dati da un database MySQL esterno che supporti un’applicazione attiva per un’istanza database RDS per MySQL oppure per un cluster di database MySQL Multi-AZ. Usa la seguente procedura per ridurre l'impatto sulla disponibilità delle applicazioni. Questa procedura può risultare utile anche quando utilizzi un database di dimensioni particolarmente elevate. Ti consente inoltre di ridurre i costi dell'importazione diminuendo la quantità di dati trasmessi in rete ad AWS.

Con questa procedura trasferisci una copia dei dati del database in un'istanza Amazon EC2 e li importi in un nuovo database Amazon RDS. Utilizza quindi la replica per portare il database Amazon RDS up-to-date con la tua istanza esterna attiva, prima di reindirizzare l'applicazione al database Amazon RDS. Configurare la replica in base alle coordinate del log binario.

Nota

Per importare i dati in un’istanza database RDS per MySQL, se lo scenario supporta questo approccio si consiglia di spostare dati da e verso Amazon RDS usando i file di backup e Amazon S3. Per ulteriori informazioni, consulta Ripristino di un backup in un’istanza database Amazon RDS per MySQL.

Il diagramma seguente mostra l’importazione di un database MySQL esterno in un database MySQL in Amazon RDS.

Flusso di lavoro che mostra l’importazione di un database MySQL esterno in un database MySQL in Amazon RDS.

Attività 1: creazione di una copia del database esistente

Il primo passaggio da eseguire nella migrazione di grandi quantità di dati in un database RDS per MySQL riducendo al minimo il tempo di inattività consiste nella creazione di una copia dei dati di origine.

Il diagramma seguente mostra la creazione di un backup del database MySQL.

Flusso di lavoro che mostra la creazione di un backup del database MySQL.

Puoi utilizzare l'utility mysqldump per creare un backup del database in formato SQL o come testo delimitato. Si consiglia di eseguire un test con ciascun formato, fuori dall’ambiente di produzione, per capire quale metodo consenta di ridurre maggiormente il tempo di esecuzione di mysqldump.

Si consiglia anche di valutare le prestazioni di mysqldump e i vantaggi offerti dal caricamento nel formato con testo delimitato. Un backup eseguito con testo delimitato crea un file di testo separato da tabulazioni per ciascuna tabella eliminata. Per ridurre il tempo di importazione del database, puoi caricare questi file in parallelo con il comando LOAD DATA LOCAL INFILE. Per ulteriori informazioni, consulta Fase 5: Caricamento dei dati nella procedura Importazione di dati da qualsiasi origine.

Prima di iniziare l’operazione di backup, imposta le opzioni di replica nel database MySQL da copiare in Amazon RDS. Le opzioni di replica includono l’attivazione del log binario e l’impostazione di un ID server univoco. L'impostazione di tali opzioni porta il server ad avviare la registrazione delle transazioni del database e lo prepara per diventare l'istanza di replica di origine in una fase successiva del processo.

Assicurati di essere a conoscenza dei seguenti suggerimenti e considerazioni:

  • Utilizzare l'opzione --single-transaction con mysqldump perché esegue il dump di uno stato coerente del database. Per garantire un file di dump valido, non eseguire istruzioni DDL (Data Definition Language) durante l'esecuzione di mysqldump. È possibile pianificare una finestra di manutenzione per queste operazioni.

  • Escludi gli schemi seguenti dal file di dump:

    • sys

    • performance_schema

    • information_schema

    Per impostazione predefinita, l'utility mysqldump esclude questi schemi.

  • Se devi migrare utenti e privilegi, prendi in considerazione l'utilizzo di uno strumento che genera il linguaggio di controllo dei dati (DCL) per ricrearli, come l'utilità. pt-show-grants

Per impostare le opzioni di autenticazione

  1. Modificare il file my.cnf. Il file si trova in genere in /etc.

    sudo vi /etc/my.cnf

    Aggiungere le opzioni log_bin e server_id alla sezione [mysqld]. L'opzione log_bin fornisce un identificatore di nome file per i file di log binari. L'opzione server_id fornisce un identificatore univoco per il server in relazioni master-replica.

    L’esempio seguente mostra la sezione [mysqld] aggiornata di un file my.cnf:

    [mysqld] log-bin=mysql-bin server-id=1

    Per ulteriori informazioni, consulta Setting the Replication Source Configuration nella documentazione MySQL.

  2. Per la replica con un cluster di database Multi-AZ, imposta ENFORCE_GTID_CONSISTENCY e il parametro GTID_MODE su ON.

    mysql> SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
    mysql> SET @@GLOBAL.GTID_MODE = ON;

    Queste impostazioni non sono necessarie per la replica con un'istanza database.

  3. Riavvia il servizio mysql.

    sudo service mysqld restart

Per creare una copia di backup del database esistente

  1. Creare un backup dei dati con l'utility mysqldump, specificando SQL o testo delimitato.

    Per MySQL 8.0.25 e versioni precedenti, specifica --master-data=2 per creare un file di backup da utilizzare per avviare la replica tra i server. Per MySQL 8.0.26 e versioni successive, specifica --source-data=2 per creare un file di backup da utilizzare per avviare la replica tra i server. Per ulteriori informazioni, consulta mysqldump – A Database Backup Program nella documentazione MySQL.

    Per migliorare le prestazioni e garantire l’integrità dei dati, utilizza le opzioni --order-by-primary e --single-transaction per mysqldump.

    Per non includere il database del sistema MySQL nel backup, non utilizzare l’opzione --all-databases con mysqldump. Per ulteriori informazioni, consulta Creating a Data Snapshot Using mysqldump nella documentazione MySQL.

    Se necessario, utilizza chmod per avere la certezza che sia possibile scrivere nella directory in cui viene creato il file di backup.

    Importante

    In Windows, eseguire la finestra di comando come amministratore.

    • Per generare un output SQL, utilizza il comando seguente:

      Per Linux, macOS o Unix:

      sudo mysqldump \ --databases database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -ppassword
      Nota

      Come best practice per la sicurezza, specifica credenziali diverse dai prompt mostrati nell’esempio.

      Per Windows:

      mysqldump ^ --databases database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u local_user ^ -ppassword
      Nota

      Come best practice per la sicurezza, specifica credenziali diverse dai prompt mostrati nell’esempio.

    • Per generare un output in testo delimitato, utilizza il comando seguente:

      Per Linux, macOS o Unix:

      sudo mysqldump \ --tab=target_directory \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -ppassword

      Per Windows:

      mysqldump ^ --tab=target_directory ^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^ database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -ppassword
      Nota

      Come best practice per la sicurezza, specifica credenziali diverse dai prompt mostrati nell’esempio.

      Eventuali procedure, trigger, funzioni o eventi devono essere creati manualmente nel database Amazon RDS. Se il database da copiare dovesse contenere questi tipi di oggetti, dovrai escluderli al momento di eseguire mysqldump. A tale scopo, includi gli argomenti seguenti con il comando mysqldump:

      • --routines=0

      • --triggers=0

      • --events=0

      Per MySQL 8.0.22 e versioni precedenti, quando si mysqldump esegue e si specifica il formato con testo delimitato, viene restituito un commento CHANGE MASTER TO. Tale commento contiene il nome e la posizione del file log principale. Per MySQL 8.0.23 e versioni successive, quando si esegue mysqldump nel formato con testo delimitato, viene restituito un commento CHANGE REPLICATION SOURCE TO. Tale commento contiene il nome e la posizione del file di log di origine. Se l’istanza esterna è diversa da MySQL 8.0.23 e versioni successive, annota i valori per MASTER_LOG_FILE e MASTER_LOG_POS. Questi valori sono necessari durante l'impostazione della replica.

      L’output seguente viene restituito per MySQL 8.0.22 e versioni precedenti:

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

      L’output seguente viene restituito per MySQL 8.0.23 e versioni successive:

      -- Position to start replication or point-in-time recovery from -- -- CHANGE SOURCE TO SOURCE_LOG_FILE='mysql-bin-changelog.000031', SOURCE_LOG_POS=107;

      Per MySQL 8.0.22 e versioni precedenti, se si utilizza il formato SQL è possibile ottenere il nome e la posizione del file di log principale nel commento CHANGE MASTER TO nel file di backup. Per MySQL 8.0.23 e versioni successive, se si utilizza il formato SQL è possibile ottenere il nome e la posizione del file di log principale nel commento CHANGE REPLICATION SOURCE TO nel file di backup.

  2. Comprimi i dati copiati per ridurre la quantità di risorse di rete necessarie per copiare i dati nell'istanza database Amazon RDS. Annota la dimensione del file di backup. Questa informazione è necessaria per determinare le dimensioni dell'istanza Amazon EC2 da creare. Al termine, comprimere il file di backup con GZIP o un'altra utility simile.

    • Per comprimere un output SQL, utilizza il comando seguente:

      gzip backup.sql
    • Per comprimere un output in testo delimitato, utilizza il comando seguente:

      tar -zcvf backup.tar.gz target_directory

Attività 2: creazione di un’istanza Amazon EC2 e copia del database compresso

La copia del file di backup del database compresso in un'istanza Amazon EC2 richiede una quantità di risorse di rete inferiore rispetto alla copia diretta di dati non compressi da un'istanza database a un'altra. Quando i dati sono presenti in Amazon EC2, è possibile copiarli direttamente nell’istanza database MySQL in uso. Per risparmiare sul costo delle risorse di rete, l'istanza Amazon EC2 deve essere la Regione AWS stessa dell'istanza Amazon RDS DB. Se l’istanza Amazon EC2 si trova nella stessa Regione AWS del database Amazon RDS, è minore anche la latenza di rete durante l’importazione.

Il seguente diagramma mostra la copia del backup del database in un’istanza Amazon EC2.

Flusso di lavoro che mostra la copia del backup del database in un’istanza Amazon EC2.

Per creare un'istanza Amazon EC2 e copiare i dati

  1. Nel luogo in Regione AWS cui prevedi di creare il database Amazon RDS, crea un cloud privato virtuale (VPC), un gruppo di sicurezza VPC e una sottorete VPC. Verificare che le regole in entrata del gruppo di sicurezza VPC consentano agli indirizzi IP necessari per l'applicazione di connettersi ad AWS. È possibile specificare un intervallo di indirizzi IP, ad esempio 203.0.113.0/24, oppure un altro gruppo di sicurezza VPC. Puoi utilizzare la console Amazon VPC per creare e gestire VPCs sottoreti e gruppi di sicurezza. Per ulteriori informazioni, consulta Nozioni di base su Amazon VPC nella Guida per l’utente di Amazon Virtual Private Cloud.

  2. Apri la console Amazon EC2 e scegli di contenere sia Regione AWS l'istanza Amazon EC2 che il database Amazon RDS. Avviare un'istanza di Amazon EC2 utilizzando il VPC, la sottorete e il gruppo di sicurezza creati nella fase 1. Assicurarsi di selezionare un tipo di istanza con spazio di storage sufficiente per il file di backup del database decompresso. Per informazioni sulle istanze Amazon EC2, consulta Nozioni di base su Amazon EC2 nella Guida per l’utente di Amazon Elastic Compute Cloud.

  3. Per connetterti al database Amazon RDS dall'istanza Amazon EC2, modifica il gruppo di sicurezza VPC. Aggiungere una regola in entrata specificando l'indirizzo IP privato e l'istanza EC2. L'indirizzo IP privato è indicato nella scheda Details (Dettagli) del riquadro Instance (Istanza) della finestra della console EC2. Per modificare il gruppo di sicurezza VPC e aggiungere una regola in entrata, selezionare Security Groups (Gruppi di sicurezza) nel riquadro di navigazione della console di EC2, selezionare il gruppo di sicurezza e aggiungere una regola in entrata per MySQL/Aurora specificando l'indirizzo IP privato dell'istanza EC2. Per ulteriori informazioni sull’aggiunta di una regola in entrata a un gruppo di sicurezza VPC, consulta Regole del gruppo di sicurezza nella Guida per l’utente di Amazon Virtual Private Cloud.

  4. Copiare il file compresso con il backup del database dal sistema locale all'istanza Amazon EC2. Se necessario, utilizza chmod per ottenere l’autorizzazione di scrittura per la directory di destinazione dell’istanza Amazon EC2. Il file può essere copiato con scp oppure con un client Secure Shell (SSH). Di seguito è riportato un comando scp di esempio:

    scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
    Importante

    Quando si copiano dati sensibili, utilizzare un protocollo di trasferimento di rete sicuro.

  5. Eseguire la connessione all'istanza Amazon EC2 e installare gli ultimi aggiornamenti e gli strumenti del clien MySQL mediante i seguenti comandi:

    sudo yum update -y sudo yum install mysql -y

    Per ulteriori informazioni, consulta Connessione all’istanza per le istanze Linux nella Guida per l’utente di Amazon Elastic Compute Cloud.

    Importante

    Questo esempio installa il client MySQL su una Amazon Machine Image (AMI) per una distribuzione Amazon Linux. L’esempio non si applica all’installazione del client MySQL su una distribuzione diversa, come Ubuntu o Red Hat Enterprise Linux. Per informazioni sull’installazione di MySQL, consulta Installing MySQL nella documentazione MySQL.

  6. Durante la connessione all'istanza Amazon EC2 decomprimere il file di backup del database. I comandi seguenti sono esempi.

    • Per decomprimere l'output SQL, utilizzare il comando seguente:

      gzip backup.sql.gz -d
    • Per decomprimere un output in testo delimitato, utilizzare il comando seguente:

      tar xzvf backup.tar.gz

Attività 3: creazione di un database MySQL e importazione dei dati dall’istanza Amazon EC2

La creazione di un’istanza database RDS per MySQL o di un cluster di database Multi-AZ RDS per MySQL nella stessa Regione AWS dell’istanza Amazon EC2 consente di importare il file di backup del database da Amazon EC2 più velocemente rispetto a Internet.

Il seguente diagramma mostra l’importazione del backup da un’istanza Amazon EC2 in un database MySQL.

Flusso di lavoro che mostra l’importazione del backup dall’istanza EC2 nel database MySQL.

Per creare un database MySQL e importare i dati

  1. Determina la classe di istanza database e la quantità di spazio di archiviazione necessaria per supportare il carico di lavoro previsto per il database Amazon RDS. Come parte di questo processo, è necessario valutare la quantità di spazio richiesta e la capacità di elaborazione per le procedure di caricamento dati. Valuta anche gli elementi necessari per gestire il carico di lavoro di produzione. È possibile produrre una stima sulla base delle dimensioni e delle risorse del database MySQL di origine. Per ulteriori informazioni, consulta Classi di istanze DB .

  2. Crea un'istanza DB o un cluster DB Multi-AZ nel contenitore Regione AWS che contiene la tua istanza Amazon EC2.

    Per creare un cluster di database Multi-AZ RDS per MySQL, segui le istruzioni in Creazione di un cluster di database Multi-AZ per Amazon RDS.

    Per creare un’istanza database RDS per MySQL, segui le istruzioni in Creazione di un'istanza database Amazon RDS e attieniti alle seguenti linee guida:

    • Specifica una versione del motore di database compatibile con l’istanza database di origine.

    • Specifica lo stesso cloud privato virtuale (VPC) e lo stesso gruppo di sicurezza VPC dell'istanza Amazon EC2. Questo approccio garantisce che l’istanza Amazon EC2 e l’istanza Amazon RDS siano visibili una all’altra in rete. Assicurati che l'istanza database sia accessibile pubblicamente. Per impostare la replica con il database di origine, come descritto in una sezione seguente, l’istanza database deve essere accessibile pubblicamente.

    • Non configurare più zone di disponibilità, retention dei backup o repliche di lettura fino a quando non è stato importato il backup del database. Al termine dell'importazione, puoi configurare le varie zone di disponibilità e la conservazione dei backup per l'istanza di produzione.

  3. Esamina le opzioni di configurazione predefinite per il database Amazon RDS. Se il gruppo di parametri predefinito per il database non include le opzioni di configurazione desiderate, cercane uno che le contenga oppure crea un gruppo di parametri nuovo. Per ulteriori informazioni sulla creazione di un gruppo di parametri, consulta Gruppi di parametri per Amazon RDS.

  4. Connettiti al nuovo database Amazon RDS come utente master. Crea gli utenti necessari per supportare gli amministratori, le applicazioni e i servizi che devono accedere all’istanza database. Il nome host per il database Amazon RDS corrisponde al valore di Endpoint per l’istanza database senza il numero di porta, ad esempio mysampledb.123456789012.us-west-2.rds.amazonaws.com. Il valore dell’endpoint è disponibile nei dettagli del database nella console Amazon RDS.

  5. Esegui la connessione all'istanza Amazon EC2. Per ulteriori informazioni, consulta Connessione all’istanza per le istanze Linux nella Guida per l’utente di Amazon Elastic Compute Cloud.

  6. Connettiti al database Amazon RDS come host remoto dall'istanza Amazon EC2 usando il comando mysql. Il comando seguente è un esempio:

    mysql -h host_name -P 3306 -u db_master_user -p

    host_nameÈ l'endpoint del database Amazon RDS.

  7. Al prompt mysql, esegui il comando source e passa il nome del file di dump del database. Il comando carica i dati nell’istanza database Amazon RDS.

    • Per il formato SQL, utilizza il comando seguente:

      mysql> source backup.sql;
    • Per il formato con testo delimitato, crea innanzitutto il database se non utilizzi il database predefinito creato al momento dell’impostazione del database Amazon RDS,

      mysql> create database database_name; mysql> use database_name;

      quindi crea le tabelle

      mysql> source table1.sql mysql> source table2.sql etc...

      e infine importa i dati.

      mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...

      Per migliorare le prestazioni, puoi eseguire queste operazioni in parallelo da più connessioni, in modo che tutte le tabelle vengano create e caricate contemporaneamente.

      Nota

      Se nel dump iniziale della tabella sono state utilizzate opzioni di formattazione dati con mysqldump, è necessario utilizzare le stesse opzioni con LOAD DATA LOCAL INFILE per assicurare una corretta interpretazione del contenuto del file di dati.

  8. Esegui una semplice query SELECT in una o due tabelle del database importato, per verificare che l’operazione sia stata eseguita correttamente.

Se non hai più bisogno dell'istanza Amazon EC2 utilizzata in questa procedura, interrompi l'istanza EC2 per ridurre l'utilizzo delle risorse. AWS Per terminare un’istanza EC2, consulta Terminare un’istanza nella Guida per l’utente di Amazon Elastic Compute Cloud.

Attività 4: replica dei dati dal database esterno al nuovo database Amazon RDS

È probabile che il database di origine sia stato aggiornato durante la copia e il trasferimento dei dati nel database MySQL. Pertanto, puoi utilizzare la replica per portare il database copiato con il database up-to-date di origine.

Flusso di lavoro che mostra la replica dei dati dal database MySQL esterno al database in Amazon RDS.

Le autorizzazioni necessarie per avviare la replica in un database Amazon RDS sono limitate e non disponibili per l’utente master di Amazon RDS. Per questo motivo, utilizza la stored procedure Amazon RDS appropriata per la versione principale del motore:

Per avviare la replica

Nell’Attività 1, quando si impostano le opzioni di replica si attiva la registrazione di log binari e si imposta un ID server univoco per il database di origine. Ora è possibile impostare il database Amazon RDS come replica, utilizzando il database attivo come istanza di replica di origine.

  1. Nella console Amazon RDS aggiungi l’indirizzo IP del server che ospita il database di origine al gruppo di sicurezza VPC per il database Amazon RDS. Per ulteriori informazioni sui gruppi di sicurezza VPC, consulta Configurazione delle regole per i gruppi di sicurezza nella Guida per l’utente di Amazon Virtual Private Cloud.

    Potrebbe essere necessario configurare anche la rete locale per consentire le connessioni dall’indirizzo IP del database Amazon RDS, in modo da comunicare con l’istanza di origine. Per individuare l’indirizzo IP del database Amazon RDS, utilizza il comando host:

    host host_name

    host_nameÈ il nome DNS dell'endpoint del database Amazon RDS, ad esempio. myinstance.123456789012.us-east-1.rds.amazonaws.com Il valore dell’endpoint è disponibile nei dettagli dell’istanza database nella console Amazon RDS.

  2. Utilizzando il client scelto, eseguire la connessione all'istanza di origine e creare un utente da utilizzare per la replica. Questo account viene utilizzato unicamente per la replica e deve essere limitato al dominio personale per aumentare la sicurezza. Il comando seguente è un esempio:

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    Nota

    Specifica credenziali diverse dai prompt mostrati qui come best practice per la sicurezza.

  3. Per l'istanza di origine, concedere i privilegi REPLICATION CLIENT e REPLICATION SLAVE all'utente di replica. Per concedere ad esempio i privilegi REPLICATION CLIENT e REPLICATION SLAVE su tutti i database per l'utente "repl_user" del proprio dominio, eseguire questo comando:

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  4. Definisci il database Amazon RDS come replica. Connettiti al database Amazon RDS come utente master e identifica il database di origine come istanza di replica di origine con la stored procedure di Amazon RDS appropriata:

    Se si dispone di un file di backup in formato SQL, utilizza il nome e la posizione del file di log principale, recuperati nella fase 4. Se invece è stato utilizzato il formato con testo delimitato, usa il nome e la posizione determinati al momento di creare i file di backup. I comandi seguenti sono esempi:

    MySQL 8.4 e versioni successive

    CALL mysql.rds_set_external_source ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);

    MySQL 8.0 e versioni precedenti

    CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
    Nota

    Specifica credenziali diverse dai prompt mostrati qui come best practice per la sicurezza.

  5. Nel database Amazon RDS, per avviare la replica esegui questo comando che utilizza la stored procedure mysql.rds_start_replication:

    CALL mysql.rds_start_replication;
  6. Nel database Amazon RDS esegui il comando SHOW REPLICA STATUS per determinare quando la replica è aggiornata con l’istanza di replica di origine. I risultati del comando SHOW REPLICA STATUS includono il campo Seconds_Behind_Master. Quando il campo Seconds_Behind_Master restituisce 0, la replica è aggiornata con l’istanza di replica di origine.

    Nota

    Versioni precedenti di MySQL utilizzate SHOW SLAVE STATUS al posto di SHOW REPLICA STATUS. Se si utilizza una versione MySQL prima della 8.0.23, utilizzare SHOW SLAVE STATUS.

  7. Dopo aver aggiornato il database Amazon RDS, attiva i backup automatici per ripristinare il database, qualora sia necessario. È possibile attivare o modificare i backup automatici per il database Amazon RDS tramite la console Amazon RDS. Per ulteriori informazioni, consulta Introduzione ai backup.

Attività 5: reindirizzamento di un’applicazione attiva all’istanza Amazon RDS

Dopo aver aggiornato il database MySQL con l’istanza di replica di origine, è possibile aggiornare l’applicazione attiva per utilizzare l’istanza Amazon RDS.

Flusso di lavoro che mostra l’arresto della replica e l’indirizzamento dell’applicazione attiva al database in Amazon RDS.

Per reindirizzare l’applicazione attiva al database MySQL e arrestare la replica

  1. Per aggiungere il gruppo di sicurezza VPC per il database Amazon RDS, aggiungi l’indirizzo IP del server che ospita l’applicazione. Per ulteriori informazioni sui gruppi di sicurezza VPC, consulta Configurazione delle regole per i gruppi di sicurezza nella Guida per l’utente di Amazon Virtual Private Cloud.

  2. Verifica che il risultato del campo Seconds_Behind_Master nel comando SHOW REPLICA STATUS sia 0, indicazione che la replica è aggiornata con l’istanza di replica di origine.

    SHOW REPLICA STATUS;
    Nota

    Versioni precedenti di MySQL utilizzate SHOW SLAVE STATUS al posto di SHOW REPLICA STATUS. Se si utilizza una versione MySQL prima della 8.0.23, utilizzare SHOW SLAVE STATUS.

  3. Chiudere tutte le connessioni all'origine quando le loro transazioni sono complete.

  4. Aggiorna l'applicazione per usare il database Amazon RDS. In genere, l'aggiornamento prevede la modifica delle impostazioni di connessione per identificare il nome host e la porta del database Amazon RDS, l'account utente e la password per eseguire la connessione e il database da utilizzare.

  5. Effettua la connessione all'istanza database.

    Per un cluster database multi-AZ, connettiti all'istanza database di scrittura.

  6. Arresta la replica per l’istanza Amazon RDS eseguendo questo comando che utilizza la stored procedure mysql.rds_stop_replication:

    CALL mysql.rds_stop_replication;
  7. Reimposta la configurazione della replica in modo che l’istanza non venga più identificata come replica utilizzando la stored procedure Amazon RDS appropriata nel database Amazon RDS:

    MySQL 8.4 e versioni successive

    CALL mysql.rds_reset_external_source;

    MySQL 8.0 e versioni precedenti

    CALL mysql.rds_reset_external_master;
  8. Attivare le caratteristiche aggiuntive di Amazon RDS, quali il supporto Multi-AZ e le repliche di lettura. Per ulteriori informazioni, consultare Configurazione e gestione di un’implementazione Multi-AZ per Amazon RDS e Uso delle repliche di lettura dell'istanza database.