Restauration d'une sauvegarde dans une SQL instance de base de données Amazon RDS for My - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Restauration d'une sauvegarde dans une SQL instance de base de données Amazon RDS for My

Amazon RDS prend en charge l'importation de Mes SQL bases de données à l'aide de fichiers de sauvegarde. Vous pouvez créer une sauvegarde de votre base de données, la stocker sur Amazon S3, puis restaurer le fichier de sauvegarde sur une nouvelle instance Amazon RDS DB exécutant MySQL.

Le scénario décrit dans cette section restaure une sauvegarde d'une base de données sur site. Vous pouvez utiliser cette technique pour des bases de données situées sur d'autres sites, tels qu'Amazon EC2 ou des services non AWS cloud, à condition que la base de données soit accessible.

Le scénario pris en charge est présenté dans le schéma suivant.

Mon SQL importation de fichiers de sauvegarde depuis S3.

L'importation de fichiers de sauvegarde depuis Amazon S3 est prise en charge pour My SQL in all Régions AWS.

Nous vous recommandons d'importer votre base de données sur Amazon à RDS l'aide de fichiers de sauvegarde si votre base de données locale peut être hors ligne pendant la création, la copie et la restauration du fichier de sauvegarde. Si votre base de données ne peut pas être hors ligne, vous pouvez utiliser la réplication du journal binaire (binlog) pour mettre à jour votre base de données après avoir migré vers Amazon RDS via Amazon S3, comme expliqué dans cette rubrique. Pour de plus amples informations, veuillez consulter Configuration d'une réplication de position de fichier journal binaire avec une instance source externe. Vous pouvez également utiliser le AWS Database Migration Service pour migrer votre base de données vers AmazonRDS. Pour plus d'informations, voir Qu'est-ce que c'est AWS Database Migration Service ?

Présentation de la configuration pour importer des fichiers de sauvegarde d'Amazon S3 vers Amazon RDS

Voici les composants que vous devez configurer pour importer des fichiers de sauvegarde d'Amazon S3 vers Amazon RDS :

  • Un compartiment Amazon S3 pour stocker vos fichiers de sauvegarde.

  • Une sauvegarde de votre base de données sur site créée par XtraBackup Percona.

  • Un rôle AWS Identity and Access Management (IAM) permettant à Amazon RDS d'accéder au compartiment.

Si vous avez déjà un compartiment Amazon S3, vous pouvez l'utiliser. Si vous n'avez pas de compartiment Amazon S3, vous pouvez en créer un nouveau. Si vous souhaitez créer un compartiment, veuillez consulter Créer un compartiment.

Utilisez l' XtraBackup outil Percona pour créer votre sauvegarde. Pour de plus amples informations, veuillez consulter Création de la sauvegarde de votre base de données.

Si vous avez déjà un IAM rôle, vous pouvez l'utiliser. Si vous n'avez pas de IAM rôle, vous pouvez en créer un nouveau manuellement. Vous pouvez également choisir de faire créer un nouveau IAM rôle dans votre compte par l'assistant lorsque vous restaurez la base de données à l'aide du AWS Management Console. Si vous souhaitez créer un nouveau IAM rôle manuellement ou associer des politiques de confiance et d'autorisation à un IAM rôle existant, consultezCréation manuelle d'un rôle IAM. Si vous souhaitez créer un nouveau IAM rôle pour vous, suivez la procédure décrite dansConsole.

Création de la sauvegarde de votre base de données

Utilisez le XtraBackup logiciel Percona pour créer votre sauvegarde. Nous vous recommandons d'utiliser la dernière version de Percona XtraBackup. Vous pouvez installer Percona XtraBackup depuis Download XtraBackup Percona.

Avertissement

Lors de la création d'une sauvegarde de base de données, XtraBackup vous pouvez enregistrer les informations d'identification dans le fichier xtrabackup_info. Assurez-vous d'examiner ce fichier de manière à ce que le paramètre tool_command qu'il comporte ne contient aucune information sensible.

Note

Pour la migration vers My SQL 8.0, vous devez utiliser Percona XtraBackup 8.0. Les versions XtraBackup 8.0.12 et supérieures de Percona prennent en charge la migration de toutes les versions de My. SQL Si vous migrez vers My SQL 8.0.20 ou RDS une version ultérieure, vous devez utiliser Percona XtraBackup 8.0.12 ou une version ultérieure.

