Importation et exportation de bases de données SQL du serveur à l'aide de la sauvegarde et de la restauration natives - 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.

Importation et exportation de bases de données SQL du serveur à l'aide de la sauvegarde et de la restauration natives

Amazon RDS prend en charge la sauvegarde et la restauration natives des bases de données Microsoft SQL Server à l'aide de fichiers de sauvegarde complets (fichiers .bak). Lorsque vous l'utilisezRDS, vous accédez aux fichiers stockés dans Amazon S3 plutôt que d'utiliser le système de fichiers local sur le serveur de base de données.

Par exemple, vous pouvez créer une sauvegarde complète à partir de votre serveur local, la stocker sur S3, puis la restaurer sur une instance Amazon RDS DB existante. Vous pouvez également effectuer des sauvegardesRDS, les stocker sur S3, puis les restaurer où vous le souhaitez.

La sauvegarde et la restauration natives sont disponibles dans toutes les AWS régions pour les instances de base de données mono-AZ et multi-AZ, y compris les instances de base de données multi-AZ avec des répliques de lecture. La sauvegarde et la restauration natives sont disponibles pour toutes les éditions de Microsoft SQL Server prises en charge sur AmazonRDS.

Le schéma suivant illustre les scénarios pris en charge.

Architecture de sauvegarde et restauration natives

L'utilisation de fichiers .bak natifs pour sauvegarder et restaurer des bases de données est généralement le moyen le plus rapide de sauvegarder et de restaurer des bases de données. Il existe de nombreux avantages supplémentaires à l'utilisation des sauvegarde et restauration natives. Par exemple, vous pouvez effectuer les opérations suivantes :

  • Migrez des bases de données vers ou depuis AmazonRDS.

  • Déplacez les bases de données entre RDS les instances SQL de base de données du serveur.

  • Migrer des données, des schémas, des procédures stockées, des déclencheurs et tout autre code de base de données dans des fichiers .bak.

  • Sauvegarder et restaurer des bases de données uniques, au lieu de la totalité d'instances de base de données.

  • Créer des copies de bases de données à des fins de développement, de test, de formation et de démonstration.

  • Stocker et transférer des fichiers de sauvegarde avec Amazon S3, pour offrir une couche de protection supplémentaire pour la reprise après sinistre.

  • Créez des sauvegardes natives des bases de données sur lesquelles le chiffrement transparent des données (TDE) est activé et restaurez ces sauvegardes dans des bases de données locales. Pour de plus amples informations, veuillez consulter Support pour le chiffrement transparent des données sur le SQL serveur.

  • Restaurez les sauvegardes natives des bases de données locales TDE activées RDS pour les instances de base de données SQL du serveur. Pour de plus amples informations, veuillez consulter Support pour le chiffrement transparent des données sur le SQL serveur.

Limitations et recommandations

Voici quelques limitations quant à l'utilisation des sauvegarde et restauration natives :

  • Vous ne pouvez pas effectuer de sauvegarde ou de restauration depuis un compartiment Amazon S3 situé dans une AWS région différente de celle de votre RDS instance de base de données Amazon.

  • Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante. Les noms de base de données sont uniques.

  • Nous vous recommandons vivement de ne pas restaurer de fichiers de sauvegarde d'un fuseau horaire dans un autre fuseau horaire. Si vous restaurez des sauvegardes d'un fuseau horaire dans un autre, vous devez auditer vos requêtes et vos applications afin de déterminer les effets du changement de fuseau horaire.

  • Amazon S3 a une limite de taille de 5 To par fichier. Pour les sauvegardes natives de bases de données plus volumineuses, vous pouvez utiliser la sauvegarde multifichier.

  • La taille maximale de base de données pouvant être sauvegardée sur S3 dépend de la mémoireCPU, des E/S et des ressources réseau disponibles sur l'instance de base de données. Plus la base de données est grande, plus l'agent de sauvegarde consomme de la mémoire. Nos tests montrent que vous pouvez effectuer une sauvegarde compressée d'une base de données de 16 To sur nos types d'instance de la nouvelle génération à partir de tailles d'instance 2xlarge et plus grandes, en disposant de ressources système suffisantes.

  • Vous ne pouvez pas effectuer une sauvegarde ou une restauration à partir de plus de 10 fichiers de sauvegarde simultanément.

  • Une sauvegarde différentielle est basée sur la dernière sauvegarde complète. Pour que les sauvegardes différentielles fonctionnent, vous ne pouvez prendre un instantané entre la dernière sauvegarde complète et la sauvegarde différentielle. Si vous souhaitez faire une sauvegarde différentielle, mais qu'il existe un instantané manuel ou automatique, créez une autre sauvegarde complète avant de créer la sauvegarde différentielle.

  • Les restaurations différentielles et de journaux ne sont pas prises en charge pour les bases de données possédant des fichiers dont l'identifiant unique file_guid est défini sur NULL.

  • Vous pouvez exécuter jusqu'à deux tâches de sauvegarde ou restauration simultanément.

  • Vous ne pouvez pas effectuer de sauvegardes de journaux natives depuis SQL Server sur AmazonRDS.

  • RDSprend en charge les restaurations natives de bases de données jusqu'à 16 To. Les restaurations natives de bases de données sur SQL Server Express Edition sont limitées à 10 Go.

  • Vous ne pouvez pas effectuer de sauvegarde native pendant la période de maintenance ou chaque fois RDS qu'Amazon prend un instantané de la base de données. Si une tâche de sauvegarde native chevauche la fenêtre de sauvegarde RDS quotidienne, la tâche de sauvegarde native est annulée.

  • Sur des instances de base de données multi-AZ, vous pouvez uniquement restaurer nativement des bases de données sauvegardées en utilisant le modèle de restauration « Full ».

  • La restauration à partir de sauvegardes différentielles sur instances multi-AZ n'est pas prise en charge.

  • L'appel RDS des procédures de sauvegarde et de restauration natives dans le cadre d'une transaction n'est pas pris en charge.

  • Utilisez un chiffrement symétrique AWS KMS key pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les KMS clés asymétriques. Pour plus d'informations, consultez la section Création de KMS clés de chiffrement symétriques dans le Guide du AWS Key Management Service développeur.

  • Les fichiers de sauvegarde natifs sont chiffrés avec la KMS clé spécifiée en utilisant le mode de chiffrement « Chiffrement uniquement ». Lorsque vous restaurez des fichiers de sauvegarde chiffrés, gardez à l'esprit qu'ils ont été chiffrés à l'aide du mode cryptographique « Chiffrement seul ».

  • Vous ne pouvez pas restaurer une base de données contenant un groupe de FILESTREAM fichiers.

