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 DB Amazon RDS for MySQL
Amazon RDS supporta l'importazione di database MySQL con file di backup. Puoi creare un backup del database, archiviare il file di backup su Amazon S3 e quindi ripristinare il file di backup su una nuova istanza database Amazon RDS che esegue MySQL. Amazon RDS supporta in tutto l'importazione di file di backup da Amazon S3. Regioni AWS
Lo scenario descritto in questa sezione ripristina un backup di un database locale. Finché il database è accessibile, puoi utilizzare questa tecnica per database in altre località, come Amazon EC2 o altri servizi cloud.
Il seguente diagramma mostra lo scenario supportato.

Se il database locale può essere offline durante la creazione, la copia e il ripristino dei file di backup, ti consigliamo di utilizzare i file di backup per importare il database in Amazon RDS. Se il database non può essere offline, puoi utilizzare uno dei seguenti metodi:
-
Registri binari: per prima cosa, importa i file di backup da Amazon S3 e Amazon RDS, come spiegato in questo argomento. Utilizza quindi la replica dei log binari (binlog) per aggiornare il database. Per ulteriori informazioni, consulta Configurazione della replica della posizione del file di log binario con un'istanza di origine esterna..
-
AWS Database Migration Service— Utilizzalo AWS Database Migration Service per migrare il tuo database su Amazon RDS. Per ulteriori informazioni, consulta Cos'è? AWS Database Migration Service
Panoramica della configurazione per importare file di backup da Amazon S3 ad Amazon RDS
Per importare file di backup da Amazon S3 ad Amazon RDS, sono necessari i seguenti componenti:
Un bucket Amazon S3 per archiviare i file di backup.
Se disponi già di un bucket Amazon S3, puoi utilizzare quel bucket. Se non disponi di un bucket Amazon S3, creane uno nuovo. Per ulteriori informazioni, consulta Creazione di un bucket.
Un backup del database locale creato da Percona. XtraBackup
Per ulteriori informazioni, consulta Creazione del backup di database.
-
Un ruolo AWS Identity and Access Management (IAM) per consentire ad Amazon RDS di accedere al bucket S3.
Se disponi già di un ruolo IAM, puoi utilizzare quel ruolo e associare ad esso politiche di fiducia e autorizzazioni. Per ulteriori informazioni, consulta Creazione di un ruolo IAM manualmente.
Se non disponi di un ruolo IAM, hai due opzioni:
-
Puoi creare manualmente un nuovo ruolo IAM. Per ulteriori informazioni, consulta Creazione di un ruolo IAM manualmente.
-
Puoi scegliere Amazon RDS di creare un nuovo ruolo IAM per te. Se desideri che Amazon RDS crei un nuovo ruolo IAM per te, segui la procedura che utilizza la Importazione di dati da Amazon S3 in una nuova istanza database MySQL sezione AWS Management Console in.
-
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. È possibile installare Percona XtraBackup da Software Downloads sul sito Web
avvertimento
Durante la creazione di un backup del database, XtraBackup potrebbe salvare le credenziali nel file xtrabackup_info. Assicurati di confermare che l'tool_command
impostazione nel file xtrabackup_info non contenga informazioni sensibili.
La XtraBackup versione di Percona che usi dipende dalla versione di MySQL di cui stai eseguendo il backup.
-
MySQL 8.4 — Usa la versione 8.4 di Percona. XtraBackup
-
MySQL 8.0 — Usa la versione 8.0 di Percona. XtraBackup
Nota
Percona XtraBackup 8.0.12 e versioni successive supportano la migrazione di tutte le versioni di MySQL 8.0. Se stai migrando a RDS for MySQL 8.0.32 o versioni successive, devi usare Percona 8.0.12 o versioni successive. XtraBackup
-
MySQL 5.7 — Usa la versione 2.4 di Percona. XtraBackup
Puoi usare Percona XtraBackup per creare un backup completo dei file del tuo database MySQL. In alternativa, se utilizzi già Percona XtraBackup per eseguire il backup dei file del database MySQL, puoi caricare le directory e i file di backup completi e incrementali esistenti.
Per ulteriori informazioni sul backup del database con Percona, consulta Percona - Documentazione sul sito XtraBackup Web di XtraBackup Percona
Creazione di un backup completo con Percona XtraBackup
Per creare un backup completo dei file del database MySQL che Amazon RDS può ripristinare da Amazon S3, usa l'utilità Percona (). XtraBackup xtrabackup
Ad esempio, il comando seguente consente di creare un backup di un database MySQL e memorizzare 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 unico file, che potrai suddividere in più file in un secondo momento, se necessario, puoi salvare il backup in uno dei seguenti formati in base alla tua versione di MySQL:
Gzip (.gz) — Per MySQL 5.7 e versioni precedenti
tar (.tar) — Per MySQL 5.7 e versioni precedenti
Percona xbstream (.xbstream) — Per tutte le versioni di MySQL
Nota
Percona XtraBackup 8.0 e versioni successive supportano solo Percona xbstream per la compressione.
MySQL 5.7 e versioni precedenti
Il comando seguente consente di creare un backup del database MySQL diviso in più file Gzip. Sostituisci i valori con le tue informazioni.
xtrabackup --backup --user=
my_user
--password=password
--stream=tar \ --target-dir=/on-premises/s3-restore/backup
| gzip - | split -d --bytes=500MB \ -/on-premises/s3-restore/backup/backup
.tar.gz
MySQL 5.7 e versioni precedenti
Il comando seguente consente di creare un backup del database MySQL diviso in più file tar. Sostituisci i valori con le tue informazioni.
xtrabackup --backup --user=
my_user
--password=password
--stream=tar \ --target-dir=/on-premises/s3-restore/backup
| split -d --bytes=500MB \ -/on-premises/s3-restore/backup/backup
.tar
Tutte le versioni di MySQL
Il comando seguente consente di creare un backup del database MySQL diviso in più file xbstream. Sostituisci i valori con le tue informazioni.
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 visualizzi il seguente errore, è possibile che nel comando siano stati utilizzati diversi formati di file:
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 file del tuo database MySQL, non è necessario creare un backup completo e caricare i file di backup su Amazon S3. Invece, per risparmiare tempo, copia le directory e i file di backup esistenti nel tuo bucket Amazon S3. Per ulteriori informazioni sulla creazione di backup incrementali con Percona XtraBackup, consulta Creare un backup incrementale
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 sia il backup completo che tutte le directory e i file di backup incrementali. Questa copia deve mantenere la struttura di directory nel bucket Amazon S3. Amazon RDS esegue l'iterazione di 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 consuma i file di backup in base al nome del file. Assegna un nome ai file di backup con l'estensione appropriata in base al formato del file. Ad esempio, utilizzalo .xbstream
per i file archiviati utilizzando il formato Percona xbstream.
Amazon RDS consuma i file di backup in ordine alfabetico e anche in ordine numerico naturale. Per garantire che i file di backup siano scritti e denominati nell'ordine corretto, utilizzate l'split
opzione quando emettete il comando. xtrabackup
Amazon RDS non supporta backup parziali creati con Percona. XtraBackup Non puoi utilizzare le seguenti opzioni per creare un backup parziale quando esegui il backup dei file di origine del database:
-
--tables
-
--tables-exclude
-
--tables-file
-
--databases
-
--databases-exclude
-
--databases-file
Creazione di un ruolo IAM manualmente
Se non hai già un ruolo IAM, puoi creane uno nuovo manualmente. Tuttavia, se ripristini il database utilizzando il AWS Management Console, ti consigliamo di fare in modo che Amazon RDS crei questo nuovo ruolo IAM per te. Affinché Amazon RDS possa creare questo ruolo per te, segui la procedura riportata nella Importazione di dati da Amazon S3 in una nuova istanza database MySQL sezione.
Per creare manualmente un nuovo ruolo IAM per l'importazione del database da Amazon S3, crea un ruolo per delegare le autorizzazioni da Amazon RDS al tuo bucket Amazon S3. Quando crei un ruolo IAM, vengono collegate le policy di attendibilità e autorizzazione. 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 policy di attendibilità e autorizzazione richiedono che venga fornito un Amazon Resource Name (ARN). Per ulteriori informazioni sulla formattazione ARN, 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 di autorizzazione per l'importazione da Amazon S3 — autorizzazioni utente IAM
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 istanza database MySQL
Puoi importare dati da Amazon S3 in una nuova istanza DB MySQL utilizzando l' AWS Management Console API, o RDS. AWS CLI
Per importare dati da Amazon S3 in una nuova istanza database MySQL
-
Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nell'angolo in alto a destra della console Amazon RDS, scegli Regione AWS dove vuoi creare la tua istanza DB. Scegli lo Regione AWS stesso bucket Amazon S3 che contiene il backup del database.
-
Nel riquadro di navigazione, scegliere Databases (Database).
-
Seleziona Ripristina da S3.
Sarà visualizzata la pagina Crea database ripristinando da S3 .
-
Sotto la fonte S3:
-
Seleziona il bucket S3 che contiene il backup.
-
(Facoltativo) Per il prefisso S3, inserisci il prefisso del percorso del file archiviato nel tuo bucket Amazon S3.
Se non specifichi un prefisso, Amazon RDS crea l'istanza DB utilizzando tutti i file e le cartelle nella cartella principale del bucket S3. Se specifichi un prefisso, Amazon 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, memorizzi i file di backup su S3 in una sottocartella denominata backups e disponi di più set di file di backup, ciascuno nella propria directory (gzip_backup1, gzip_backup2 e così via). In questo caso, per eseguire il ripristino dai file nella cartella gzip_backup1, specificate il prefisso backups/gzip_backup1.
-
-
In Opzioni motore:
-
Per Tipo di motore, seleziona MySQL.
-
In Versione motore di origine, seleziona la versione MySQL del database di origine.
-
Per Engine Version, scegli la versione secondaria predefinita della tua versione principale di MySQL nel tuo. Regione AWS
In AWS Management Console, è disponibile solo la versione secondaria predefinita. Dopo aver completato l'importazione, puoi aggiornare l'istanza DB.
-
-
Per il ruolo IAM, crea o scegli il ruolo IAM con la policy di fiducia e la policy di autorizzazione richieste che consentono ad Amazon RDS di accedere al tuo bucket Amazon S3. Eseguire una delle seguenti operazioni:
(Consigliato) Scegli Crea un nuovo ruolo e inserisci il nome del ruolo IAM. Con questa opzione, Amazon RDS crea automaticamente il ruolo con la politica di fiducia e la politica di autorizzazione per te.
Scegli un ruolo IAM esistente. Assicurati che questo ruolo soddisfi tutti i criteri diCreazione di un ruolo IAM manualmente.
-
Specifica le informazioni sull'istanza database. Per informazioni su ciascuna impostazione, consulta Impostazioni per istanze database.
Nota
Assicurati di allocare spazio di archiviazione sufficiente per la nuova istanza DB in modo che l'operazione di ripristino possa avere successo.
Per consentire automaticamente la crescita futura, in Configurazione di archiviazione aggiuntiva, scegli Abilita scalabilità automatica dello storage.
-
Scegliere impostazioni aggiuntive in base alle esigenze.
-
Scegliere Create database (Crea database).
Per importare dati da Amazon S3 in una nuova istanza DB MySQL utilizzando il AWS CLI, esegui il comando restore-db-instance-from-s3 con le seguenti opzioni. Per informazioni su ciascuna impostazione, consulta Impostazioni per istanze database.
Nota
Assicurati di allocare spazio di archiviazione sufficiente per la tua nuova istanza DB in modo che l'operazione di ripristino possa avere successo.
Per abilitare la scalabilità automatica dello storage e consentire automaticamente la crescita futura, utilizza l'opzione. --max-allocated-storage
--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-identifiermy_identifier
\ --db-instance-classdb.m5.large
\ --enginemysql
\ --master-usernameadmin
\ --manage-master-user-password \ --s3-bucket-nameamzn-s3-demo-bucket
\ --s3-ingestion-role-arnarn:aws:iam::account-number:role/rolename
\ --s3-prefixbucket_prefix
\ --source-enginemy_sql
\ --source-engine-version8.0.32
\ --max-allocated-storage1000
In Windows:
aws rds restore-db-instance-from-s3 ^ --allocated-storage
250
^ --db-instance-identifiermy_identifier
^ --db-instance-classdb.m5.large
^ --enginemysql
^ --master-usernameadmin
^ --manage-master-user-password ^ --s3-bucket-nameamzn-s3-demo-bucket
^ --s3-ingestion-role-arnarn:aws:iam::account-number:role/rolename
^ --s3-prefixbucket_prefix
^ --source-enginemysql
^ --source-engine-version8.0.32
^ --max-allocated-storage1000
Limitazioni e considerazioni per l'importazione di file di backup da Amazon S3 ad Amazon RDS
Le seguenti limitazioni e considerazioni si applicano all'importazione di file di backup da Amazon S3 a un'istanza DB RDS for MySQL:
-
Puoi migrare i tuoi dati solo su una nuova istanza DB, non su un'istanza DB esistente.
-
È necessario utilizzare Percona XtraBackup per eseguire il backup dei dati su Amazon S3. Per ulteriori informazioni, consulta Creazione del backup di database.
-
Il bucket Amazon S3 e l'istanza DB RDS for MySQL devono trovarsi nello stesso spazio. Regione AWS
-
Non è possibile eseguire il ripristino dalle seguenti fonti:
-
Esportazione di uno snapshot di un'istanza DB su Amazon S3. Inoltre, non puoi migrare i dati da un'esportazione di snapshot di un'istanza DB al tuo bucket Amazon S3.
-
Un database di origine crittografato. Tuttavia, è possibile crittografare i dati in fase di migrazione. Durante il processo di migrazione puoi anche lasciare i dati non crittografati.
-
Un database MySQL 5.5 o 5.6.
-
-
RDS for MySQL non supporta Percona Server for MySQL come database di origine perché può contenere tabelle in.
compression_dictionary*
mysql schema
-
RDS for MySQL non supporta la migrazione all'indietro né per le versioni principali né per le versioni secondarie. Ad esempio, non è possibile migrare da MySQL versione 8.0 a RDS for MySQL 5.7 e non è possibile migrare da MySQL versione 8.0.32 a RDS per MySQL versione 8.0.26.
-
Amazon RDS non supporta l'importazione sulla classe di istanze DB db.t2.micro da Amazon S3. Tuttavia, puoi eseguire il ripristino in una classe di istanza DB diversa e quindi modificare la classe di istanza DB in un secondo momento. 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.
-
Amazon RDS limita il numero di file caricati in un bucket Amazon S3 a 1 milione. 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.
-
Per fornire servizi di gestione per ogni istanza DB, Amazon RDS crea l'
rdsadmin
utente quando crea l'istanza DB. Poichérdsamin
è un utente riservato in Amazon RDS, si applicano le seguenti limitazioni:-
Amazon RDS non importa funzioni, procedure, viste, eventi e trigger con il
'rdsadmin'@'localhost'
definer. Per ulteriori informazioni, consultare Oggetti archiviati con 'rdsamin'@'localhost' come definitore e Privilegi dell'account utente master. -
Durante la creazione dell'istanza DB, Amazon RDS crea un utente master con i privilegi massimi supportati. Durante il ripristino da un backup, Amazon RDS rimuove automaticamente tutti i privilegi non supportati assegnati agli utenti in fase di importazione.
Per identificare gli utenti che potrebbero essere interessati da questo problema, consulta Account utente con privilegi non supportati. Per ulteriori informazioni sui privilegi supportati in RDS for MySQL, vedere. Modello di privilegi basato sui ruoli per for My RDS SQL
-
-
Amazon RDS non migra le tabelle create dall'utente nello schema.
mysql
-
È necessario configurare il
innodb_data_file_path
parametro con un solo file di dati che utilizza il nome di file di dati predefinito.ibdata1:12M:autoextend
È possibile migrare i database con due file di dati o con un file di dati con un nome diverso utilizzando questo metodo.Gli esempi seguenti sono nomi di file non consentiti da Amazon RDS:
-
innodb_data_file_path=ibdata1:50M
-
ibdata2:50M:autoextend
-
innodb_data_file_path=ibdata01:50M:autoextend
-
-
Non puoi eseguire la migrazione da un database di origine con tabelle definite all'esterno della directory dei dati MySQL predefinita.
-
La dimensione massima supportata per i backup non compressi che utilizzano questo metodo è limitata a 64 TiB. Per i backup compressi, questo limite è inferiore per tenere conto dei requisiti di spazio di decompressione. In questi casi, la dimensione massima di backup supportata è.
64 TiB - compressed backup size
Per informazioni sulla dimensione massima del database supportata da RDS for MySQL, vedere e. Storage SSD per scopi generici Storage SSD Provisioned IOPS
-
Amazon RDS non supporta l'importazione di MySQL e di altri componenti e plugin esterni.
-
Amazon RDS non ripristina tutto dal tuo database. Si consiglia di salvare lo schema e i valori del database per i seguenti elementi dal database di sistema MySQL di origine e quindi aggiungerli all'istanza DB RDS for MySQL ripristinata dopo la creazione:
-
Account utenti
-
Funzioni
-
Procedure archiviate
-
Informazioni fuso orario. Le informazioni sul fuso orario vengono caricate dal sistema operativo locale dell'istanza DB RDS for MySQL. Per ulteriori informazioni, consulta Fuso orario locale per le istanze My SQL DB.
-
Oggetti archiviati con 'rdsamin'@'localhost' come definitore
Amazon RDS non importa funzioni, procedure, viste, eventi e trigger con 'rdsadmin'@'localhost'
come definitore.
Puoi usare il seguente script SQL nel database MySQL di origine per elencare gli oggetti archiviati con il definire non supportato.
-- This SQL query lists routines with `rdsadmin`@`localhost` as the definer. SELECT ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.routines WHERE definer = 'rdsadmin@localhost'; -- This SQL query lists triggers with `rdsadmin`@`localhost` as the definer. SELECT TRIGGER_SCHEMA, TRIGGER_NAME, DEFINER FROM information_schema.triggers WHERE DEFINER = 'rdsadmin@localhost'; -- This SQL query lists events with `rdsadmin`@`localhost` as the definer. SELECT EVENT_SCHEMA, EVENT_NAME FROM information_schema.events WHERE DEFINER = 'rdsadmin@localhost'; -- This SQL query lists views with `rdsadmin`@`localhost` as the definer. SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.views WHERE DEFINER = 'rdsadmin@localhost';
Account utente con privilegi non supportati
Gli account utente con privilegi non supportati da RDS for MySQL vengono importati senza i privilegi non supportati. Per l'elenco dei privilegi supportati, consulta Modello di privilegi basato sui ruoli per for My RDS SQL.
Puoi eseguire la seguente query SQL sul database di origine per elencare gli account utente con privilegi non supportati.
SELECT user, host FROM mysql.user WHERE Shutdown_priv = 'y' OR File_priv = 'y' OR Super_priv = 'y' OR Create_tablespace_priv = 'y';