Pour les migrations vers My SQL 5.7, vous pouvez également utiliser Percona XtraBackup 2.4. Pour les migrations de SQL versions antérieures de My, vous pouvez également utiliser Percona XtraBackup 2.3 ou 2.4.

Vous pouvez créer une sauvegarde complète de vos fichiers Ma SQL base de données à l'aide de Percona XtraBackup. Sinon, si vous utilisez déjà Percona XtraBackup pour sauvegarder vos fichiers de base de SQL données My database, vous pouvez télécharger vos répertoires et fichiers de sauvegarde complets et incrémentiels existants.

Pour plus d'informations sur la sauvegarde de votre base de données avec Percona XtraBackup, consultez Percona XtraBackup - documentation et The xtrabackup binary sur le site Web de Percona.

Création d'une sauvegarde complète avec Percona XtraBackup

Pour créer une sauvegarde complète de vos fichiers My SQL database qui peuvent être restaurés depuis Amazon S3, utilisez l' XtraBackup utilitaire Percona (xtrabackup) pour sauvegarder votre base de données.

Par exemple, la commande suivante crée une sauvegarde d'une base de SQL données Ma base de données et stocke les fichiers dans le /on-premises/s3-restore/backup dossier.

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

Si vous souhaitez compresser votre sauvegarde en un seul fichier (qui peut être divisé ultérieurement, si nécessaire), vous pouvez enregistrer votre sauvegarde dans l'un des formats suivants :

  • Gzip (.gz)

  • tar (.tar)

  • Percona xbstream (.xbstream)

Note

Percona XtraBackup 8.0 prend uniquement en charge Percona xbstream pour la compression.

La commande suivante crée une sauvegarde de votre base de SQL données My Database divisée en plusieurs fichiers 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

La commande suivante crée une sauvegarde de votre base de SQL données My database divisée en plusieurs fichiers 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

La commande suivante crée une sauvegarde de votre base de SQL données My Database divisée en plusieurs fichiers 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
Note

Si vous obtenez l'erreur suivante, cela indique peut-être que vous avez mélangé des formats de fichiers dans votre commande :

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

Utilisation de sauvegardes incrémentielles avec Percona XtraBackup

Si vous utilisez déjà Percona XtraBackup pour effectuer des sauvegardes complètes et incrémentielles de vos fichiers Ma SQL base de données, vous n'avez pas besoin de créer une sauvegarde complète et de télécharger les fichiers de sauvegarde sur Amazon S3. Au lieu de cela, vous pouvez économiser beaucoup de temps en copiant vos fichiers et répertoires de sauvegarde existants dans votre compartiment Amazon S3. Pour plus d'informations sur la création de sauvegardes incrémentielles à l'aide de Percona XtraBackup, consultez la section Sauvegarde incrémentielle.

Lorsque vous copiez les fichiers existants des sauvegardes complètes et incrémentielles dans un compartiment Amazon S3, vous devez copier de façon récursive le contenu du répertoire de base. Ce contenu inclut la sauvegarde complète, ainsi que tous les fichiers et répertoires des sauvegardes incrémentielles. Cette copie doit conserver la structure de répertoire du compartiment Amazon S3. Amazon RDS parcourt tous les fichiers et répertoires. Amazon RDS utilise le xtrabackup-checkpoints fichier inclus dans chaque sauvegarde incrémentielle pour identifier le répertoire de base et pour commander les sauvegardes incrémentielles par plage de numéros de séquence de journal (LSN).

Considérations relatives à la sauvegarde pour Percona XtraBackup

Amazon RDS consomme vos fichiers de sauvegarde en fonction du nom du fichier. Nommez vos fichiers de sauvegarde avec l'extension de fichier appropriée basée sur le format de fichier—par exemple, .xbstream pour les fichiers stockés en utilisant le format de xbstream Percona.

Amazon RDS utilise vos fichiers de sauvegarde par ordre alphabétique et également par ordre naturel. Utilisez l'option split lorsque vous émettez la commande xtrabackup pour vous assurer que vos fichiers de sauvegarde sont écrits et nommés dans l'ordre approprié.