Si votre base de données peut être hors ligne lors de la création, de la copie et de la restauration du fichier de sauvegarde, nous vous recommandons d'utiliser la sauvegarde et la restauration natives pour le migrer versRDS. Si votre base de données locale ne peut pas être hors ligne, nous vous recommandons d'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 ?

Les sauvegarde et restauration natives ne visent pas à remplacer les fonctionnalités de récupération des données de la fonction de copie d'instantané entre régions. Nous vous recommandons d'utiliser la copie instantanée pour copier l'instantané de votre base de données dans une autre AWS région afin de permettre la reprise après sinistre entre régions sur AmazonRDS. Pour de plus amples informations, veuillez consulter Copie d'un instantané de base de données.

Configuration pour les sauvegarde et restauration natives

Pour configurer la sauvegarde et la restauration natives, vous avez besoin de trois composants :

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

    Vous devez disposer d'un compartiment S3 à utiliser pour vos fichiers de sauvegarde, puis télécharger les sauvegardes vers lesquelles vous souhaitez migrerRDS. Si vous avez déjà un compartiment Amazon S3, vous pouvez l'utiliser. Si vous n'en avez pas, vous pouvez en créer un. Sinon, vous pouvez choisir d'avoir un compartiment créé pour vous quand vous ajoutez l'option SQLSERVER_BACKUP_RESTORE à l'aide de AWS Management Console.

    Pour obtenir des informations sur l'utilisation de S3, consultez le Guide de l'utilisateur Amazon Simple Storage Service

  2. Un rôle AWS Identity and Access Management (IAM) pour accéder au bucket.

    Si vous avez déjà un IAM rôle, vous pouvez l'utiliser. Vous pouvez choisir de créer un nouveau IAM rôle pour vous lorsque vous ajoutez l'SQLSERVER_BACKUP_RESTOREoption en utilisant le AWS Management Console. Vous pouvez également en créer un nouveau manuellement.

    Si vous souhaitez créer un nouveau IAM rôle manuellement, suivez l'approche décrite dans la section suivante. Procédez de même si vous souhaitez associer des relations de confiance et des politiques d'autorisation à un IAM rôle existant.

  3. L'option SQLSERVER_BACKUP_RESTORE ajoutée à un groupe d'options sur votre instance de base de données.

    Pour activer les sauvegarde et restauration natives sur votre instance de base de données, vous ajoutez l'option SQLSERVER_BACKUP_RESTORE à un groupe d'options sur votre instance de base de données. Pour plus d'informations et des instructions, consultez Prise en charge des sauvegarde et restauration natives dans SQL Server.

Création manuelle d'un IAM rôle pour la sauvegarde et la restauration natives

Si vous souhaitez créer manuellement un nouveau IAM rôle à utiliser avec la sauvegarde et la restauration natives, vous pouvez le faire. Dans ce cas, vous créez un rôle pour déléguer les autorisations du RDS service Amazon à votre compartiment Amazon S3. Lorsque vous créez un IAM rôle, vous lui associez une relation de confiance et une politique d'autorisation. La relation de confiance permet RDS d'assumer ce rôle. La politique d'autorisation définit les actions que ce rôle peut exécuter. Pour plus d'informations sur la création d'un rôle, consultez Création d'un rôle pour déléguer des autorisations à un service AWS.

