Ripristino di un backup in un'istanza Amazon RDS for My SQL DB - 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à.

Ripristino di un backup in un'istanza Amazon RDS for My SQL DB

Amazon RDS supporta l'importazione di SQL database My utilizzando file di backup. Puoi creare un backup del database, archiviarlo su Amazon S3 e quindi ripristinare il file di backup su una nuova istanza Amazon RDS DB che esegue My. SQL

Lo scenario descritto in questa sezione ripristina un backup di un database locale. Puoi utilizzare questa tecnica per database in altre località, come Amazon EC2 o servizi non AWS cloud, purché il database sia accessibile.

Lo scenario supportato è riportato nel seguente diagramma.

La mia SQL importazione di file di backup da S3.

L'importazione di file di backup da Amazon S3 è supportata in tutto da SQL My. Regioni AWS

Ti consigliamo di importare il database su Amazon RDS utilizzando file di backup se il database locale può essere offline durante la creazione, la copia e il ripristino del file di backup. Se il database non può essere offline, puoi utilizzare la replica dei log binari (binlog) per aggiornare il database dopo la migrazione ad Amazon tramite Amazon RDS S3, come spiegato in questo argomento. Per ulteriori informazioni, consulta Configurazione della replica della posizione del file di log binario con un'istanza di origine esterna.. Puoi anche utilizzare il AWS Database Migration Service per migrare il tuo database su AmazonRDS. Per ulteriori informazioni, consulta Cos'è AWS Database Migration Service?

Panoramica della configurazione per l'importazione di file di backup da Amazon S3 ad Amazon RDS

Questi sono i componenti che devi configurare per importare file di backup da Amazon S3 ad Amazon: RDS

  • Un bucket Amazon S3 per archiviare i file di backup.

  • Un backup del database locale creato da Percona. XtraBackup

  • Un ruolo AWS Identity and Access Management (IAM) per consentire ad Amazon RDS di accedere al bucket.

Se disponi già di un bucket Amazon S3, puoi utilizzarlo. Se non hai già un bucket Amazon S3, puoi creane uno nuovo. Se intendi creare un nuovo bucket, consulta Creazione di un bucket.

Usa lo XtraBackup strumento Percona per creare il tuo backup. Per ulteriori informazioni, consulta Creazione del backup di database.

Se hai già un IAM ruolo, puoi usarlo. Se non hai un IAM ruolo, puoi crearne uno nuovo manualmente. In alternativa, puoi scegliere di creare un nuovo IAM ruolo nel tuo account tramite la procedura guidata quando ripristini il database utilizzando il AWS Management Console. Se desideri creare un nuovo IAM ruolo manualmente o associare criteri di fiducia e autorizzazioni a un IAM ruolo esistente, consulta. Creazione di un ruolo IAM manualmente Se desideri che venga creato un nuovo IAM ruolo, segui la procedura riportata inConsole.

Creazione del backup di database

Usa il XtraBackup software Percona per creare il tuo backup. Ti consigliamo di utilizzare l'ultima versione di XtraBackup Percona. Puoi installare Percona XtraBackup da Download Percona. XtraBackup

avvertimento

Durante la creazione di un backup del database, XtraBackup potrebbe salvare le credenziali nel file xtrabackup_info. Assicurati di esaminare quel file in modo che l'impostazione tool_command non contenga informazioni sensibili.

Nota

Per la migrazione a My SQL 8.0, è necessario utilizzare Percona 8.0. XtraBackup Percona XtraBackup 8.0.12 e versioni successive supportano la migrazione di tutte le versioni di My. SQL Se stai migrando a RDS My SQL 8.0.20 o versioni successive, devi utilizzare Percona 8.0.12 o versioni successive. XtraBackup

Per le migrazioni a My SQL 5.7, puoi anche usare Percona 2.4. XtraBackup Per le migrazioni delle SQL versioni precedenti di My, puoi anche usare XtraBackup Percona 2.3 o 2.4.

È possibile creare un backup completo dei file del SQL database My utilizzando Percona. XtraBackup In alternativa, se utilizzi già Percona XtraBackup per eseguire il backup dei file del SQL database My, puoi caricare le directory e i file di backup completi e incrementali esistenti.