Amazon RDS ne prend pas en charge les sauvegardes partielles créées à l'aide de Percona XtraBackup. Vous ne pouvez pas utiliser les options suivantes pour créer une sauvegarde partielle lorsque vous sauvegardez les fichiers source pour votre base de données : --tables, --tables-exclude, --tables-file, --databases, --databases-exclude ou --databases-file.

Amazon RDS prend en charge les sauvegardes incrémentielles créées à l'aide de Percona XtraBackup. Pour plus d'informations sur la création de sauvegardes incrémentielles à l'aide de Percona XtraBackup, consultez la section Sauvegarde incrémentielle.

Création manuelle d'un rôle IAM

Si vous n'avez pas de IAM rôle, vous pouvez en créer un nouveau manuellement. Toutefois, si vous restaurez la base de données à l'aide du AWS Management Console, nous vous recommandons de suivre la procédure Console décrite dans et de choisir de RDS créer ce nouveau IAM rôle pour vous.

Pour créer manuellement un nouveau IAM rôle pour importer votre base de données depuis Amazon S3, créez un rôle pour déléguer les autorisations d'Amazon RDS à votre compartiment Amazon S3. Lorsque vous créez un IAM rôle, vous y associez des politiques de confiance et d'autorisation. Pour importer vos fichiers de sauvegarde depuis Amazon S3, utilisez des politiques de confiance et d'autorisation similaires aux exemples suivants. Pour plus d'informations sur la création du rôle, voir Création d'un rôle pour déléguer des autorisations à un AWS service.

Les politiques de confiance et d'autorisation exigent que vous fournissiez un nom de ressource Amazon (ARN). Pour plus d'informations sur le ARN formatage, consultez Amazon Resource Names (ARNs) et espaces AWS de noms de services.

Exemple politique de confiance pour l'importation depuis Amazon S3
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole" }] }
Exemple politique d'autorisations pour l'importation depuis Amazon S3 — autorisations IAM utilisateur

Dans l'exemple suivant, remplacez iam_user_id avec votre propre valeur.

{ "Version":"2012-10-17", "Statement": [ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::iam_user_id:role/S3Access" } ] }
Exemple politique d'autorisations pour l'importation depuis Amazon S3 — autorisations de rôle

Dans l'exemple suivant, remplacez amzn-s3-demo-bucket and prefix avec vos propres valeurs.

{ "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*" ] } ] }
Note

Si vous incluez un préfixe de nom de fichier, vous devez inclure un astérisque (*) après le préfixe. Si vous ne voulez pas spécifier un préfixe, indiquez uniquement un astérisque.

Importation de données depuis Amazon S3 vers une nouvelle instance My SQL DB

Vous pouvez importer des données depuis Amazon S3 vers une nouvelle instance My SQL DB à l'aide du AWS Management Console AWS CLI, ou RDSAPI.