Pour la fonction de sauvegarde et restauration native, utilisez des relations d'approbation et des stratégies d'autorisation similaires aux exemples de cette section. Dans l'exemple suivant, nous utilisons le nom principal de service rds.amazonaws.com comme alias de tous les comptes de service. Dans les autres exemples, nous indiquons un nom de ressource Amazon (ARN) pour identifier un autre compte, utilisateur ou rôle auquel nous accordons l'accès dans le cadre de la politique de confiance.

Nous vous recommandons d'utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans des relations d'approbation basées sur les ressources pour limiter les autorisations du service à une ressource spécifique. C'est le moyen le plus efficace de se protéger contre le problème du député confus.

Vous pouvez utiliser les deux clés de contexte de condition globale et faire en sorte que la valeur aws:SourceArn contienne l'ID de compte. Dans ce cas, la valeur aws:SourceAccount et le compte dans la valeur aws:SourceArn doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction.

  • Utilisez aws:SourceArn si vous souhaitez un accès interservices pour une seule ressource.

  • Utilisez aws:SourceAccount si vous souhaitez autoriser une ressource de ce compte à être associée à l'utilisation interservices.

Dans la relation de confiance, veillez à utiliser la clé de contexte de condition aws:SourceArn globale avec l'ensemble ARN des ressources accédant au rôle. Pour la sauvegarde et la restauration natives, veillez à inclure à la fois le groupe d'options de base de données et les instances de base de données, comme indiqué dans l'exemple suivant.

Exemple relation d'approbation avec clé de contexte de condition globale pour la sauvegarde et la restauration natives
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

L'exemple suivant utilise an ARN pour spécifier une ressource. Pour plus d'informations sur l'utilisationARNs, consultez Amazon resource names (ARNs).

Exemple politique d'autorisation pour la sauvegarde et la restauration natives sans prise en charge du chiffrement
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Exemple politique d'autorisation pour la sauvegarde et la restauration natives avec prise en charge du chiffrement

Si vous souhaitez chiffrer vos fichiers de sauvegarde, incluez une clé de chiffrement dans votre stratégie d'autorisation. Pour en savoir plus sur les clés de chiffrement, consultez Mise en route dans le Manuel du développeur AWS Key Management Service .

Note

Vous devez utiliser une KMS clé de chiffrement symétrique pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les KMS clés asymétriques. Pour plus d'informations, consultez la section Création de KMS clés de chiffrement symétriques dans le Guide du AWS Key Management Service développeur.

Le IAM rôle doit également être un utilisateur clé et un administrateur clé pour la KMS clé, c'est-à-dire qu'il doit être spécifié dans la politique clé. Pour plus d'informations, consultez la section Création de KMS clés de chiffrement symétriques dans le Guide du AWS Key Management Service développeur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Utilisation des sauvegarde et restauration natives

Une fois que vous avez activé et configuré les sauvegarde et restauration natives, vous pouvez commencer à les utiliser. Tout d'abord, vous vous connectez à votre base de données Microsoft SQL Server, puis vous appelez une procédure RDS stockée Amazon pour effectuer le travail. Pour plus d'informations sur la connexion à votre base de données, consultez Connexion à une instance de base de données exécutant le moteur de base de données Microsoft SQL Server.

Certaines procédures stockées nécessitent que vous fournissiez un nom de ressource Amazon (ARN) à votre compartiment et à votre fichier Amazon S3. Le format pour votre ARN estarn:aws:s3:::bucket_name/file_name.extension. Amazon S3 n'a pas besoin de numéro de compte ni de AWS région dansARNs.

Si vous fournissez également une KMS clé facultative, le format ARN de la clé estarn:aws:kms:region:account-id:key/key-id. Pour plus d'informations, consultez les noms des ressources Amazon (ARNs) et les espaces de noms des AWS services. Vous devez utiliser une KMS clé de chiffrement symétrique pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les KMS clés asymétriques. Pour plus d'informations, consultez la section Création de KMS clés de chiffrement symétriques dans le Guide du AWS Key Management Service développeur.

Note

Que vous utilisiez une KMS clé ou non, les tâches de sauvegarde et de restauration natives activent le chiffrement 256 bits côté serveur Advanced Encryption Standard (AES) par défaut pour les fichiers transférés vers S3.

Pour plus d'informations sur la façon d'appeler chaque procédure stockée, veuillez consulter les rubriques suivantes :

Sauvegarde d'une base de données

Pour sauvegarder votre base de données, utilisez la procédure stockée rds_backup_database.

Note

Vous ne pouvez pas sauvegarder une base de données pendant la période de maintenance ou pendant RDS qu'Amazon prend un instantané.

Utilisation

exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension', [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@overwrite_s3_backup_file=0|1], [@type='DIFFERENTIAL|FULL'], [@number_of_files=n];

