Importazione dei dati in un'istanza database MariaDB o MySQL di Amazon RDS, riducendo i tempi di inattività - 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'istanza database MariaDB o MySQL di Amazon RDS, riducendo i tempi di inattività

In alcuni casi, potrebbe essere necessaria l'importazione dei dati da un database MariaDB o MySQL esterno che supporti un'applicazione live per un'istanza database MariaDB o MySQL oppure per un cluster database multi-AZ MySQL. 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. Utilizzando questa procedura, è possibile ridurre il costo dell'importazione riducendo la quantità di dati trasmessi attraverso la rete 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. La replica MariaDB viene configurata in base agli identificatori globali di transazione (GTID) se l'istanza esterna è MariaDB 10.0.24 o versioni successive e l'istanza di destinazione è RDS per MariaDB. In alternativa, è possibile configurare la replica in base alle coordinate del log binario. Si consiglia la replica basata su GTID se supportata dal database esterno perché è un metodo più affidabile. Per ulteriori informazioni, consulta ID globali di transazione nella documentazione di MariaDB.

Nota

Per importare i dati in un'istanza database MySQL e 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 Amazon RDS for My SQL DB.

Importazione di un database MySQL esterno in un database MySQL su Amazon RDS.
Nota

Non è consigliabile utilizzare questa procedura per i database MySQL di origine con versioni di MySQL precedenti alla 5.5 a causa dei potenziali problemi di replica. Per ulteriori informazioni, consulta Compatibilità delle repliche fra le versioni di MySQL nella documentazione di MySQL.

Creazione di una copia del database esistente

La prima fase per eseguire la migrazione di grandi quantità di dati in un database RDS per MariaDB o RDS per MySQL riducendo al minimo i tempi di inattività consiste nella creazione di una copia dei dati di origine.

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. Consigliamo di eseguire un test con ciascun formato, fuori dall'ambiente di produzione, per capire quale metodo consente di ridurre maggiormente il tempo di esecuzione di mysqldump.

Consigliamo anche di soppesare le prestazioni di mysqldump e i vantaggi offerti dal caricamento con il formato a 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 sul formato di mysqldump più adatto per il caricamento dei dati, consulta Utilizzo di mysqldump per i backup nella documentazione di MySQL.

Prima di iniziare l'operazione di backup, devi impostare le opzioni di replica nel database MariaDB o MySQL da copiare in Amazon RDS. Le opzioni di replic 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.

Nota

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 dump: sys, performance_schema e information_schema. Per impostazione predefinita, l'utility mysqldump esclude questi schemi.

