Migrazione di una snapshot RDS for MySQL a Aurora - Amazon Aurora

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à.

Migrazione di una snapshot RDS for MySQL a Aurora

Puoi effettuare la migrazione di uno snapshot DB di un'istanza database RDS for MySQL per creare un cluster database Aurora MySQL. Il nuovo cluster DB Aurora MySQL viene popolato con i dati dall'istanza database RDS for MySQL originale. Lo snapshot di database deve essere realizzato da un'istanza database Amazon RDS che esegue MySQL compatibile con Aurora MySQL.

Puoi effettuare la migrazione di una snapshot DB manuale o automatizzata. Dopo aver creato il cluster database, puoi le creare le repliche Aurora facoltative.

Nota

Puoi anche migrare un'istanza database RDS per MySQL a un cluster di database Aurora MySQL creando una replica di lettura Aurora dell'istanza database RDS per MySQL di origine. Per ulteriori informazioni, consulta Migrazione di dati da un'istanza database RDS per MySQL a un cluster database Amazon Aurora MySQL utilizzando una replica di lettura Aurora.

Non è possibile migrare ad Aurora MySQL 3.05 e versioni successive da alcune versioni precedenti di MySQL 8.0, tra cui 8.0.11, 8.0.13 e 8.0.15. Si consiglia di eseguire l'aggiornamento a MySQL 8.0.28 prima della migrazione.

La procedura generale da seguire è riportata di seguito:

  1. Determina la quantità di spazio da predisporre per il cluster database Aurora MySQL. Per ulteriori informazioni, consulta Di quanto spazio ho bisogno?

  2. Utilizza la console per creare lo snapshot nella regione AWS in cui si trova l’istanza Amazon RDS MySQL. Per informazioni sulla creazione di uno snapshot DB, consulta Creazione di uno snapshot DB.

  3. Se lo snapshot DB non si trova nella stessa regione AWS del cluster database, utilizza la console Amazon RDS per copiare lo snapshot DB in quella regione AWS. Per informazioni sulla copia di una snapshot DB, consulta Copia di una snapshot DB.

  4. Utilizza la console per migrare la snapshot DB e creare un cluster database Aurora MySQL con gli stessi database dell'istanza database MySQL originale.

avvertimento

Amazon RDS limita ogni account AWS a una copia di snapshot in ogni regione AWS alla volta.

Di quanto spazio ho bisogno?

Quando effettui la migrazione di una snapshot di un'istanza database MySQL in un cluster di database Aurora MySQL, Aurora utilizza un volume Amazon Elastic Block Store (Amazon EBS) per formattare i dati dalla snapshot prima della migrazione. In alcuni casi, è necessario ulteriore spazio per formattare i dati per la migrazione.

Le tabelle che non sono tabelle MyISAM e non sono compresse possono avere 16 TB di dimensioni. Se hai tabelle MyISAM, Aurora deve utilizzare ulteriori spazio nel volume per convertire le tabelle in modo che siano compatibili con Aurora MySQL. Se hai tabelle compresse, Aurora deve utilizzare ulteriore spazio nel volume per espandere queste tabelle prima di archiviarle nel volume cluster Aurora. A causa dei requisiti di spazio aggiuntivo, devi accertarti che nessuna delle tabelle MyISAM e compresse migrate dall'istanza database MySQL abbia una dimensione superiore a 8 TB.

Riduzione della quantità di spazio necessaria per migrare i dati in Amazon Aurora MySQL

Potrebbe essere necessario modificare lo schema del database prima di migrarlo in Amazon Aurora. Tale modifica può essere utile nei casi seguenti:

  • Desideri accelerare il processo di migrazione.

  • Non sai con precisione di quanto spazio necessiti.

  • Hai provato a effettuare la migrazione dei dati ma la migrazione non è andata a buon fine per insufficienza di spazio.

Puoi applicare le seguenti modifiche per migliorare il processo di migrazione di un database in Amazon Aurora.

Importante