Les paramètres suivants sont obligatoires :

  • @source_db_name – Nom de la base de données à sauvegarder.

  • @s3_arn_to_backup_to— L'ARNindication du compartiment Amazon S3 à utiliser pour la sauvegarde, ainsi que le nom du fichier de sauvegarde.

    Le fichier peut avoir n'importe quelle extension mais .bak est généralement utilisée.

Les paramètres suivants sont facultatifs :

  • @kms_master_key_arn— La ARN KMS clé de chiffrement symétrique à utiliser pour chiffrer l'article.

    • Vous ne pouvez pas utiliser la clé de chiffrement par défaut. Si vous utilisez la clé par défaut, la base de données n'est pas sauvegardée.

    • Si vous ne spécifiez pas d'identifiant de KMS clé, le fichier de sauvegarde ne sera pas chiffré. Pour plus d'informations, consultez la section Chiffrer les RDS ressources Amazon.

    • Lorsque vous spécifiez une KMS clé, le chiffrement côté client est utilisé.

    • Amazon RDS ne prend pas en charge les KMS clés asymétriques. Pour plus d'informations, consultez la section Création de KMS clés de chiffrement symétriques dans le Guide du AWS Key Management Service développeur.

  • @overwrite_s3_backup_file – Une valeur qui indique si un fichier de sauvegarde existant doit être écrasé.

    • 0 – N'écrase pas un fichier existant. Cette valeur est celle par défaut.

      Si @overwrite_s3_backup_file est défini sur 0, une erreur est retournée si le fichier existe déjà.

    • 1 – Écrase le fichier existant qui possède déjà le nom spécifié, même s'il ne s'agit pas d'un fichier de sauvegarde.

  • @type – Le type de sauvegarde.

    • DIFFERENTIAL – Crée une sauvegarde différentielle.

    • FULL – Crée une sauvegarde complète. Cette valeur est celle par défaut.

    Une sauvegarde différentielle est basée sur la dernière sauvegarde complète. Pour que les sauvegardes différentielles fonctionnent, vous ne pouvez prendre un instantané entre la dernière sauvegarde complète et la sauvegarde différentielle. Si vous souhaitez faire une sauvegarde différentielle, mais qu'il existe un instantané, alors créez une autre sauvegarde complète avant de créer la sauvegarde différentielle.

    Vous pouvez rechercher la dernière sauvegarde complète ou le dernier instantané à l'aide de l'exemple de SQL requête suivant :

    select top 1 database_name , backup_start_date , backup_finish_date from msdb.dbo.backupset where database_name='mydatabase' and type = 'D' order by backup_start_date desc;
  • @number_of_files – Nombre de fichiers dans lesquels la sauvegarde sera divisée (en morceaux). Le nombre maximum est de 10.

    • La sauvegarde en plusieurs fichiers est prise en charge pour les sauvegardes complètes et différentielles.

    • Si vous entrez la valeur 1 ou omettez le paramètre, un seul fichier de sauvegarde est créé.

    Fournissez le préfixe que les fichiers ont en commun, puis ajoutez un astérisque comme suffixe (*). L'astérisque peut se trouver n'importe où dans file_name fait partie du S3ARN. L'astérisque est remplacé par une série de chaînes alphanumériques dans les fichiers générés, en commençant par 1-of-number_of_files.

    Par exemple, si les noms de fichiers dans le S3 ARN sont backup*.bak ceux que vous avez définis@number_of_files=4, les fichiers de sauvegarde générés sont backup1-of-4.bakbackup2-of-4.bak,backup3-of-4.bak, etbackup4-of-4.bak.

    • Si l'un des noms de fichier existe déjà et que @overwrite_s3_backup_file a pour valeur 0, une erreur est renvoyée.

    • Les sauvegardes multifichiers ne peuvent comporter qu'un seul astérisque dans file_name fait partie du S3ARN.

    • Les sauvegardes à fichier unique peuvent comporter autant d'astérisques que vous le souhaitez dans file_name fait partie du S3ARN. Les astérisques ne sont pas supprimés du nom de fichier généré.

Exemples

Exemple de sauvegarde différentielle
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak', @overwrite_s3_backup_file=1, @type='DIFFERENTIAL';
Exemple de sauvegarde complète avec chiffrement
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup1.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE', @overwrite_s3_backup_file=1, @type='FULL';
Exemple de sauvegarde sur plusieurs fichiers
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @number_of_files=4;
Exemple de sauvegarde différentielle sur plusieurs fichiers
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @type='DIFFERENTIAL', @number_of_files=4;
Exemple de sauvegarde sur plusieurs fichiers avec chiffrement
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE', @number_of_files=4;
Exemple de sauvegarde sur plusieurs fichiers avec écrasement S3
exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @overwrite_s3_backup_file=1, @number_of_files=4;
Exemple de sauvegarde en un seul fichier avec le paramètre @number_of_files

Cet exemple génère un fichier de sauvegarde nommé backup*.bak.

exec msdb.dbo.rds_backup_database @source_db_name='mydatabase', @s3_arn_to_backup_to='arn:aws:s3:::mybucket/backup*.bak', @number_of_files=1;

Restauration d'une base de données