Per ulteriori informazioni sul backup del database con Percona XtraBackup, consulta Percona XtraBackup - documentazione e The xtrabackup binary sul sito Web di Percona.

Creazione di un backup completo con Percona XtraBackup

Per creare un backup completo dei file del SQL database My che possono essere ripristinati da Amazon S3, utilizza l' XtraBackup utilità Percona (xtrabackup) per eseguire il backup del database.

Ad esempio, il comando seguente crea un backup di un SQL database My e archivia i file nella cartella/on-premises/s3-restore/backup.

xtrabackup --backup --user=<myuser> --password=<password> --target-dir=</on-premises/s3-restore/backup>

Se desideri comprimere il backup in un singolo file (che può essere diviso in seguito, se necessario), puoi salvare il backup in uno dei seguenti formati:

  • Gzip (.gz)

  • tar (.tar)

  • Percona xbstream (.xbstream)

Nota

Percona XtraBackup 8.0 supporta solo Percona xbstream per la compressione.

Il comando seguente crea un backup del tuo SQL database My suddiviso in più file Gzip.

xtrabackup --backup --user=<myuser> --password=<password> --stream=tar \ --target-dir=</on-premises/s3-restore/backup> | gzip - | split -d --bytes=500MB \ - </on-premises/s3-restore/backup/backup>.tar.gz

Il comando seguente crea un backup del SQL database My suddiviso in più file tar.

xtrabackup --backup --user=<myuser> --password=<password> --stream=tar \ --target-dir=</on-premises/s3-restore/backup> | split -d --bytes=500MB \ - </on-premises/s3-restore/backup/backup>.tar

Il comando seguente crea un backup del SQL database My suddiviso in più file xbstream.

xtrabackup --backup --user=<myuser> --password=<password> --stream=xbstream \ --target-dir=</on-premises/s3-restore/backup> | split -d --bytes=500MB \ - </on-premises/s3-restore/backup/backup>.xbstream
Nota

Se viene visualizzato il seguente errore, potrebbe essere causato dalla combinazione di formati di file nel comando:

ERROR:/bin/tar: This does not look like a tar archive

Utilizzo di backup incrementali con Percona XtraBackup

Se utilizzi già Percona XtraBackup per eseguire backup completi e incrementali dei tuoi file di SQL database My, non è necessario creare un backup completo e caricare i file di backup su Amazon S3. Puoi, invece, risparmiare tempo copiando le directory e i file di backup esistenti nel bucket Amazon S3. Per ulteriori informazioni sulla creazione di backup incrementali con Percona, consulta Backup incrementale. XtraBackup

Durante la copia dei file del backup completo e incrementale in un bucket Amazon S3, devi copiare in modo ricorsivo i contenuti della directory di base. Questi contenuti includono il backup completo e anche tutte le directory e i file del backup incrementale. Questa copia deve mantenere la struttura di directory nel bucket Amazon S3. Amazon esegue RDS iterazioni su tutti i file e le directory. Amazon RDS utilizza il xtrabackup-checkpoints file incluso in ogni backup incrementale per identificare la directory di base e ordinare i backup incrementali in base all'intervallo di numeri di sequenza di log ()LSN.

Considerazioni sul backup per Percona XtraBackup

Amazon RDS utilizza i tuoi file di backup in base al nome del file. Assegnare un nome ai file di backup con l'estensione file appropriata in base al formato, —ad esempio, .xbstream per i file archiviati tramite il formato xbstream di Percona.

Amazon RDS utilizza i tuoi file di backup in ordine alfabetico e anche in ordine numerico naturale. Utilizza l'opzione split quando invii il comando xtrabackup per assicurarti che i file di backup vengano scritti e denominati nell'ordine corretto.

Amazon RDS non supporta backup parziali creati utilizzando XtraBackup Percona. Non puoi usare le opzioni seguenti per creare un backup parziale quando esegui il backup dei file di origine per il database: --tables, --tables-exclude, --tables-file, --databases, --databases-exclude o --databases-file.

