Quelle est la marche à suivre pour effectuer des sauvegardes natives d'une instance de base de données Amazon RDS exécutant SQL Server ?

Date de la dernière mise à jour : 27/06/2019

Je souhaite effectuer une sauvegarde native de mon instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute SQL Server. Je dois stocker le fichier de sauvegarde dans Amazon Simple Storage Service (Amazon S3) ou utiliser le fichier de sauvegarde afin de restaurer une instance de base de données RDS. Comment faire ?

Brève description

Amazon RDS prend en charge la sauvegarde native et la restauration pour les bases de données Microsoft SQL Server. Vous pouvez créer une sauvegarde complète de votre base de données sur site, stocker le fichier dans Amazon S3, puis restaurer le fichier de sauvegarde sur une instance de base de données Amazon RDS existante qui exécute SQL Server. Vous pouvez également restaurer ce fichier de sauvegarde sur un serveur sur site ou une autre instance de base de données Amazon RDS qui exécute SQL Server.

Résolution

Pour configurer une native de sauvegarde de la base de données SQL Server, utilisez les services suivants :

  • Un compartiment Amazon S3 pour stocker vos fichiers de sauvegarde
  • Un rôle AWS Identity and Access Management (IAM) pour accéder au compartiment
  • Ajout de l'option SQLSERVER_BACKUP_RESTORE à un groupe d'options sur l'instance de base de données

Remarque : créez le compartiment S3 dans la même région que votre instance de base de données RDS.

  1. Ouvrez la console Amazon RDS, puis sélectionnez Option Groups (Groupes d'options) dans le volet de navigation. Choisissez Créer un groupe, puis saisissez le nom, la description, le moteur et la version du moteur de votre serveur. Ensuite, choisissez Créer.
  2. Sélectionnez le groupe d'options que vous avez créé, puis choisissez Add Option (Ajouter une option). Choisissez « SQLSERVER_BACKUP_RESTORE ». Il est recommandé de créer un rôle IAM, puis de choisir Add Option (Ajouter une option), de sorte que votre rôle IAM dispose des privilèges requis. Choisissez votre compartiment S3, ou créez-en un. Sélectionnez ensuite Apply Immediately (Appliquer immédiatement), puis Add Option (Ajouter une option).
  3. Associez le groupe d'options à l'instance de base de données en choisissant Bases de données dans le volet de navigation, puis choisissez l'instance à sauvegarder. Sélectionnez Actions, puis Modifier.
  4. Sous Database Options (Options de base de données), choisissez le groupe d'options que vous avez créé, puis Apply Immediately (Appliquer Immédiatement) et Continuer. Passez en revue les informations, puis Modify DB Instance (Modifier l'instance de base de données). La modification de ce groupe d'options n'entraîne aucun temps d'arrêt, car le redémarrage de l'instance n'est pas obligatoire.
  5. Lorsque le statut passe de modification à disponible, connectez-vous à l'instance de base de données via SQL Server Management Studio, puis choisissez New Query (Nouvelle requête). Entrez l'une des instructions SQL suivantes pour lancer la sauvegarde de la base de données souhaitée :

Lancer une sauvegarde pour des bases de données non chiffrées

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;

Lancer une sauvegarde pour des bases de données chiffrées

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', @kms_master_key_arn='arn:aws:kms:region:
account-id:key/key-id', 
@overwrite_S3_backup_file=1;

Remarque : remplacez les paramètres database_name, bucket_name, file_name_and_extension, région, account-id et key-id répertoriés dans ces exemples afin qu'ils correspondent à votre scénario. Vous pouvez utiliser le fichier de sauvegarde, généré dans le compartiment S3, pour restaurer une nouvelle instance de base de données RDS. Lorsque la procédure stockée rds_backup_database ou rds_restore_database est appelée, la tâche démarre et génère les informations sur la tâche.

Lorsque l'état du cycle de vie de la tâche est SUCCESS (Opération réussie), la tâche est terminée. Ensuite, vous pouvez ouvrir la console Amazon S3, choisir le compartiment dans lequel vous avez créé la sauvegarde, puis afficher le fichier de sauvegarde. Vous pouvez télécharger ce fichier ou utiliser le fichier pour restaurer une nouvelle instance de base de données RDS.

Utilisez l'une des instructions SQL suivantes pour effectuer une restauration à partir du fichier de sauvegarde disponible dans le compartiment S3 :

Restaurer des bases de données non chiffrées

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

Restaurer des bases de données chiffrées

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', 
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'; 

Vous pouvez obtenir l'ID de tâche après avoir exécuté la sauvegarde ou restauré l'instruction. Vous pouvez utiliser le script suivant pour identifier toutes les tâches terminées et en attente pour une base de données particulière :

exec msdb.dbo.rds_task_status @db_name='database_name'

Pour suivre le statut de la tâche, utilisez l'instruction SQL suivante :

exec msdb..rds_task_status @task_id= 5

Pour obtenir une liste d'erreurs et de solutions potentielles, reportez-vous à Migrating Microsoft SQL Server Enterprise Workloads to Amazon RDS (Migration de charges de travail Microsoft SQL Server Enterprise vers Amazon RDS).