Pour restaurer votre base de données, appelez la procédure stockée rds_restore_database. Amazon RDS crée un instantané initial de la base de données une fois la tâche de restauration terminée et la base de données ouverte.

Utilisation

exec msdb.dbo.rds_restore_database @restore_db_name='database_name', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension', @with_norecovery=0|1, [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@type='DIFFERENTIAL|FULL'];

Les paramètres suivants sont obligatoires :

  • @restore_db_name – Nom de la base de données à restaurer. Les noms de base de données sont uniques. Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante.

  • @s3_arn_to_restore_from— L'ARNindication du préfixe Amazon S3 et des noms des fichiers de sauvegarde utilisés pour restaurer la base de données.

    • Pour une seule sauvegarde de fichier, fournissez la totalité du nom du fichier.

    • Pour une sauvegarde comportant plusieurs fichiers, fournissez le préfixe que les fichiers ont en commun, puis ajoutez un astérisque comme suffixe (*).

    • S'il @s3_arn_to_restore_from est vide, le message d'erreur suivant est renvoyé : Le ARNpréfixe S3 ne peut pas être vide.

Le paramètre suivant est obligatoire pour les différentes restaurations, mais facultatifs pour les restaurations complètes :

  • @with_norecovery – La clause de restauration à utiliser pour l'opération de restauration.

    • Réglez-le 0 sur pour restaurer avecRECOVERY. Dans ce cas, la base de données est en ligne après la restauration.

    • Réglez-le 1 sur pour restaurer avecNORECOVERY. Dans ce cas, la base de données reste dans RESTORING cet état une fois la tâche de restauration terminée. Grâce à cette approche, vous pouvez procéder à des restaurations différentielles ultérieurement.

    • Pour les DIFFERENTIAL restaurations, spécifiez 0 ou1.

    • Pour les restaurations FULL, cette valeur par défaut est 0.

Les paramètres suivants sont facultatifs :

  • @kms_master_key_arn— Si vous avez chiffré le fichier de sauvegarde, KMS clé à utiliser pour le déchiffrer.

    Lorsque vous spécifiez une KMS clé, le chiffrement côté client est utilisé.

  • @type – Le type de restauration. Les types valides sont DIFFERENTIAL et FULL. La valeur par défaut est FULL.

Note

Pour les restaurations différentielles, soit la base de données doit être dans RESTORING cet état, soit une tâche doit déjà exister avecNORECOVERY.

Vous ne pouvez pas restaurer ultérieurement des sauvegardes différentielles tant que la base de données est en ligne.

Vous ne pouvez pas soumettre de tâche de restauration pour une base de données sur laquelle une tâche de restauration est déjà en attente auprès deRECOVERY.

Les restaurations complètes avec NORECOVERY restauration différentielle ne sont pas prises en charge sur les instances multi-AZ.

La restauration d'une base de données sur une instance multi-AZ avec réplicas en lecture est similaire à la restauration d'une base de données sur une instance multi-AZ. Vous n'avez pas besoin d'effectuer d'actions supplémentaires pour restaurer une base de données sur un réplica.

Exemples

Exemple de restauration d'un seul fichier
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
Exemple de restauration de plusieurs fichiers

Pour éviter les erreurs lors de la restauration de plusieurs fichiers, assurez-vous que tous les fichiers de sauvegarde ont le même préfixe et qu'aucun autre fichier n'utilise ce préfixe.

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*';
Exemple de restauration complète de la base de données avec RECOVERY

Les trois exemples suivants exécutent la même tâche, à savoir la restauration complète avecRECOVERY.

exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak';
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', [@type='DIFFERENTIAL|FULL'];
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=0;
Exemple de restauration de base de données complète avec chiffrement
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
Exemple de restauration complète de la base de données avec NORECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='FULL', @with_norecovery=1;
Exemple de restauration différentielle avec NORECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=1;
Exemple de restauration différentielle avec RECOVERY
exec msdb.dbo.rds_restore_database @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak', @type='DIFFERENTIAL', @with_norecovery=0;

Restauration d'un journal

Pour restaurer votre journal, appelez la procédure stockée rds_restore_log.

Utilisation

exec msdb.dbo.rds_restore_log @restore_db_name='database_name', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name/log_file_name.extension', [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@with_norecovery=0|1], [@stopat='datetime'];

Les paramètres suivants sont obligatoires :

  • @restore_db_name – Le nom de la base de données dont vous souhaitez restaurer le journal.

  • @s3_arn_to_restore_from— L'ARNindication du préfixe Amazon S3 et du nom du fichier journal utilisé pour restaurer le journal. Le fichier peut avoir n'importe quelle extension mais .trn est généralement utilisée.

    S'il @s3_arn_to_restore_from est vide, le message d'erreur suivant est renvoyé : Le ARNpréfixe S3 ne peut pas être vide.