Amazon RDS supporta i backup incrementali creati con Percona. XtraBackup Per ulteriori informazioni sulla creazione di backup incrementali utilizzando XtraBackup Percona, consulta Backup incrementale.

Creazione di un ruolo IAM manualmente

Se non hai un IAM ruolo, puoi crearne uno nuovo manualmente. Tuttavia, se ripristini il database utilizzando il AWS Management Console, ti consigliamo di seguire la procedura descritta Console e scegliere di RDS creare questo nuovo IAM ruolo automaticamente.

Per creare manualmente un nuovo IAM ruolo per l'importazione del database da Amazon S3, crea un ruolo per delegare le autorizzazioni da Amazon al RDS tuo bucket Amazon S3. Quando crei un IAM ruolo, alleghi politiche di fiducia e autorizzazioni. Per importare i file di backup da Amazon S3, utilizza politiche di fiducia e autorizzazioni simili agli esempi seguenti. Per ulteriori informazioni sulla creazione del ruolo, consulta Creazione di un ruolo per delegare le autorizzazioni a un servizio. AWS

Le politiche di fiducia e autorizzazioni richiedono che tu fornisca un Amazon Resource Name (ARN). Per ulteriori informazioni sulla ARN formattazione, consulta Amazon Resource Names (ARNs) e AWS service namespaces.

Esempio politica di fiducia per l'importazione da Amazon S3
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole" }] }
Esempio politica delle autorizzazioni per l'importazione da Amazon IAM S3: autorizzazioni utente

Nell'esempio seguente, sostituisci iam_user_id con il tuo valore.

