Migration d'un instantané RDS pour MySQL vers Aurora - Amazon Aurora

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.

Migration d'un instantané RDS pour MySQL vers Aurora

Vous pouvez migrer un instantané de bases de données d'une instance de base de données RDS pour MySQL pour créer un cluster de base de données Aurora MySQL. Le nouveau cluster de bases de données Aurora MySQL est rempli avec les données de l'instance de base de données RDS pour MySQL initiale. L'instantané de base de données doit avoir été effectué à partir d'une instance de base de données Amazon RDS exécutant une version MySQL compatible avec Aurora MySQL.

Vous pouvez migrer un instantané de base de données manuel ou automatique. Après que le cluster DB a été créé, vous pouvez créer des réplicas Aurora facultatifs.

Note

Vous pouvez également migrer une instance de base de données RDS pour MySQL vers un cluster de base de données Aurora MySQL en créant un réplica en lecture Aurora de votre instance de base de données RDS pour MySQL source. Pour plus d'informations, consultez Migration de données d'une instance RDS for My SQL DB vers un cluster Amazon Aurora My SQL DB à l'aide d'une réplique de lecture Aurora.

Vous ne pouvez pas migrer de certaines anciennes versions de MySQL 8.0, notamment des versions 8.0.11, 8.0.13 et 8.0.15, vers Aurora MySQL 3.05 et versions ultérieures. Nous vous recommandons de passer à MySQL version 8.0.28 avant de procéder à la migration.

Les étapes générales à suivre sont les suivantes :

  1. Déterminez la quantité d'espace à allouer à votre cluster de base de données Aurora MySQL. Pour plus d'informations, consultez De quel espace ai-je besoin ?

  2. Utilisez la console pour créer l'instantané dans la région AWS où l'instance Amazon RDS MySQL se trouve. Pour plus d'informations sur la création d'un instantané de base de données, consultez Création d'un instantané de base de données.

  3. Si l'instantané de bases de données ne se trouve pas dans la même région AWS que votre cluster de base de données, utilisez la console Amazon RDS pour copier l'instantané de base de données dans cette région AWS. Pour plus d'informations sur la copie d'un instantané de base de données, consultez Copie d'un instantané.

  4. Utilisez la console pour migrer l'instantané de bases de données et créer un cluster de base de données Aurora MySQL avec les mêmes bases de données que l'instance de base de données MySQL initiale.

Avertissement

Amazon RDS limite chaque compte AWS à une copie d'instantané à la fois dans chaque région AWS.

De quel espace ai-je besoin ?

Lorsque vous migrez un instantané d'une instance de base de données MySQL vers un cluster de base de données Aurora MySQL, Aurora utilise un volume Amazon Elastic Block Store (Amazon EBS) pour mettre en forme les données de l'instantané avant de les migrer. Dans certains cas, un espace supplémentaire est nécessaire pour mettre en forme les données de la migration.

Les tables autres que les tables MyISAM et qui ne sont pas compressées peuvent atteindre jusqu'à 16 To. Si vous avez des tables MyISAM, Aurora doit utiliser un espace supplémentaire du volume pour rendre ces tables compatibles avec Aurora MySQL. Si vous avez compressé les tables, Aurora doit utiliser un espace supplémentaire du volume pour développer ces tables avant de les stocker sur le volume de cluster Aurora. En raison de cette exigence d'espace supplémentaire, vous devez vous assurer qu'aucune des tables MyISAM et compressées, migrées depuis votre instance de base de données MySQL, ne dépasse 8 To en taille.

Réduction de la quantité d'espace requise pour migrer les données vers Amazon Aurora MySQL

Il se peut que vous souhaitiez modifier votre schéma de base de données avant la migration vers Amazon Aurora. Cette modification peut être utile dans les cas suivants :

  • Vous voulez accélérer le processus de migration.

  • Vous avez un doute quant à la quantité d'espace que vous devez allouer.

  • Vous avez tenté de migrer vos données et la migration a échoué en raison d'un manque d'espace alloué.