Les paramètres suivants sont facultatifs :

  • @kms_master_key_arn— Si vous avez chiffré le journal, KMS clé à utiliser pour le déchiffrer.

  • @with_norecovery – La clause de restauration à utiliser pour l'opération de restauration. La valeur par défaut est 1.

    • Réglez-le 0 sur pour restaurer avecRECOVERY. Dans ce cas, la base de données est en ligne après la restauration. Vous ne pouvez pas restaurer ultérieurement des sauvegardes de journaux tant que la base de données est en ligne.

    • Réglez-le 1 sur pour restaurer avecNORECOVERY. Dans ce cas, la base de données reste dans RESTORING cet état une fois la tâche de restauration terminée. Grâce à cette approche, vous pouvez procéder à des restaurations de journaux ultérieurement.

  • @stopat – Une valeur qui spécifie que la base de données est restaurée dans son état à la date et l'heure spécifiées (au format datetime). Seul les enregistrements de journaux de transaction écrits avant la date et l'heure spécifiées sont appliqués à la base de données.

    Si ce paramètre n'est pas spécifié (il l'estNULL), le journal complet est restauré.

Note

Pour les restaurations de journaux, la base de données doit être en état de restauration ou une tâche doit déjà exister avecNORECOVERY.

Vous ne pouvez pas restaurer de sauvegardes de journaux tant que la base de données est en ligne.

Vous ne pouvez pas soumettre une tâche de restauration du journal sur une base de données qui contient déjà une tâche de restauration en attente avecRECOVERY.

Les restaurations de journaux ne sont pas prises en charge sur les instances multi-AZ.

Exemples

Exemple de restaurations de journaux
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
Exemple de restaurations de journaux avec chiffrement
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @kms_master_key_arn='arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE';
Exemple de restauration du journal avec NORECOVERY

Les deux exemples suivants exécutent la même tâche, à savoir la restauration du journal avecNORECOVERY.

exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=1;
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn';
Exemple de restauration du journal avec RECOVERY
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0;
Exemple de restauration du journal avec STOPAT clause
exec msdb.dbo.rds_restore_log @restore_db_name='mydatabase', @s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn', @with_norecovery=0, @stopat='2019-12-01 03:57:09';

Finalisation d'une restauration de base de données

Si la dernière tâche de restauration de la base de données a été effectuée à l'aide de@with_norecovery=1, la base de données est désormais dans son RESTORING état. Ouvrez cette base de données pour exécuter des opérations normales à l'aide de la procédure stockée rds_finish_restore.

Utilisation

exec msdb.dbo.rds_finish_restore @db_name='database_name';
Note

Pour utiliser cette approche, la base de données doit être dans l'RESTORINGétat où aucune tâche de restauration n'est en attente.

La procédure rds_finish_restore n'est pas prise en charge sur les instances multi-AZ.

Pour finaliser la restauration de la base de données, utilisez l'identifiant principal. Vous pouvez également utiliser le nom d'utilisateur qui a récemment restauré la base de données ou qui a ouvert une sessionNORECOVERY.

Utilisation de bases de données partiellement restaurées

Suppression d'une base de données partiellement restaurée

Pour supprimer une base de données partiellement restaurée (laissée dans RESTORING son état), utilisez la procédure rds_drop_database stockée.

exec msdb.dbo.rds_drop_database @db_name='database_name';
Note

Vous ne pouvez pas envoyer de demande DROP de base de données pour une base de données dont la restauration est déjà en attente ou dont la tâche de restauration est terminée.

Pour supprimer la base de données, utilisez l'identifiant principal. Vous pouvez également utiliser le nom d'utilisateur qui a récemment restauré la base de données ou qui a ouvert une sessionNORECOVERY.

Comportement de restauration et point-in-time de restauration des instantanés pour les bases de données partiellement restaurées

Les bases de données partiellement restaurées dans l'instance source (laissées dans l'RESTORINGétat actuel) sont supprimées de l'instance cible lors de la restauration et de la point-in-time restauration des instantanés.

Annulation d'une tâche

Pour annuler une tâche de sauvegarde ou de restauration, appelez la procédure stockée rds_cancel_task.

Note

Vous ne pouvez pas annuler une RESTORE tâche FINISH _.

Utilisation

exec msdb.dbo.rds_cancel_task @task_id=ID_number;

Les paramètres suivants sont obligatoires :

  • @task_id – ID de la tâche à annuler. Vous pouvez obtenir l'ID de la tâche en appelant rds_task_status.

Suivi de l'état des tâches

Pour suivre l'état de vos tâches de sauvegarde et restauration, appelez la procédure stockée rds_task_status. Si vous ne fournissez pas de paramètre, la procédure stockée retourne l'état de toutes les tâches. Le statut des tâches est mis à jour environ toutes les deux minutes. L'historique des tâches est conservé pendant 36 jours.

Utilisation

exec msdb.dbo.rds_task_status [@db_name='database_name'], [@task_id=ID_number];

Les paramètres suivants sont facultatifs :

  • @db_name – Nom de la base de données pour laquelle afficher l'état de la tâche.

  • @task_id – ID de la tâche pour laquelle afficher l'état de tâche.