{ "Version":"2012-10-17", "Statement": [ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::iam_user_id:role/S3Access" } ] }
Esempio politica delle autorizzazioni per l'importazione da Amazon S3 — autorizzazioni di ruolo

Nell'esempio seguente, sostituisci amzn-s3-demo-bucket e prefix con i tuoi valori.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" }, { // If your bucket is encrypted, include the following permission. This permission allows decryption of your AWS KMS key. "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:customer_id:key/key_id*" ] } ] }
Nota

Se includi un prefisso del nome file, aggiungi l'asterisco (*) dopo il prefisso. Se non intendi specificare un prefisso, specifica solo un asterisco.

Importazione di dati da Amazon S3 in una nuova SQL istanza My DB

Puoi importare dati da Amazon S3 in una nuova istanza My SQL DB utilizzando AWS Management Console AWS CLI, o. RDS API

Per importare dati da Amazon S3 in una nuova istanza My DB SQL
  1. Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nell'angolo in alto a destra della RDS console Amazon, scegli l'istanza database Regione AWS in cui creare la tua istanza DB. Scegli lo Regione AWS stesso bucket Amazon S3 che contiene il backup del database.

  3. Nel riquadro di navigazione, scegliere Databases (Database).

  4. Seleziona Ripristina da S3.

    Sarà visualizzata la pagina Crea database ripristinando da S3 .

    La pagina Crea database ripristinando da S3 in cui specifichi i dettagli per il ripristino di un'istanza DB da S3.
  5. In Destinazione S3:

    1. Seleziona il bucket S3 che contiene il backup.

    2. (Facoltativo) Per il prefisso S3, inserisci il prefisso del percorso del file archiviato nel tuo bucket Amazon S3.

      Se non specifichi un prefisso, RDS crea l'istanza DB utilizzando tutti i file e le cartelle nella cartella principale del bucket S3. Se specifichi un prefisso, RDS crea l'istanza DB utilizzando i file e le cartelle nel bucket S3 in cui il percorso del file inizia con il prefisso specificato.

      Ad esempio, si supponga di archiviare i file di backup su S3 in una sottocartella denominata backups e di disporre di più set di file di backup, ciascuno nella sua directory (gzip_backup1, gzip_backup2 e così via). In questo caso, specificare un prefisso di backups/gzip_backup1 per eseguire il ripristino dai file nella cartella gzip_backup1.

  6. In Opzioni motore:

    1. Per Tipo di motore, scegli My. SQL

    2. Per la versione del motore di origine, scegli La mia versione SQL principale del database di origine.

    3. Per la versione del motore, scegli la versione secondaria predefinita della tua versione SQL principale personale nel tuo Regione AWS.

      In AWS Management Console, è disponibile solo la versione secondaria predefinita. È possibile aggiornare l'istanza DB dopo l'importazione.

  7. Per quanto riguarda IAMil ruolo, crea o scegli IAM un ruolo con la politica di fiducia e le autorizzazioni richieste che consentono RDS ad Amazon di accedere al tuo bucket Amazon S3. Eseguire una delle seguenti operazioni:

    • (Consigliato) Scegli Crea un nuovo ruolo e inserisci il nome del IAM ruolo. Con questa opzione, crea RDS automaticamente il ruolo con la politica di fiducia e la politica di autorizzazioni per te.

    • Scegli un IAM ruolo esistente. Assicurati che questo ruolo soddisfi tutti i criteri diCreazione di un ruolo IAM manualmente.

  8. Specifica le informazioni sull'istanza database. Per informazioni su ciascuna impostazione, consulta Impostazioni per istanze database.

    Nota

    Assicurati di allocare memoria sufficiente per la nuova istanza database in modo che il ripristino vada a buon fine.

    Puoi inoltre scegliere l’opzione Abilita dimensionamento automatico dello storage per consentire automaticamente la crescita futura.

  9. Scegliere impostazioni aggiuntive in base alle esigenze.

  10. Scegliere Create database (Crea database).

Per importare dati da Amazon S3 in una nuova istanza My SQL DB utilizzando AWS CLI, chiama il comando restore-db-instance-from-s3 con i seguenti parametri. Per informazioni su ciascuna impostazione, consulta Impostazioni per istanze database.

Nota

Assicurati di allocare memoria sufficiente per la nuova istanza database in modo che il ripristino vada a buon fine.

Puoi inoltre utilizzare il parametro --max-allocated-storage per abilitare il dimensionamento automatico dello storage e consentire automaticamente una crescita futura.

  • --allocated-storage

  • --db-instance-identifier

  • --db-instance-class

  • --engine

  • --master-username

  • --manage-master-user-password

  • --s3-bucket-name

  • --s3-ingestion-role-arn

  • --s3-prefix

  • --source-engine

  • --source-engine-version

Esempio

In Linux, macOS, oppure Unix:

aws rds restore-db-instance-from-s3 \ --allocated-storage 250 \ --db-instance-identifier myidentifier \ --db-instance-class db.m5.large \ --engine mysql \ --master-username admin \ --manage-master-user-password \ --s3-bucket-name amzn-s3-demo-bucket \ --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \ --s3-prefix bucketprefix \ --source-engine mysql \ --source-engine-version 8.0.32 \ --max-allocated-storage 1000

In Windows:

aws rds restore-db-instance-from-s3 ^ --allocated-storage 250 ^ --db-instance-identifier myidentifier ^ --db-instance-class db.m5.large ^ --engine mysql ^ --master-username admin ^ --manage-master-user-password ^ --s3-bucket-name amzn-s3-demo-bucket ^ --s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename ^ --s3-prefix bucketprefix ^ --source-engine mysql ^ --source-engine-version 8.0.32 ^ --max-allocated-storage 1000

Per importare dati da Amazon S3 in una nuova istanza My SQL DB utilizzando Amazon RDSAPI, chiama l'operazione R estoreDBInstance fromS3.

Limitazioni e consigli per l'importazione di file di backup da Amazon S3 ad Amazon RDS

Di seguito vengono riportate alcune limitazioni e consigli per l'importazione di file di backup da Amazon S3:

  • Puoi importare i dati solo in una nuova istanza database, non in una istanza database esistente.

  • È necessario utilizzare Percona XtraBackup per creare il backup del database locale.

  • Non puoi importare dati da un'esportazione di snapshot DB in Amazon S3.

  • Non è possibile migrare da un database di origine con tabelle definite al di fuori della directory predefinita My SQL data.

  • È necessario importare i dati nella versione secondaria predefinita della versione SQL principale di My. Regione AWS Ad esempio, se la tua versione principale è My SQL 8.0 e la versione secondaria predefinita Regione AWS è 8.0.35, devi importare i dati in un'istanza DB di My SQL version 8.0.35. È possibile aggiornare l'istanza DB dopo l'importazione. Per informazioni sulla determinazione della versione secondaria predefinita, vedere Le mie RDS versioni SQL su Amazon.

  • La migrazione alle versioni precedenti non è supportata per le versioni maggiori e minori. Ad esempio, non puoi eseguire la migrazione dalla versione 8.0 alla versione 5.7 e non puoi eseguire la migrazione dalla versione 8.0.32 alla versione 8.0.31.

  • Non è possibile importare un database My SQL 5.5 o 5.6.

  • Non è possibile importare un SQL database My locale da una versione principale a un'altra. Ad esempio, non è possibile importare un database My SQL 5.7 in un database RDS for My SQL 8.0. Puoi aggiornare l'istanza database al termine dell'importazione.

  • Non puoi eseguire il ripristino da un database di origine crittografato, ma puoi eseguire il ripristino su un'istanza Amazon RDS DB crittografata.

  • Non è possibile ripristinare da un backup crittografato nel bucket Amazon S3.

  • Non puoi eseguire il ripristino da un bucket Amazon S3 in un'istanza Amazon RDS DB diversa dalla Regione AWS tua.

  • L'importazione da Amazon S3 non è supportata sulla classe istanza database db.t2.micro. Tuttavia, puoi eseguire il ripristino in una classe istanza database diversa e modificare la classe di istanza in seguito. Per ulteriori informazioni sulle classi di istanza, consulta Specifiche hardware per le classi di istanza database .

  • Amazon S3 limita la dimensione del file caricato in un bucket Amazon S3 a 5 TB. Se un file di backup supera i 5 TB, devi dividerlo in file più piccoli.

  • Quando ripristini il database, il backup viene copiato e quindi estratto sull'istanza database. Di conseguenza, il provisioning dello spazio di storage per l'istanza database è uguale o superiore alla somma delle dimensioni del backup, più la dimensione del database originale su disco.

  • Amazon RDS limita a 1 milione il numero di file caricati in un bucket Amazon S3. Se i dati di backup del database, inclusi tutti i backup completi e incrementali, superano 1 milione di file, utilizza un file Gzip (.gz), tar (.tar.gz) o Percona xbstream (.xbstream) per memorizzare i file dei backup completi e incrementali nel bucket Amazon S3. Percona XtraBackup 8.0 supporta solo Percona xbstream per la compressione.

  • Gli account utente non vengono importati automaticamente. Salva gli account utente dal database di origine e aggiungili nella nuova istanza database in n seguito.

  • Le funzioni non vengono importate automaticamente. Salva le funzioni dal database di origine e aggiungile nella nuova istanza database in seguito.

  • Le stored procedure non vengono importate automaticamente. Salva le stored procedure dal database di origine e aggiungile nella nuova istanza database in seguito.

  • Le informazioni sul fuso orario non vengono importate automaticamente. Registra le informazioni sul fuso orario per il database di origine e imposta il fuso orario della nuova istanza database in seguito. Per ulteriori informazioni, consulta Fuso orario locale per le istanze database MySQL.

  • Il parametro innodb_data_file_path deve essere configurato con un solo file di dati che utilizza il nome di file di dati predefinito "ibdata1:12M:autoextend". I database con due file di dati o con un file di dati con un nome diverso non possono essere migrati utilizzando questo metodo.

    Di seguito sono riportati esempi di nomi di file che non sono permessi: "innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend" e "innodb_data_file_path=ibdata01:50M:autoextend".

  • La dimensione massima del database ripristinato è la dimensione massima del database supportata meno la dimensione del backup. Pertanto, se la dimensione massima del database supportata è 64 TiB e la dimensione del backup è 30 TiB, la dimensione massima del database ripristinato è 34 TiB, come nell'esempio seguente:

    64 TiB - 30 TiB = 34 TiB

    Per informazioni sulla dimensione massima del database supportata da Amazon RDS for MySQL, consulta Archiviazione per scopi SSD generici eIOPSSSDStorage assegnato.