Pour importer des données depuis Amazon S3 vers une nouvelle instance My SQL DB
  1. Connectez-vous à la RDS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le coin supérieur droit de la RDS console Amazon, choisissez l'instance Région AWS dans laquelle vous souhaitez créer votre instance de base de données. Choisissez le même Région AWS que le compartiment Amazon S3 qui contient la sauvegarde de votre base de données.

  3. Dans le panneau de navigation, choisissez Databases (Bases de données).

  4. Choisissez Restaurer à partir de S3.

    La page Créer une base de données par restauration à partir de S3 s'affiche.

    La page Créer une base de données par restauration à partir de S3 où vous spécifiez les détails de la restauration d'une instance de base de données à partir de S3.
  5. Sous Destination S3 :

    1. Choisissez le compartiment S3 qui contient la sauvegarde.

    2. (Facultatif) Pour le préfixe S3, entrez le préfixe du chemin de fichier pour les fichiers stockés dans votre compartiment Amazon S3.

      Si vous ne spécifiez aucun préfixe, RDS créez votre instance de base de données en utilisant tous les fichiers et dossiers du dossier racine du compartiment S3. Si vous spécifiez un préfixe, RDS créez votre instance de base de données à l'aide des fichiers et des dossiers du compartiment S3 où le chemin du fichier commence par le préfixe spécifié.

      Par exemple, supposons que vous stockez vos fichiers de sauvegarde sur S3 dans un sous-dossier appelé « sauvegardes » et que vous avez plusieurs ensembles de fichiers de sauvegarde, chacun dans son propre répertoire (gzip_backup1, gzip_backup2, etc.). Dans ce cas, vous devez spécifier un préfixe sauvegardes/gzip_backup1 pour restaurer les fichiers dans le dossier gzip_backup1.

  6. Sous Options du moteur :

    1. Pour Type de moteur, choisissez Mon SQL.

    2. Pour la version du moteur source, sélectionnez Ma version SQL principale de votre base de données source.

    3. Pour la version du moteur, choisissez la version mineure par défaut de votre version SQL principale dans votre Région AWS.

      Dans le AWS Management Console, seule la version mineure par défaut est disponible. Vous pouvez mettre à niveau votre instance DB après l'importation.

  7. Pour IAMle rôle, créez ou choisissez un IAM rôle avec la politique de confiance et la politique d'autorisation requises qui permettent RDS à Amazon d'accéder à votre compartiment Amazon S3. Effectuez l'une des opérations suivantes :

    • (Recommandé) Choisissez Créer un nouveau rôle, puis entrez le nom du IAM rôle. Avec cette option, crée RDS automatiquement le rôle avec la politique de confiance et la politique d'autorisation pour vous.

    • Choisissez un IAM rôle existant. Assurez-vous que ce rôle répond à tous les critères deCréation manuelle d'un rôle IAM.

  8. Spécifiez les informations de votre instance de base de données. Pour plus d'informations sur chaque paramètre, consultez Paramètres des instances de base de données.

    Note

    Veillez à allouer suffisamment de mémoire à votre nouvelle instance de base de données afin que l'opération de restauration aboutisse.

    Vous pouvez également choisir Activer la scalabilité automatique du stockage pour faciliter une croissance automatique ultérieure.

  9. Choisissez des paramètres supplémentaires selon vos besoins.

  10. Choisissez Create database (Créer une base de données).

Pour importer des données d'Amazon S3 vers une nouvelle instance My SQL DB à l'aide de AWS CLI, appelez la commande restore-db-instance-from-s3 avec les paramètres suivants. Pour plus d'informations sur chaque paramètre, consultez Paramètres des instances de base de données.

Note

Veillez à allouer suffisamment de mémoire à votre nouvelle instance de base de données afin que l'opération de restauration aboutisse.

Vous pouvez également utiliser le paramètre --max-allocated-storage pour activer la scalabilité automatique du stockage et faciliter une croissance automatique ultérieure.

  • --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

Exemple

Dans Linux, macOS, ou 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

Dans 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

Pour importer des données d'Amazon S3 vers une nouvelle instance My SQL DB à l'aide d'Amazon RDSAPI, appelez l'opération R estoreDBInstance FromS3.

Limitations et recommandations relatives à l'importation de fichiers de sauvegarde d'Amazon S3 vers Amazon RDS