Exemples

Exemple de liste des statuts d'une tâche spécifique
exec msdb.dbo.rds_task_status @task_id=5;
Exemple de liste des statuts d'une base de données et d'une tâche spécifiques
exec msdb.dbo.rds_task_status @db_name='my_database', @task_id=5;
Exemple de liste de toutes les tâches et de leurs statuts sur une base de données spécifique
exec msdb.dbo.rds_task_status @db_name='my_database';
Exemple de liste de toutes les tâches et de leurs statuts sur l'instance actuelle
exec msdb.dbo.rds_task_status;

Réponse

La procédure stockée rds_task_status renvoie les colonnes suivantes.

Colonne Description

task_id

ID de la tâche

task_type

Le type de tâche dépend des paramètres d'entrée, comme suit :

  • Pour les tâches de sauvegarde :

    • BACKUP_DB — Sauvegarde complète de la base de données

    • BACKUP_DB_ DIFFERENTIAL — Sauvegarde de base de données différentielle

  • Pour les tâches de restauration :

    • RESTORE_DB — Restauration complète de la base de données avec RECOVERY

    • RESTORE_DB_ NORECOVERY — Restauration complète de la base de données avec NORECOVERY

    • RESTORE_DB_ DIFFERENTIAL — Restauration de base de données différentielle avec RECOVERY

    • RESTORE_DB_ DIFFERENTIAL _ NORECOVERY — Restauration de base de données différentielle avec NORECOVERY

    • RESTORE_DB_ LOG — Restauration du journal avec RECOVERY

    • RESTORE_DB_ LOG _ NORECOVERY — Restauration du journal avec NORECOVERY

  • Pour les tâches qui finalisent une restauration :

    • FINISH_ RESTORE — Terminer la restauration et ouvrir la base de données

Amazon RDS crée un instantané initial de la base de données après son ouverture à l'issue des tâches de restauration suivantes :

  • RESTORE_DB

  • RESTORE_DB_ DIFFERENTIAL

  • RESTORE_DB_ LOG

  • FINISH_RESTORE

database_name

Nom de la base de données à laquelle est associée à la tâche.

% complete

La progression de la tâche sous forme de pourcentage.

duration (mins)

Temps consacré à la tâche, en minutes.

lifecycle

État de la tâche. Les statuts possibles sont les suivants :

  • CREATED – Dès que vous appelez rds_backup_database ou rds_restore_database, une tâche est créée et l'état est défini sur CREATED.

  • IN_PROGRESS – Après le démarrage d'une tâche de sauvegarde ou de restauration, l'état est défini sur IN_PROGRESS. Cela peut prendre jusqu'à 5 minutes pour que l'état change de CREATED à IN_PROGRESS.

  • SUCCESS – Après l'achèvement d'une tâche de sauvegarde ou de restauration, l'état est défini sur SUCCESS.

  • ERROR – En cas d'échec d'une tâche de sauvegarde ou de restauration, l'état est défini sur ERROR. Lisez la colonne task_info pour plus d'informations sur l'erreur.

  • CANCEL_REQUESTED – Dès que vous appelez rds_cancel_task, l'état de la tâche est défini sur CANCEL_REQUESTED.

  • CANCELLED – Une fois une tâche annulée avec succès, l'état de la tâche est défini sur CANCELLED.

task_info

Informations supplémentaires sur la tâche.

Si une erreur se produit lors de la sauvegarde ou de la restauration d'une base de données, cette colonne contient des informations sur l'erreur. Pour obtenir une liste des erreurs possibles et des stratégies d'atténuation, consultez Résolution des problèmes.

last_updated

Date et heure de la dernière mise à jour de l'état de la tâche. Le statut est mis à jour tous les 5 pour cent de progression.

created_at

Date et heure de création de la tâche.

S3_object_arn ARNIndiquant le préfixe Amazon S3 et le nom du fichier en cours de sauvegarde ou de restauration.

overwrite_s3_backup_file

Valeur du paramètre @overwrite_s3_backup_file spécifié lorsque vous appelez une tâche de sauvegarde. Pour de plus amples informations, veuillez consulter Sauvegarde d'une base de données.

KMS_master_key_arn ARNPour la KMS clé utilisée pour le chiffrement (pour la sauvegarde) et le déchiffrement (pour la restauration).
filepath Non applicable aux tâches de sauvegarde et de restauration natives
overwrite_file Non applicable aux tâches de sauvegarde et de restauration natives

Compression des fichiers de sauvegarde

Pour économiser de l'espace sur votre compartiment Amazon S3, vous pouvez compresser vos fichiers de sauvegarde. Pour plus d'informations sur la compression de fichiers de sauvegarde, consultez Backup Compression (Compression de sauvegarde) dans la documentation Microsoft.

La compression des fichiers sauvegardés est prise en charge pour les éditions de base de données suivantes :

  • Édition Microsoft SQL Server Enterprise

  • Édition standard SQL de Microsoft Server