Vous pouvez effectuer les modifications suivantes pour améliorer le processus de migration d'une base de données vers Amazon Aurora.

Important

Veillez à effectuer ces mises à jour sur une nouvelle instance de base de données restaurée à partir d'un instantané d'une base de données de production, plutôt que sur une instance de production. Vous pouvez ensuite migrer les données depuis l'instantané de votre nouvelle instance de base de données vers votre cluster de base de données Aurora pour éviter toute interruption de service sur votre base de données de production.

Type de table Limitation ou instruction

Tables MyISAM

Aurora MySQL prend uniquement en charge les tables InnoDB. Si vous avez des tables MyISAM dans votre base de données, elles doivent être converties avant d'être migrées vers Aurora MySQL. Le processus de conversion nécessite un espace supplémentaire pour la conversion de MyISAM en InnoDB pendant la procédure de migration.

Pour réduire le risque d'un espace insuffisant ou pour accélérer le processus de migration, convertissez toutes vos tables MyISAM en tables InnoDB avant de les migrer. La taille de la table InnoDB obtenue est équivalente à celle requise par Aurora MySQL pour cette table. Pour convertir une table MyISAM en InnoDB, exécutez la commande suivante :

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

Tables compressées

Aurora MySQL ne prend pas en charge les tables compressées (c'est-à-dire les tables créées avec ROW_FORMAT=COMPRESSED).

Pour réduire le risque d'un espace insuffisant ou pour accélérer le processus de migration, développez vos tables compressées en définissant ROW_FORMAT sur DEFAULT, COMPACT, DYNAMIC ou REDUNDANT. Pour plus d'informations, consultez Formats de ligne InnoDB dans la documentation sur MySQL.

Vous pouvez utiliser le script SQL suivant sur votre instance de base de données MySQL existante pour afficher les tables de votre base de données qui sont des tables MyISAM ou des tables compressées.

-- 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' );

Le script produit un résultat similaire à celui de l'exemple suivant. L'exemple suivant propose deux tables qui doivent être converties de MyISAM en InnoDB. Le résultat inclut aussi la taille approximative de chaque table en mégaoctets (Mo).

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

Migration d'un instantané de base de données RDS for MySQL vers un cluster de base de données Aurora MySQL

Vous pouvez migrer un instantané de base de données d'une instance de base de données RDS for MySQL afin de créer un cluster de base de données Aurora MySQL à l'aide d'AWS Management Console ou d'AWS CLI. Le nouveau cluster de bases de données Aurora MySQL est rempli avec les données de l'instance de base de données RDS pour MySQL initiale. Pour plus d'informations sur la création d'un instantané de base de données, consultez Création d'un instantané de base de données.

Si l'instantané de bases de données ne se trouve pas dans la région AWS où vous voulez que vos données résident, copiez-le dans cette région AWS. Pour plus d'informations sur la copie d'un instantané de base de données, consultez Copie d'un instantané.

Lorsque vous migrez l'instantané de bases de données à l'aide de la AWS Management Console, celle-ci prend les actions nécessaires pour créer le cluster de base de données et l'instance principale.

Vous pouvez aussi choisir que votre nouveau cluster de base de données Aurora MySQL soit chiffré au repos à l'aide d'une AWS KMS key.

Pour migrer un instantané de base de données MySQL à l'aide de la AWS Management Console
  1. Connectez-vous à l'AWS Management Console et ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Commencez la migration à partir de l'instance de base de données MySQL ou de l'instantané :

    Pour lancer la migration à partir de l'instance de base de données :

    1. Dans le panneau de navigation, choisissez Bases de données, puis sélectionnez l'instance de bases de données MySQL.

    2. Pour Actions, choisissez Migrer l'instantané le plus récent.

    Pour lancer la migration à partir de l'instantané :

    1. Choisissez Instantanés.

    2. Sur la page Instantanés, choisissez l'instantané que vous voulez migrer vers un cluster de base de données Aurora MySQL.

    3. Choisissez Actions d'instantané, puis Migrer l'instantané.

    La page Migrer la base de données apparaît.

  3. Définissez les valeurs suivantes dans la page Migrer la base de données :

    • Migrate to DB Engine : sélectionnez aurora.

    • Version du moteur de base de données : sélectionnez la version du moteur de base de données pour le cluster de base de données Aurora MySQL.

    • Classe d'instance de base de données : sélectionnez une classe d'instance de base de données qui possède le stockage et la capacité requis pour votre base de données. Par exemple, db.r3.large. Les volumes de cluster Aurora croissent automatiquement au fur et à mesure que la quantité de données de votre base de données augmente. Un volume de cluster Aurora peut croître jusqu'à la taille maximale de 128 téraoctets (Tio). Par conséquent, vous devez uniquement sélectionner une classe d'instance de base de données qui correspond à vos besoins de stockage actifs. Pour plus d'informations, consultez Présentation du stockage Amazon Aurora.

    • DB Instance Identifier (Identifiant de l'instance de base de données) : saisissez un nom pour le cluster de base de données, unique pour votre compte dans la région AWS sélectionnée. Cet identifiant est utilisé dans les adresses de point de terminaison des instances de votre cluster DB. Vous pouvez choisir de complexifier le nom, par exemple en incluant la région AWS et le moteur de base de données que vous avez sélectionnés : par exemple, aurora-cluster1.

      L'identifiant d'instance de base de données obéit aux contraintes suivantes :

      • Il doit contenir entre 1 et 63 caractères alphanumériques ou traits d'union.

      • Son premier caractère doit être une lettre.

      • Il ne peut pas se terminer par un trait d'union ou contenir deux traits d'union consécutifs.

      • Doit être unique pour toutes les instances de base de données par compte AWS et par région AWS.

    • Virtual Private Cloud (VPC) : si vous disposez d'un VPC existant, vous pouvez l'utiliser avec votre cluster de base de données Aurora MySQL en sélectionnant l'identifiant de votre VPC, par exemple vpc-a464d1c1. Pour plus d'informations sur la création d'un VPC, consultez Tutoriel : créer un VPC à utiliser avec un(e) cluster de base de données (IPv4 uniquement).

      Sinon, vous pouvez choisir de demander à Aurora de créer un VPC pour vous en sélectionnant Créer un VPC.

    • Groupe de sous-réseaux de base de données : si vous disposez d'un groupe de sous-réseaux existant, vous pouvez l'utiliser avec votre cluster de base de données Aurora MySQL en sélectionnant l'identifiant de votre groupe de sous-réseaux, par exemple gs-subnet-group1.

      Sinon, vous pouvez choisir de demander à Aurora de créer un groupe de sous-réseaux pour vous en sélectionnant Create a new subnet group (Créer un groupe de sous-réseaux).

    • Accessible publiquement : sélectionnez Non pour spécifier que les instances de votre cluster de base de données ne sont accessibles que par les ressources situées à l'intérieur de votre VPC. Sélectionnez Oui pour spécifier que les instances de votre cluster de base de données sont accessibles par les ressources du réseau public. La valeur par défaut est Oui.

      Note

      Il n'est pas nécessaire que votre cluster de base de données de production se trouve dans un sous-réseau public, parce que seuls vos serveurs d'applications nécessitent l'accès à votre cluster de base de données. Si votre cluster de base de données n'a pas besoin d'être dans un sous-réseau public, définissez Accessible publiquement sur Non.

    • Zone de disponibilité : sélectionnez la zone de disponibilité devant héberger l'instance principale de votre cluster de base de données Aurora MySQL. Pour laisser Aurora choisir une zone de disponibilité à votre place, sélectionnez Aucune préférence.

    • Port de la base de données : saisissez le port par défaut à utiliser lors de la connexion aux instances du cluster de base de données Aurora MySQL. La valeur par défaut est 3306.

      Note

      Il se peut que vous soyez derrière un pare-feu d'entreprise qui n'autorise pas l'accès aux ports par défaut, tels que le port par défaut MySQL 3306. Dans ce cas, fournissez une valeur de port que votre pare-feu d'entreprise autorise. Souvenez-vous plus tard de cette valeur de port lorsque vous vous connecterez au cluster de base de données Aurora MySQL.

    • Chiffrement : choisissez Activer le chiffrement pour que votre nouveau cluster de base de données Aurora MySQL soit chiffré au repos. Si vous choisissez Activer le chiffrement, vous devez choisir une clé KMS comme valeur de AWS KMS key.

      Si votre instantané de base de données n'est pas chiffré, spécifiez une clé de chiffrement de manière à ce que votre cluster de base de données soit chiffré au repos.

      Si votre instantané de base de données est chiffré, spécifiez une clé de chiffrement de manière à ce que votre cluster de base de données soit chiffré au repos avec la clé de chiffrement spécifiée. Vous pouvez spécifier la clé de chiffrement utilisée par l'instantané de bases de données ou une clé différente. Vous ne pouvez pas créer de cluster de base de données non chiffré à partir d'un instantané de base de données chiffré.

    • Mise à niveau automatique des versions mineures : ce paramètre ne s'applique pas aux clusters de bases de données Aurora MySQL.

      Pour de plus amples informations sur les mises à jour de moteur pour Aurora MySQL, veuillez consulter Mises à jour du moteur de base de données pour Amazon Aurora My SQL.

  4. Choisissez Migrer pour migrer votre instantané de base de données.

  5. Sélectionnez Instances, puis choisissez l'icône en forme de flèche pour afficher les détails du cluster DB et surveiller la progression de la migration. Sur la page des détails, vous pouvez trouver le point de terminaison du cluster utilisé pour se connecter à l'instance principale du cluster de base de données. Pour plus d'informations sur la connexion à un cluster de base de données Aurora MySQL, consultez Connexion à un cluster de bases de données Amazon Aurora.

Vous pouvez créer un cluster de base de données Aurora à partir d'un instantané de bases de données d'une instance de base de données RDS pour MySQL par l'intermédiaire de la commande restore-db-cluster-from-snapshot avec les paramètres suivants :

  • --db-cluster-identifier : nom du cluster de base de données à créer.

  • --engine aurora-mysql – Pour un cluster de base de données compatible avec MySQL 5.7 ou 8.0.

  • --kms-key-id – La AWS KMS key avec laquelle chiffrer éventuellement le cluster de base de données, selon que votre instantané de base de données est chiffré ou non.

    • Si votre instantané de base de données n'est pas chiffré, spécifiez une clé de chiffrement de manière à ce que votre cluster de base de données soit chiffré au repos. Sinon, votre cluster de base de données ne sera pas chiffré.

    • Si votre instantané de base de données est chiffré, spécifiez une clé de chiffrement de manière à ce que votre cluster de base de données soit chiffré au repos avec la clé de chiffrement spécifiée. Sinon, votre cluster de base de données est chiffré au repos avec la clé de chiffrement de l'instantané de base de données.

      Note

      Vous ne pouvez pas créer de cluster de base de données non chiffré à partir d'un instantané de base de données chiffré.

  • --snapshot-identifier : l'Amazon Resource Name (ARN) de l'instantané de bases de données à migrer. Pour plus d'informations sur les ARN Amazon RDS, consultez Amazon Relational Database Service (Amazon RDS).

Lorsque vous migrez l'instantané de bases de données à l'aide de la commande RestoreDBClusterFromSnapshot, celle-ci crée le cluster de base de données et l'instance principale.

Dans cet exemple, vous créez un cluster de base de données compatible avec MySQL 5.7 nommé mydbcluster à partir d'un instantané de base de données avec un ARN défini sur mydbsnapshotARN.

Pour LinuxmacOS, ou Unix :

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

Dans Windows :

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

Dans cet exemple, vous créez un cluster de base de données compatible avec MySQL 5.7 nommé mydbcluster à partir d'un instantané de base de données avec un ARN défini sur mydbsnapshotARN.

Pour LinuxmacOS, ou Unix :

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

Dans Windows :

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