Voici des limitations et recommandations pour l'importation de fichiers de sauvegarde depuis Amazon S3 :

  • Vous pouvez uniquement importer vos données vers une nouvelle instance de base de données, pas une instance de base de données existante.

  • Vous devez utiliser Percona XtraBackup pour créer la sauvegarde de votre base de données sur site.

  • Vous ne pouvez pas importer les données d'une exportation d'instantanés de la base de données vers Amazon S3.

  • Vous ne pouvez pas effectuer de migration depuis une base de données source dont les tables sont définies en dehors du répertoire Mes SQL données par défaut.

  • Vous devez importer vos données dans la version mineure par défaut de votre version Ma version SQL majeure dans votre Région AWS. Par exemple, si votre version principale est My SQL 8.0 et que la version mineure par défaut Région AWS est 8.0.35, vous devez importer vos données dans une instance de base de données My SQL version 8.0.35. Vous pouvez mettre à niveau votre instance DB après l'importation. Pour plus d'informations sur la détermination de la version secondaire par défaut, reportez-vous à la section Mes RDS versions SQL sur Amazon.

  • La rétromigration n'est pas prise en charge à la fois pour les versions principales et pour les versions mineures. Par exemple, il n'est pas possible de migrer de la version 8.0 vers la version 5.7. De même, il n'est pas possible de migrer de la version 8.0.32 vers la version 8.0.31.

  • Vous ne pouvez pas importer de base de données My SQL 5.5 ou 5.6.

  • Il n'est pas possible d'importer une base de données Ma SQL base de données locale d'une version majeure à une autre. Par exemple, vous ne pouvez pas importer une base de données My SQL 5.7 vers une base RDS de données My SQL 8.0. Vous pouvez mettre à niveau votre instance de base de données après l'importation.

  • Vous ne pouvez pas effectuer de restauration à partir d'une base de données source chiffrée, mais vous pouvez effectuer une restauration sur une RDS instance de base de données Amazon cryptée.

  • Vous ne pouvez pas restaurer à partir d'une sauvegarde chiffrée dans le compartiment Amazon S3.

  • Vous ne pouvez pas effectuer de restauration à partir d'un compartiment Amazon S3 situé dans une instance différente Région AWS de celle de votre RDS instance de base de données Amazon.

  • L'importation à partir d'Amazon S3 n'est pas prise en charge sur la classe d'instance de base de données db.t2.micro. Toutefois, vous pouvez procéder à une restauration vers une autre classe d'instance de base de données, puis modifier la classe d'instance de base de données ultérieurement. Pour plus d'informations sur les classes d'instance , consultez Spécifications matérielles pour les classes d'instance de base de données .

  • Amazon S3 limite la taille d'un fichier chargé vers un compartiment Amazon S3 à 5 To. Si un fichier de sauvegarde dépasse 5 To, vous devez diviser celui-ci en plusieurs fichiers plus petits.

  • Lorsque vous restaurez la base de données, la sauvegarde est copiée, puis extraite sur votre instance de base de données. Par conséquent, allouez pour votre instance de base de données une quantité d'espace de stockage égale ou supérieure à la somme de la taille de sauvegarde, plus la taille de la base de données d'origine sur le disque.

  • Amazon RDS limite le nombre de fichiers chargés dans un compartiment Amazon S3 à 1 million. Si les données de sauvegarde de votre base de données, y compris toutes les sauvegardes complètes et incrémentielles, dépassent 1 million de fichiers, utilisez un fichier Gzip (.gz), tar (.tar.gz) ou Percona xbstream (.xbstream) pour stocker les fichiers des sauvegardes complètes et incrémentielles dans le compartiment Amazon S3. Percona XtraBackup 8.0 prend uniquement en charge Percona xbstream pour la compression.

  • Les comptes utilisateur ne sont pas importés automatiquement. Enregistrez vos comptes utilisateur depuis votre base de données source et ajoutez-les à votre nouvelle instance de base de données ultérieurement.

  • Les fonctions ne sont pas importées automatiquement. Enregistrez vos fonctions depuis votre base de données source et ajoutez-les à votre nouvelle instance de base de données ultérieurement.

  • Les procédures stockées ne sont pas importées automatiquement. Enregistrez vos procédures stockées depuis votre base de données source et ajoutez-les à votre nouvelle instance de base de données ultérieurement.

  • Les informations de format de fuseau horaire ne sont pas importées automatiquement. Enregistrez les informations de fuseau horaire depuis votre base de données source et ajoutez-les à votre nouvelle instance de base de données ultérieurement. Pour plus d'informations, consultez Fuseau horaire local pour les instances de bases de données MySQL.

  • Le paramètre innodb_data_file_path doit être configuré avec un seul fichier de données qui utilise le nom de fichier de données par défaut "ibdata1:12M:autoextend". Les bases de données comportant deux fichiers de données, ou avec un fichier de données portant un nom différent, ne peuvent pas faire l'objet d'une migration à l'aide de cette méthode.

    Voici des exemples de noms de fichier non autorisés : "innodb_data_file_path=ibdata1:50M; ibdata2:50M:autoextend" et "innodb_data_file_path=ibdata01:50M:autoextend".

  • La taille maximale de la base de données restaurée est la taille maximale de base de données prise en charge moins la taille de la sauvegarde. Ainsi, si la taille maximale de base de données prise en charge est de 64 TiO et que la taille de la sauvegarde est de 30 TiO, la taille maximale de la base de données restaurée est de 34 TiO, comme dans l'exemple suivant :

    64 TiB - 30 TiB = 34 TiB

    Pour plus d'informations sur la taille maximale de base de données prise en charge par Amazon RDS for MySQL, consultez SSDStockage à usage général etStockage provisionné IOPS SSD.