Pour activer la compression de vos fichiers sauvegardés, exécutez le code suivant :

exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'true';

Pour désactiver la compression de vos fichiers sauvegardés, exécutez le code suivant :

exec rdsadmin.dbo.rds_set_configuration 'S3 backup compression', 'false';

Résolution des problèmes

Voici les problèmes que vous risquez de rencontrer lorsque vous utilisez la sauvegarde et la restauration natives.

Problème Suggestions de dépannage

L'option de sauvegarde/restauration de base de données n'est pas encore activée ou est en cours d'activation. Réessayez ultérieurement.

Vérifiez que vous avez ajouté l'option SQLSERVER_BACKUP_RESTORE au groupe d'options de base de données associé à votre instance de base de données. Pour plus d'informations, veuillez consulter Ajout de l'option de sauvegarde et restauration natives.

Accès refusé

Le processus de sauvegarde ou de restauration ne parvient pas à accéder au fichier de sauvegarde. Cela est généralement provoqué par des problèmes tels que :

  • Référencement du compartiment incorrect. Référencement du compartiment avec un format incorrect. Référencer un nom de fichier sans utiliser leARN.

  • Autorisations incorrectes sur le fichier de compartiment. Par exemple, s'il a été créé par un compte différent qui essaie d'y accéder actuellement, ajoutez les autorisations correctes.

  • Une IAM politique incorrecte ou incomplète. Votre IAM rôle doit inclure tous les éléments nécessaires, y compris, par exemple, la bonne version. Ceux-ci sont mis en évidence dans Importation et exportation de bases de données SQL du serveur à l'aide de la sauvegarde et de la restauration natives.

BACKUPDATABASEWITHCOMPRESSIONn'est pas pris en charge sur Edition <edition_name>

La compression de vos fichiers de sauvegarde n'est prise en charge que pour Microsoft SQL Server Enterprise Edition et l'édition Standard .

Pour de plus amples informations, veuillez consulter Compression des fichiers de sauvegarde.

La clé < ARN > n'existe pas

Vous avez essayé de restaurer une sauvegarde chiffrée, mais n'avez pas fourni une clé de chiffrement valide. Vérifiez votre clé de chiffrement et réessayez.

Pour plus d'informations, consultez Restauration d'une base de données.

Veuillez réémettre la tâche avec le type correct et remplacer la propriété

Si vous essayez de sauvegarder votre base de données et fournissez le nom d'un fichier qui existe déjà, mais que la propriété de remplacement est définie sur false, l'opération de sauvegarde échoue. Pour corriger cette erreur, entrez le nom d'un fichier qui n'existe pas déjà ou définissez la propriété de remplacement sur true.

Pour plus d'informations, consultez Sauvegarde d'une base de données.

Il est également possible qu'en tentant de restaurer votre base de données, vous ayez accidentellement appelé la procédure stockée rds_backup_database. Dans ce cas, appelez la procédure stockée rds_restore_database à la place.

Pour plus d'informations, consultez Restauration d'une base de données.

Si vous aviez pour but de restaurer votre base de données et avez appelé la procédure stockée rds_restore_database, assurez-vous que vous avez fourni le nom d'un fichier de sauvegarde valide.

Pour de plus amples informations, veuillez consulter Utilisation des sauvegarde et restauration natives.

Spécifiez un bucket situé dans la même région que l'RDSinstance

Vous ne pouvez pas effectuer de sauvegarde ou de restauration depuis un compartiment Amazon S3 situé dans une AWS région différente de celle de votre RDS instance de base de données Amazon. Vous pouvez utiliser la réplication Amazon S3 pour copier le fichier de sauvegarde dans la AWS région appropriée.

Pour plus d'informations, consultez Réplication entre régions dans la documentation Amazon S3.

Le compartiment spécifié n'existe pas

Vérifiez que vous avez fourni les informations correctes ARN pour votre bucket et votre fichier, dans le bon format.

Pour de plus amples informations, veuillez consulter Utilisation des sauvegarde et restauration natives.

L'utilisateur < ARN > n'est pas autorisé à effectuer une opération sur la ressource < ARN > <kms action>

Vous avez demandé une opération cryptée, mais vous n'avez pas fourni AWS KMS les autorisations appropriées. Vérifiez que vous avez les autorisations appropriées ou ajoutez-les.

Pour plus d'informations, consultez Configuration pour les sauvegarde et restauration natives.

La tâche de restauration n'est pas en mesure de restaurer à partir de plus de 10 fichiers de sauvegarde). Veuillez réduire le nombre de fichiers correspondants et réessayer.

Réduisez le nombre de fichiers que vous utilisez pour la restauration. Si nécessaire, vous pouvez augmenter la taille de chaque fichier.

Base de données 'database_name'existe déjà. Deux bases de données qui ne diffèrent que par la casse ou l'accentuation ne sont pas autorisées. Choisissez un nom de base de données différent.

Vous ne pouvez pas restaurer une base de données qui porte le même nom qu'une base de données existante. Les noms de base de données sont uniques.