Accertati di eseguire questi aggiornamenti in una nuova istanza database recuperata da una snapshot di un database di produzione, piuttosto che su un'istanza di produzione. Puoi migrare i dati dalla snapshot della nuova istanza database nel cluster database Aurora per evitare interruzioni di servizio nel database di produzione.

Tipo tabella Limite o linea guida

Tabelle MyISAM

Aurora MySQL supporta solo tabelle InnoDB. Se hai tabelle MyISAM nel database, devono essere convertite prima di essere migrate in Aurora MySQL. Il processo di conversione richiede ulteriore spazio per la conversione da MyISAM a InnoDB durante la procedura di migrazione.

Per ridurre la possibilità di rimanere senza spazio o per velocizzare il processo di migrazione, converti tutte le tabelle MyISAM in tabelle InnoDB prima di migrarle. Le dimensioni della tabella InnoDB risultante è equivalente alle dimensioni necessarie da Aurora MySQL per quella tabella. Per convertire una tabella MyISAM in InnoDB, esegui il comando seguente:

alter table <schema>.<table_name> engine=innodb, algorithm=copy;

Tabelle compresse

Aurora MySQL non supporta tabelle compresse (ovvero tabelle create con ROW_FORMAT=COMPRESSED).

Per ridurre la possibilità di rimanere senza spazio o per velocizzare il processo di migrazione, espandi le tabelle compresse impostando ROW_FORMAT su DEFAULT, COMPACT, DYNAMIC, o REDUNDANT. Per ulteriori informazioni, consulta Formati di riga in InnoDB nella documentazione di MySQL.

Puoi utilizzare il seguente script SQL nell'istanza database MySQL esistente per elencare le tabelle nel database che sono tabelle MyISAM o compresse.

