Comment puis-je migrer des bases de données depuis des instances EC2 ou des machines virtuelles locales vers RDS for SQL Server ?

Lecture de 6 minute(s)
0

Je souhaite migrer des bases de données depuis une instance Amazon Elastic Compute Cloud (Amazon EC2) ou une instance Microsoft SQL Server sur site vers mon instance Amazon Relational Database Service (Amazon RDS) pour Microsoft SQL Server. Quelles sont les options disponibles pour la migration des données ?

Solution

Méthodes de migration des données

Sauvegarde et restauration natives de SQL Server

Vous pouvez migrer la base de données SQL Server d'une instance locale ou EC2 vers une instance Amazon RDS pour SQL Server à l'aide d'une sauvegarde et d'une restauration natives.

1.    Créez un compartiment Amazon Simple Storage Service (Amazon S3) pour stocker la sauvegarde depuis l'instance source. Le compartiment S3 doit se trouver dans la même région que l’instance RDS.

2.    Créer un rôle AWS Identity and Access Management (IAM) pour accéder au compartiment.

3.    Ajoutez l'option SQLSERVER_BACKUP_RESTORE au groupe d'options associé à l'instance RDS pour SQL Server.

4.    Créez une sauvegarde à partir de l'instance source (locale ou EC2), puis copiez-la dans le compartiment S3 que vous avez créé à l'étape 1.

5.    Exécutez le script suivant pour restaurer la sauvegarde sur l'instance RDS pour SQL Server :

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name file_name_and_extension';

6.    Exécutez le script suivant pour sauvegarder la base de données de l'instance RDS sur S3 :

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

Remarque : Vous pouvez également sauvegarder et restaurer des sauvegardes différentielles.

AWS Database Migration Service (AWS DMS)

1.    Vérifiez les prérequis et les limites liés à l'utilisation de SQL Server comme source ou cible pour AWS DMS :

2.    Créer une instance de réplication DMS.

3.    Créer des points de terminaison source et cible à l’aide de DMS.

4.    Créer une tâche de migration.

Réplication transactionnelle

Vous pouvez configurer la réplication transactionnelle à partir d'instances SQL Server locales ou EC2 vers une instance RDS pour SQL Server. L'instance RDS pour SQL Server ne peut être créée qu'en tant qu'abonné avec un abonnement push depuis l'instance locale ou l'instance EC2 SQL Server en tant que Publisher-Distributor.

Pour obtenir des instructions détaillées sur la configuration de la réplication des transactions à partir d'une instance SQL Server locale ou EC2, consultez les rubriques suivantes :

Fichier du package de sauvegarde (.bacpac)

Le fichier .bacpac comprend les métadonnées copiées et les données compressées dans un fichier. Cette approche est la meilleure solution pour les bases de données d'environ 200 Go.

Vous pouvez créer un fichier .bacpac à l'aide d'Export/Import ou de l'utilitaire SQLPackage.exe (ligne de commande).

Pour plus d'informations sur le fichier .bacpac, voir Migrer une base de données SQL Server d'une base de données Azure SQL vers Amazon RDS pour SQL Server à l'aide de la méthode .bacpac.

Méthodes d'importation de données

Assistant de génération et de publication de scripts

Si votre base de données est inférieure à 1 Go, vous pouvez utiliser l'assistant de génération et de publication de scripts. Pour les bases de données plus volumineuses, vous pouvez écrire le schéma de la base de données à l'aide de l'assistant d'importation et d'exportation ou des méthodes de copie.

Pour plus d'informations sur l'assistant de génération et de publication de scripts, consultez Comment : générer un script (SQL Server Management Studio) dans la documentation Microsoft SQL Server.

Remarque : Assurez-vous de sélectionner Enregistrer les scripts dans un emplacement spécifique, Avancé sur la page Définir les options de script. Le paramètre Avancé fournit des options supplémentaires pour inclure ou exclure un objet dans le tableau lors de l'importation et de l'exportation.

Assistant d’importation et exportation

L'assistant d'importation et d'exportation crée un package d'intégration. Le package d'intégration est utilisé pour copier les données de votre base de données SQL Server locale ou EC2 vers l'instance RDS for SQL Server. Vous pouvez filtrer les tables spécifiques que vous souhaitez copier vers l'instance RDS.

Pour plus de détails sur l'assistant d'importation et d'exportation, consultez Comment : exécuter l'assistant d'importation et d'exportation de SQL Server dans la documentation Microsoft SQL Server.

Remarque : Lorsque vous exécutez l'assistant d'importation et d'exportation, assurez-vous de choisir les options suivantes pour l'instance Destination RDS for SQL Server :

  • Pour Nom du serveur, entrez le nom du point de terminaison de l'instance de base de données RDS.
  • Pour le mode Authentification, sélectionnez Authentification SQL Server.
  • Pour le nom d'utilisateur et le mot de passe, entrez l'utilisateur principal que vous avez créé dans l'instance RDS.

utilitaire Bulk Copy Program

Le Bulk Copy Program (bcp) est un utilitaire de ligne de commande utilisé pour copier des données en bloc entre des instances de SQL Server. Vous pouvez utiliser l'utilitaire bcp pour importer de grands ensembles de données vers une instance de SQL Server ou les exporter vers un fichier.

Voici des exemples de commandes IN et OUT :

OUT : Utilisez cette commande pour exporter ou transférer les enregistrements d'une table dans un fichier :

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

Le code précédent inclut les options suivantes :

  • -n : indique que la copie en bloc utilise les types de données natifs des données à copier.
  • -S : spécifie l'instance SQL Server à laquelle l'utilitaire bcp se connecte.
  • -U : indique le nom d'utilisateur du compte pour se connecter à l'instance SQL Server.
  • -P : indique le mot de passe de l'utilisateur spécifié par -U.
  • -b : indique le nombre de lignes par lot de données importées.

IN : Utilisez cette commande pour importer tous les enregistrements du fichier de sauvegarde vers la table existante. La table doit être créée avant d'exécuter la commande bcp.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

Pour plus d'informations, consultez l'utilitaire bcp dans la documentation de Microsoft SQL Server.