Per 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 (posto in genere sotto /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 la documentazione di MySQL.

  2. Per la replica con un cluster 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.

    Specificare --master-data=2 per creare un file di backup che possa essere utilizzato per avviare la replica fra i server. Per ulteriori informazioni, consultare la documentazione di mysqldump.

    Per migliorare le prestazioni e garantire l'integrità dei dati, utilizzare le opzioni --order-by-primary e --single-transaction di mysqldump.

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

    Se necessario, utilizzare chmod per avere la certezza che la directory in cui viene creato il file di backup sia scrivibile.

    Importante

    In Windows, eseguire la finestra di comando come amministratore.

    • Per produrre un output SQL, utilizzare il comando seguente.

      PerLinux, o: macOS Unix

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

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

      Per Windows:

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

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

    • Per produrre un output in testo delimitato, utilizzare il comando seguente.

      Per LinuxmacOS, oUnix:

      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 \ -p password

      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 ^ -p password
      Nota

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

      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 i seguenti argomenti con il comando mysqldump: --routines=0 --triggers=0 --events=0.

      Quando si utilizza il formato con testo delimitato, il commento CHANGE MASTER TO viene restituito all'esecuzione di mysqldump. Tale commento contiene il nome e la posizione del file log principale. Se l'istanza esterna è diversa da MariaDB versione 10.0.24 o successiva, annotare i valori per MASTER_LOG_FILE e MASTER_LOG_POS. Questi valori sono necessari durante l'impostazione della replica.

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

      Se si utilizza il formato SQL, è possibile ottenere il nome e la posizione del file log principale nel commento CHANGE MASTER TO nel file di backup. Se l'istanza esterna è MariaDB, versione 10.0.24 o successiva, si può ottenere il GTID nella fase successiva.

  2. Se l'istanza esterna è MariaDB, versione 10.0.24 o successiva, si utilizza la replica basata su GTID. Eseguire SHOW MASTER STATUS nell'istanza MariaDB esterna per ottenere il nome e la posizione del file di log binario e convertirlo in un GTID utilizzando BINLOG_GTID_POS nell'istanza MariaDB esterna.

    SELECT BINLOG_GTID_POS('binary log file name', binary log file position);

    Annotare il GTID restituito, perché sarà necessario per configurare la replica.

  3. 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 l'output SQL, utilizzare il comando seguente.

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

      tar -zcvf backup.tar.gz target_directory

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. Una volta che i dati sono presenti in Amazon EC2, puoi copiarli direttamente nell'istanza database MariaDB o MySQL. Per risparmiare sul costo delle risorse di rete, l'istanza Amazon EC2 deve trovarsi nella stessa AWS regione dell'istanza Amazon RDS DB. La presenza dell'istanza Amazon EC2 nella stessa AWS regione del database Amazon RDS riduce anche la latenza di rete durante l'importazione.

Copiare il backup del database su un'istanza EC2.

Per creare un'istanza Amazon EC2 e copiare i dati

  1. Nel luogo in Regione AWS cui prevedi di creare il database 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. Puoi specificare un intervallo di indirizzi IP (ad esempio 203.0.113.0/24) oppure un altro gruppo di sicurezza VPC. È possibile utilizzare la Console di gestione Amazon VPC per creare e gestire VPC, sottoreti e gruppi di sicurezza. Per ulteriori informazioni, consultare le nozioni di base su Amazon VPC nella Guida alle operazioni di base di Amazon Virtual Private Cloud.

  2. Apri la console di gestione Amazon EC2 e scegli la AWS regione in cui contenere sia 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 l'argomento Nozioni di base sulle istanze Amazon EC2 Linux nella Guida per l'utente di Amazon Elastic Compute Cloud per Linux.

  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 Aggiunta ed eliminazione delle regole nella Guida per l'utente di Amazon VPC.

  4. Copiare il file compresso con il backup del database dal sistema locale all'istanza Amazon EC2. Se necessario, utilizzare 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 esempio.

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

    Assicurarsi di copiare i dati sensibili utilizzando 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, consultare la pagina relativa alla connessione all'istanza nella Guida per l'utente di Amazon Elastic Compute Cloud per Linux.

    Importante

    Questo esempio installa il client MySQL su una Amazon Machine Image (AMI) per una distribuzione Amazon Linux. 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, visita la pagina Installazione e aggiornamento di MySQL nella documentazione MySQL.

  6. Durante la connessione all'istanza Amazon EC2 decomprimere il file di backup del database. Di seguito vengono mostrati gli 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

Creazione di un database MySQL o MariaDB e importazione dei dati dall'istanza Amazon EC2

Creando un'istanza DB MariaDB, un'istanza DB MySQL o un cluster DB MySQL Multi-AZ nella AWS stessa regione dell'istanza Amazon EC2, puoi importare il file di backup del database da EC2 più velocemente che su Internet.

Importazione del backup dall'istanza EC2 nel database MySQL.

Per creare un database MariaDB o 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 l'occorrente per gestire il carico di lavoro della produzione. È possibile produrre una stima sulla base delle dimensioni e delle risorse del database MariaDB o MySQL di origine. Per ulteriori informazioni, consulta Classi di istanze DB .

  2. Crea un'istanza DB o un cluster DB Multi-AZ nella AWS regione che contiene la tua istanza Amazon EC2.

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

    Per creare un'istanza database MariaDB o MySQL, segui le istruzioni riportate in Creazione di un'istanza Amazon RDS DB e attieniti alle seguenti linee guida:

    • Specifica una versione del motore di database compatibile con l'istanza database di origine, come indicato di seguito:

      • Se l'istanza di origine è MySQL 5.5.x, l'istanza database Amazon RDS deve essere MySQL.

      • Se l'istanza di origine è MySQL 5.6.x o 5.7.x, l'istanza database Amazon RDS deve essere MySQL o MariaDB.

      • Se l'istanza di origine è MySQL 8.0.x, l'istanza database di Amazon RDS deve essere MySQL 8.0.x.

      • Se l'istanza di origine è MariaDB 5.5 o versione successiva, l'istanza database Amazon RDS deve essere MariaDB.

    • 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. L'istanza database deve essere pubblicamente accessibile per impostare la replica con il database di origine descritto successivamente in questo argomento.

    • 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 gruppi di parametri, consulta Gruppi di parametri per RDS.

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

  5. Eseguire la connessione all'istanza di Amazon EC2. Per ulteriori informazioni, consultare la pagina relativa alla connessione all'istanza nella Guida per l'utente di Amazon Elastic Compute Cloud per Linux.

  6. Connettiti al database Amazon RDS come host remoto dall'istanza Amazon EC2 usando il comando mysql. Di seguito è riportato un esempio.

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

    Il nome host corrisponde all'endpoint del database Amazon RDS.

  7. Al prompt mysql eseguire il comando source e passare al comando il nome del file dump del database per caricare i dati nell'istanza database Amazon RDS.

    • Per il formato SQL, utilizzare il comando seguente.

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

      mysql> create database database_name; mysql> use database_name;

      Quindi creare le tabelle.

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

      Infine, importare 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 hai utilizzato opzioni di formattazione dei dati con mysqldump quando hai inizialmente scaricato la tabella, assicurati di utilizzare le stesse opzioni per garantire una corretta interpretazione del contenuto del file di LOAD DATA LOCAL INFILE dati.

  8. Eseguite una semplice SELECT query su una o due tabelle del database importato per verificare che l'importazione sia avvenuta 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 Cessazione di un'istanza nella Guida per l'utente di Amazon EC2.

Replica tra il database esterno e un nuovo database Amazon RDS

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

Replica dei dati dal database MySQL esterno al database su Amazon RDS.

Le autorizzazioni necessarie per avviare la replica in un database Amazon RDS sono limitate e non disponibili per l'utente master Amazon RDS. Per questo motivo, assicurati di usare il comando o mysql.rds_set_external_master_gtid di Amazon RDS per configurare la replica e il comando mysql.rds_start_replication per avviare la replica tra il database attivo e il database Amazon RDS.

Per avviare la replica

In precedenza, hai attivato il log binario e impostato un ID server univoco per il database di origine. Ora puoi impostare il database Amazon RDS come replica, utilizzando il database live come istanza di replica di origine.

  1. Nella Console di gestione 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 sulla modifica di un gruppo di sicurezza VPC, consulta Gruppi di sicurezza per il VPC 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 poter comunicare con l'istanza di origine. Per individuare l'indirizzo IP del database Amazon RDS, utilizza il comando host.

    host rds_db_endpoint

    Il nome host corrisponde al nome DNS dell'endpoint del database Amazon RDS, ad esempio myinstance.123456789012.us-east-1.rds.amazonaws.com. Puoi trovare il valore dell'endpoint è disponibile nei dettagli dell'istanza, nella console di gestione 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. Di seguito è riportato un esempio.

    MySQL 5.5, 5.6 e 5.7

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

    MySQL 8.0

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password 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.

    MySQL 5.5, 5.6 e 5.7

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
    Nota

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

  4. Se per creare il file di backup è stato usato il formato SQL e l'istanza esterna non è MariaDB 10.0.24 o superiore, controllare il contenuto del file.

    cat backup.sql

    Il file include un commento CHANGE MASTER TO che contiene il nome e la posizione del file di log principale. Il commento si trova nel file di backup, se è stata utilizzata l'opzione --master-data con mysqldump. Prendere nota dei valori per MASTER_LOG_FILE e MASTER_LOG_POS.

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

    Se per creare il file di backup è stato usato il formato con testo delimitato e l'istanza esterna non è MariaDB 10.0.24 o superiore, si dovrebbe già disporre delle coordinate del log binario dalla fase 1 della procedura descritta nella sezione “Per creare una copia di backup del database esistente” di questo articolo.

    Se l'istanza esterna è MariaDB 10.0.24 o superiore, si dovrebbe già disporre del GTID da cui avviare la replica dalla fase 2 della procedura descritta nella sezione “Per creare una copia di backup del database esistente” di questo articolo.

  5. Definisci il database Amazon RDS come replica. Se l'istanza esterna non è MariaDB 10.0.24 o versioni successive, connettiti al database Amazon RDS come utente master e identifica il database di origine come istanza di replica di origine usando il comando . Se si dispone di un file di backup in formato SQL, utilizzare il nome e la posizione del file log principale, recuperati nella fase precedente. Se invece è stato usato il formato con testo delimitato, utilizzare il nome e la posizione determinati al momento di creare i file di backup. Di seguito è riportato un esempio.

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

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

    Se l'istanza esterna è MariaDB 10.0.24 o versioni successive, connettiti al database Amazon RDS come utente master e identifica il database di origine come istanza di replica di origine usando il comando mysql.rds_set_external_master_gtid. Utilizzare il GTID determinato nel passaggio 2 della procedura descritta nella sezione “Per creare una copia di backup del database esistente” di questo articolo. Di seguito è riportato un esempio.

    CALL mysql.rds_set_external_master_gtid ('source_server_ip_address', 3306, 'ReplicationUser', 'password', 'GTID', 0);

    source_server_ip_address è l' indirizzo IP dell'istanza di replica di origine. Al momento, gli indirizzi DNS privati di EC2 non sono supportati.

    Nota

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

  6. Nel database Amazon RDS esegui il comando mysql.rds_start_replication per avviare la replica.

    CALL mysql.rds_start_replication;
  7. Sul database Amazon RDS, esegui il comando SHOW REPLICA STATUS per determinare quando la replica è up-to-date con l'istanza di replica di origine. I risultati del comando SHOW REPLICA STATUS includono il campo Seconds_Behind_Master. Quando il Seconds_Behind_Master campo restituisce 0, la replica si trova up-to-date 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.

    Per un'istanza database MariaDB 10.5, 10.6 o 10.11, esegui la procedura mysql.rds_replica_status anziché il comando MySQL.

  8. Una volta installato il database Amazon RDS up-to-date, attiva i backup automatici in modo da poter ripristinare il database, se necessario. È possibile attivare o modificare i backup automatici per il database Amazon RDS tramite la Console di gestione Amazon RDS. Per ulteriori informazioni, consulta Introduzione ai backup.

Reindirizzamento di un'applicazione attiva nell'istanza di Amazon RDS

Dopo che il up-to-date database MariaDB o MySQL è con l'istanza di replica di origine, ora puoi aggiornare la tua applicazione live per utilizzare l'istanza Amazon RDS.

Interruzione della replica e indirizzamento dell'applicazione live al database su Amazon RDS.

Per reindirizzare l'applicazione live al database MariaDB o MySQL e arrestare la replica

  1. Per aggiungere il gruppo di sicurezza VPC per il database Amazon RDS, immetti l'indirizzo IP del server che ospita l'applicazione. Per ulteriori informazioni sulla modifica di un gruppo di sicurezza VPC, consulta Gruppi di sicurezza per il VPC nella Guida per l'utente di Amazon Virtual Private Cloud.

  2. Verifica che il Seconds_Behind_Master campo nei risultati del comando SHOW REPLICA STATUS sia 0, il che indica che la replica è up-to-date 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.

    Per un'istanza database MariaDB 10.5, 10.6 o 10.11, esegui la procedura mysql.rds_replica_status anziché il comando MySQL.

  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. Interrompere la replica per l'istanza Amazon RDS tramite il comando mysql.rds_stop_replication.

    CALL mysql.rds_stop_replication;
  7. Esegui il comando nel database Amazon RDS per reimpostare la configurazione della replica in modo che l'istanza non venga più identificata come replica.

    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 una distribuzione Multi-AZ per Amazon RDS e Uso delle repliche di lettura dell'istanza database.