-- This script examines a MySQL database for conditions that block -- migrating the database into Amazon Aurora. -- It needs to be run from an account that has read permission for the -- INFORMATION_SCHEMA database. -- Verify that this is a supported version of MySQL. select msg as `==> Checking current version of MySQL.` from ( select 'This script should be run on MySQL version 5.6 or higher. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as T where major_minor <> 506; -- List MyISAM and compressed tables. Include the table size. select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`, round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)" from INFORMATION_SCHEMA.TABLES where ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

Lo script produce output simile all'output nell'esempio seguente. L'esempio visualizza due tabelle che devono essere convertite da MyISAM a InnoDB. L'output include anche le dimensioni approssimative di ogni tabella in megabyte (MB).

+---------------------------------+------------------+ | ==> MyISAM or Compressed Tables | Approx size (MB) | +---------------------------------+------------------+ | test.name_table | 2102.25 | | test.my_table | 65.25 | +---------------------------------+------------------+ 2 rows in set (0.01 sec)

Migrazione di uno snapshot DB di RDS per MySQL in un cluster database Aurora MySQL

Puoi effettuare la migrazione di uno snapshot DB di un'istanza database di RDS per MySQL per creare un cluster database Aurora MySQL utilizzando la AWS Management Console o la AWS CLI. Il nuovo cluster DB Aurora MySQL viene popolato con i dati dall'istanza database RDS for MySQL originale. Per informazioni sulla creazione di uno snapshot DB, consulta Creazione di uno snapshot DB.

Se lo snapshot DB non si trova nella regione AWS in cui desideri posizionare i dati, copia lo snapshot DB nella regione AWS. Per informazioni sulla copia di una snapshot DB, consulta Copia di una snapshot DB.

Quando esegui la migrazione dello snapshot DB utilizzando la AWS Management Console, vengono eseguite le operazioni necessarie per creare sia il cluster database che l'istanza primaria.

Puoi decidere anche che il nuovo cluster DB Aurora MySQL venga crittografato a riposo utilizzando una AWS KMS key.

Per effettuare una snapshot DB MySQL utilizzando la AWS Management Console
  1. Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Inizia la migrazione dall'istanza database MySQL o dalla snapshot:

    Per iniziare la migrazione dall'istanza database:

    1. Nel riquadro di navigazione, seleziona Databases (Database), quindi seleziona l'istanza database MySQL.

    2. In Actions (Operazioni) scegliere Migrate latest snapshot (Migrazione snapshot più recente).

    Per iniziare la migrazione dalla snapshot:

    1. SelezionareSnapshots (Snapshot).

    2. Nella pagina Snapshots (Snapshot) seleziona la snapshot che desideri migrare in un cluster di database Aurora MySQL.

    3. Scegliere Snapshot Actions (Operazioni snapshot), quindi scegliere Migrate Snapshot (Migrazione snapshot).

    Viene visualizzata la pagina Migrate Database (Migrazione database).

  3. Impostare i valori seguenti nella pagina Migrate Database (Migra database):

    • Migrate to DB Engine (Migrazione al motore DB): seleziona aurora.

    • DB Engine Version (Versione motore database): seleziona la versione di motore database per il cluster di database Aurora MySQL.

    • Classe di istanza database: scegliere una classe dell'istanza database che abbia lo spazio di archiviazione e la capacità richiesti per il database, ad esempio db.r3.large. I volumi dei cluster Aurora aumentano automaticamente quando aumenta la quantità di dati nel database. Un volume del cluster Aurora può raggiungere una dimensione massima di 128 tebibytes (TiB). È quindi sufficiente selezionare una classe di istanza database che soddisfi i requisiti di storage correnti. Per ulteriori informazioni, consulta Panoramica dell'archiviazione di Amazon Aurora.

    • Identificatore istanze DB: digitare un nome per il cluster database univoco per l'account nella regione AWS selezionata. Questo identificatore viene utilizzato negli indirizzi degli endpoint per le istanze nel cluster database. Puoi scegliere di aggiungere informazioni utili al nome, ad esempio includendo la regione AWS e il motore di database selezionato, come aurora-cluster1.

      L'identificatore istanze database presenta i seguenti vincoli:

      • Deve contenere da 1 a 63 caratteri alfanumerici o trattini.

      • Il primo carattere deve essere una lettera.

      • Non può terminare con un trattino o contenere due trattini consecutivi.

      • Deve essere univoco per tutte le istanze database, per ogni account AWS e in ogni regione AWS.

    • Virtual Private Cloud (VPC): se hai già un VPC esistente, puoi utilizzarlo con il cluster di database Aurora MySQL selezionando l'identificatore VPC, ad esempio vpc-a464d1c1. Per ulteriori informazioni sulla creazione di un VPC, consulta Tutorial: Creazione di un Amazon VPC da utilizzare con un cluster database (solo IPv4).

      Diversamente, puoi stabilire che Aurora crei un VPC per te selezionando Create a new VPC (Crea un nuovo VPC).

    • DB subnet group (Gruppo di sottoreti DB): un gruppo di sottoreti esistente può essere utilizzato con il cluster database Aurora MySQL selezionando l'identificatore del gruppo di sottoreti, ad esempio gs-subnet-group1.

      Diversamente, puoi stabilire che Aurora crei un gruppo di sottoreti selezionando Create a new subnet group (Crea nuovo gruppo di sottoreti).

    • Public accessibility (Accesso pubblico): seleziona No (No) per specificare che le istanze nel cluster database si possono accedere solamente da risorse all'interno del proprio VPC. Selezionare Yes (Si) per specificare che le istanze nel cluster database sono accessibili dalle risorse nella rete pubblica. Il valore predefinito è Yes (Sì).

      Nota

      Il cluster DB di produzione potrebbe non trovarsi in una sottorete pubblica, poiché solo i server applicativi richiedono l'accesso al cluster DB. Se non è necessario che il cluster database si trovi in una sottorete pubblica, impostare Publicly Accessible (Accessibile pubblicamente) su No.

    • Availability Zone (Zona di disponibilità): seleziona la zona di disponibilità per ospitare l'istanza primaria per il cluster di database Aurora MySQL. Per permettere a Aurora di selezionare automaticamente una zona di disponibilità, seleziona No Preference (Nessuna preferenza).

    • Database Port (Porta database): digita la porta predefinita da usare quando si effettua la connessione a istanze nel cluster di database Aurora MySQL. Il valore di default è 3306.

      Nota

      Potrebbe essere attivo un firewall aziendale che non permette l'accesso alle porte predefinite come la porta predefinita di MySQL 3306. In questo caso, fornire un valore di porta permesso dal firewall aziendale. Ricorda il valore di porta per utilizzarlo successivamente, al momento della connessione al cluster di database Aurora MySQL.

    • Encryption (Crittografia): seleziona Enable Encryption (Abilita crittografia) perché il nuovo cluster di database Aurora MySQL venga crittografato mentre è inattivo. Se scegli Enable Encryption (Abilita crittografia), devi scegliere una chiave KMS come valore AWS KMS key.

      Se la snapshot DB non è crittografata, specifica una chiave di crittografia per fare in modo che il cluster database sia crittografato mentre è inattivo.

      Se la snapshot DB è crittografata, specifica una chiave di crittografia per fare in modo che il cluster database sia crittografato mentre è inattivo utilizzando la chiave di crittografia specificata. Puoi specificare la chiave di crittografia utilizzata dalla snapshot DB o una chiave diversa. Non puoi creare un cluster database non crittografato da una snapshot DB crittografata.

    • Aggiornamento automatico della versione secondaria: questa impostazione non si applica ai cluster di database Aurora MySQL.

      Per ulteriori informazioni sugli aggiornamenti del motore per Aurora MySQL, consultare Aggiornamenti del motore del database per Amazon Aurora MySQL.

  4. Selezionare Migrate (Migra) per effettuare la migrazione della snapshot DB.

  5. Selezionare Instances (Istanze) e quindi l'icona con la freccia per visualizzare i dettagli del cluster DB e monitorare l'avanzamento della migrazione. Nella pagina dei dettagli, puoi trovare l'endpoint del cluster utilizzato per la connessione all'istanza principale del cluster DB. Per ulteriori informazioni sulla connessione a un cluster di database Aurora MySQL, consulta Connessione a un cluster database Amazon Aurora.

Puoi creare un cluster database Aurora da uno snapshot DB di una istanza database RDS for MySQL utilizzando il comando restore-db-cluster-from-snapshot con i seguenti parametri:

  • --db-cluster-identifier: nome del cluster di database da creare.

  • --engine aurora-mysql: per un cluster di database compatibile con MySQL 5.7 o 8.0.

  • --kms-key-id: la AWS KMS key con la quale crittografare opzionalmente il cluster di database, in base al fatto se lo snapshot di database è stato crittografato o meno.

    • Se la snapshot DB non è crittografata, specifica una chiave di crittografia per fare in modo che il cluster database sia crittografato mentre è inattivo. Altrimenti, il cluster database non è crittografato.

    • Se la snapshot DB è crittografata, specifica una chiave di crittografia per fare in modo che il cluster database sia crittografato mentre è inattivo utilizzando la chiave di crittografia specificata. Altrimenti, il cluster database è crittografato mentre è inattivo utilizzando la chiave di crittografia per la snapshot DB.

      Nota

      Non puoi creare un cluster database non crittografato da una snapshot DB crittografata.

  • --snapshot-identifier: l'Amazon Resource Name (ARN) dello snapshot DB da migrare. Per ulteriori informazioni sugli ARN di Amazon RDS, consulta Amazon Relational Database Service (Amazon RDS).

Quando migri la snapshot DB utilizzando il comando RestoreDBClusterFromSnapshot, il comando crea sia il cluster database sia l'istanza primaria.

In questo esempio, crei un cluster di database compatibile con MySQL 5.7–, denominato mydbcluster da una snapshot di database con un nome ARN impostato su mydbsnapshotARN.

Per LinuxmacOS, oUnix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Per Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql

In questo esempio, crei un cluster di database compatibile con MySQL 5.7–, denominato mydbcluster da una snapshot di database con un nome ARN impostato su mydbsnapshotARN.

Per LinuxmacOS, oUnix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Per Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql