

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.

# Utilisation des sauvegarde et restauration natives
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

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 stockée Amazon RDS pour faire le travail. Pour plus d'informations sur la connexion à votre base de données, consultez [Connexion à votre instance de base de données Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

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

Si vous fournissez également une clé KMS facultative, le format de l'ARN de la clé est `arn: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](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Vous devez utiliser une clé KMS de chiffrement symétrique pour chiffrer vos sauvegardes. Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.

**Note**  
Que vous utilisiez ou non une clé KMS, les tâches de sauvegarde et de restauration natives activent le chiffrement AES (Advanced Encryption Standard) 256 bits côté serveur via SSE-S3 par défaut pour les fichiers téléchargés sur S3. Le passage `@enable_bucket_default_encryption=1` à la procédure stockée de sauvegarde utilise la clé de chiffrement par défaut configurée dans votre compartiment S3.

Pour plus d’informations sur la façon d’appeler chaque procédure stockée, consultez les rubriques suivantes :
+ [Sauvegarde d'une base de données](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [Restauration d'une base de données](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [Restauration d'un journal](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [Finalisation d'une restauration de base de données](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [Utilisation de bases de données partiellement restaurées](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [Annulation d'une tâche](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [Suivi de l'état des tâches](#SQLServer.Procedural.Importing.Native.Tracking)

## Sauvegarde d'une base de données
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

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 fenêtre de maintenance ou lorsqu'Amazon RDS prend un instantané. 

### Usage
<a name="SQLServer.Procedural.Importing.Native.Backup.Syntax"></a>

```
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],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'],
	[@number_of_files=n],
	[@enable_bucket_default_encryption=0|1];
```

Les paramètres suivants sont obligatoires :
+ `@source_db_name` – Nom de la base de données à sauvegarder.
+ `@s3_arn_to_backup_to`— L'ARN indiquant le compartiment Amazon S3, le point d'accès, le compartiment de répertoire ou le point d'accès du compartiment de répertoire à 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. Notez que le point d'accès ARNs doit être au format`arn:aws:s3:us-east-1:111122223333:access-point-name/object/key`.

Les paramètres suivants sont facultatifs :
+ `@kms_master_key_arn` – ARN de la clé KMS de chiffrement symétrique à utiliser pour chiffrer l'élément.
  + 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 clé KMS, le fichier de sauvegarde n’est pas chiffré. Pour plus d’informations, consultez [Chiffrer des ressources Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html).
  + Lorsque vous spécifiez une clé KMS, le chiffrement côté client est utilisé.
  + Amazon RDS ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez [Création de clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) dans le *Guide du développeur AWS Key Management Service *.
+ `@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 requête SQL 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 la *file\$1name* partie de l'ARN S3. 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 l'ARN S3 ont pour modèle `backup*.bak` et que vous définissez `@number_of_files=4`, les fichiers de sauvegarde générés auront pour noms `backup1-of-4.bak`, `backup2-of-4.bak`, `backup3-of-4.bak` et `backup4-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 la *file\$1name* partie de l'ARN S3.
  + Les sauvegardes à fichier unique peuvent comporter un certain nombre d'astérisques dans la *file\$1name* partie de l'ARN S3. Les astérisques ne sont pas supprimés du nom de fichier généré.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.
+ `@enable_bucket_default_encryption`— Une valeur qui indique s'il faut utiliser la configuration de chiffrement par défaut du compartiment S3 pour le chiffrement côté serveur dans S3. Les compartiments de répertoire utilisent toujours la configuration de chiffrement par défaut du compartiment, quel que soit ce paramètre.
  + `0`— Le chiffrement côté serveur utilise le chiffrement AES (Advanced Encryption Standard) 256 bits via SSE-S3.
  + `1`— Le chiffrement côté serveur utilise le chiffrement [par défaut](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html) configuré dans votre compartiment S3. 

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Backup.Examples"></a>

**Example 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';
```

**Example de sauvegarde complète avec chiffrement côté client**  

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

**Example 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;
```

**Example 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;
```

**Example 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;
```

**Example 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;
```

**Example de sauvegarde avec taille de bloc**  

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

**Example de sauvegarde sur plusieurs fichiers avec `@max_transfer_size` et `@buffer_count`**  

```
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,
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example de sauvegarde en un seul fichier avec le paramètre @number\$1of\$1files**  
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;
```

**Example de sauvegarde complète avec chiffrement côté serveur**  

```
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,
@type='FULL',
@enable_bucket_default_encryption=1;
```

**Example d'une sauvegarde complète à l'aide d'un point d'accès**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

**Example d'une sauvegarde complète à l'aide d'un point d'accès pour un bucket de répertoire**  

```
exec msdb.dbo.rds_backup_database
@source_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3express:us-east-1:123456789012:accesspoint/my-access-point--use1-az6--xa-s3/object/backup1.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
```

## Restauration d'une base de données
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

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 après la fin de la tâche de restauration et l'ouverture de la base de données.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Syntax"></a>

```
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,
	[@keep_cdc=0|1],
	[@data_file_volume='D:|H:|I:|J:'],
	[@log_file_volume='D:|H:|I:|J:'],
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
        [@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@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'ARN indique le préfixe Amazon S3 et les 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 (`*`).
    + Si vous utilisez un compartiment de répertoire, l'ARN doit se terminer par `/*` en raison des [différences entre les compartiments de répertoire](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html).
  + Si `@s3_arn_to_restore_from` est vide, le message d'erreur suivant est renvoyé : Le préfixe de l'ARN 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.
  + Définissez le paramètre sur `0` pour restaurer avec RECOVERY (RESTAURATION). Dans ce cas, la base de données est en ligne après la restauration.
  + Définissez le paramètre sur `1` pour restaurer avec NORECOVERY (SANS RESTAURATION). Dans ce cas, la base de données reste à l'état RESTORING (EN COURS DE RESTAURATION) après la fin de la tâche de restauration. Grâce à cette approche, vous pouvez procéder à des restaurations différentielles ultérieurement.
  + Pour les restaurations DIFFÉRENTIELLES, spécifiez `0` ou `1`.
  + Pour les restaurations `FULL`, cette valeur par défaut est `0`.

Les paramètres suivants sont facultatifs :
+ `@keep_cdc`— Indique s'il faut conserver la configuration Change Data Capture (CDC) sur la base de données restaurée. Définissez sur pour `1` activer KEEP\$1CDC, `0` pour le désactiver. La valeur par défaut est `0`.
+ `@data_file_volume`— Spécifie la lettre du lecteur pour les fichiers de données de base de données. La valeur par défaut est `D:`.
+ `@log_file_volume`— Spécifie la lettre du lecteur pour les fichiers journaux de base de données. La valeur par défaut est`D:`.
+ `@kms_master_key_arn` – Clé KMS à utiliser pour déchiffrer le fichier si vous avez chiffré le fichier de sauvegarde.

  Lorsque vous spécifiez une clé KMS, 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`.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.

**Note**  
Pour les restaurations différentielles, la base de données doit se trouver en état RESTORING (EN COURS DE RESTAURATION) ou une tâche de restauration doit déjà exister avec NORECOVERY (SANS RESTAURATION).  
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 envoyer de tâche de restauration pour une base de données qui possède déjà une tâche de restauration en attente avec RECOVERY (RESTAURATION).  
Les restaurations complètes avec NORECOVERY et KEEP\$1CDC ne sont pas prises en charge.  
Toutes les restaurations natives ne sont pas prises en charge sur les instances dotées de répliques de lecture entre régions.  
Pour les configurations prises en charge, 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
<a name="SQLServer.Procedural.Importing.Native.Restore.Examples"></a>

**Example 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';
```

**Example 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*';
```

**Example de restauration de base de données complète avec RECOVERY (RESTAURATION)**  
Les trois exemples suivants exécutent la même tâche de restauration complète avec RECOVERY (RESTAURATION).  

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

**Example 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';
```

**Example de restauration avec taille de bloc**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@block_size=512;
```

**Example de restauration multifichiers avec @max\$1transfer\$1size et @buffer\$1count**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup*',
@max_transfer_size=4194304,
@buffer_count=10;
```

**Example de restauration de base de données complète avec NORECOVERY (SANS RESTAURATION)**  

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

**Example de restauration différentielle avec NORECOVERY (SANS RESTAURATION)**  

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

**Example de restauration différentielle avec RECOVERY (RESTAURATION).**  

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

**Example de restauration complète de la base de données avec RECOVERY à l'aide d'un point d'accès**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_backup_to='arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/object/backup1.bak',
@with_norecovery=0;
```

**Example de restauration complète de la base de données avec KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Restauration d'un journal
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

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

### Usage
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Syntax"></a>

```
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],
	[@keep_cdc=0|1],
	[@stopat='datetime'],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n];
```

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'ARN indique le préfixe Amazon S3 et le 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.

  Si `@s3_arn_to_restore_from` est vide, le message d'erreur suivant est renvoyé : Le préfixe de l'ARN S3 ne peut pas être vide.

Les paramètres suivants sont facultatifs :
+ `@keep_cdc`— Indique s'il faut conserver la configuration Change Data Capture (CDC) sur la base de données restaurée. Définissez sur 1 pour activer KEEP\$1CDC, 0 pour le désactiver. La valeur par défaut est 0.
+ `@kms_master_key_arn` – Clé KMS à utiliser pour déchiffrer le journal si vous avez chiffré le journal.
+ `@with_norecovery` – La clause de restauration à utiliser pour l'opération de restauration. La valeur par défaut est `1`.
  + Définissez le paramètre sur `0` pour restaurer avec RECOVERY (RESTAURATION). 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.
  + Définissez le paramètre sur `1` pour restaurer avec NORECOVERY (SANS RESTAURATION). Dans ce cas, la base de données reste à l'état RESTORING (EN COURS DE RESTAURATION) après la fin de la tâche de restauration. 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 est NULL), le journal complet est restauré.
+ `@block_size` : taille de bloc (en octets) spécifiant la taille de bloc physique pour les opérations de sauvegarde. Les valeurs valides sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536.
+ `@max_transfer_size`— La taille de transfert maximale indique la limite supérieure du volume de données (en octets) transmis par I/O opération pendant le processus de sauvegarde. Les valeurs valides sont des multiples de 65 536 octets (64 Ko) jusqu’à 4 194 304 octets (4 Mo). 
+ `@buffer_count`— Nombre total de I/O tampons à utiliser pour le processus de sauvegarde.

**Note**  
Pour les restaurations de journaux, la base de données doit se trouver en état de restauration ou une tâche de restauration doit déjà exister avec NORECOVERY (SANS RESTAURATION).  
Vous ne pouvez pas restaurer de sauvegardes de journaux tant que la base de données est en ligne.  
Vous ne pouvez pas envoyer de tâche de restauration de journaux sur une base de données qui possède déjà une tâche de restauration en attente avec RECOVERY (RESTAURATION).

### Exemples
<a name="SQLServer.Procedural.Importing.Native.Restore.Log.Examples"></a>

**Example 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';
```

**Example 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';
```

**Example de restaurations de journaux avec NORECOVERY (SANS RESTAURATION)**  
Les trois exemples suivants exécutent la même tâche de restauration de journaux avec NORECOVERY (SANS RESTAURATION).  

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

**Example de restauration avec taille de bloc**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@block_size=512;
```

**Example de restaurations de journaux avec RECOVERY (RESTAURATION)**  

```
exec msdb.dbo.rds_restore_log
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/mylog.trn',
@with_norecovery=0;
```

**Example de restaurations de journaux avec clause STOPAT**  

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

**Example de restauration du journal avec KEEP\$1CDC**  

```
exec msdb.dbo.rds_restore_database
@restore_db_name='mydatabase',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/backup1.bak',
@keep_cdc=1;
```

## Finalisation d'une restauration de base de données
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

Si la dernière tâche de restauration sur la base de données a été exécutée à l'aide de `@with_norecovery=1`, la base de données est désormais en état RECOVERY (RESTAURATION). Ouvrez cette base de données pour exécuter des opérations normales à l'aide de la procédure stockée `rds_finish_restore`.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax"></a>

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

**Note**  
Pour utiliser cette approche, la base de données doit être en état RECOVERY (RESTAURATION) sans aucune tâche de restauration en attente.  
Pour finaliser la restauration de la base de données, utilisez l'identifiant principal. Ou utilisez l'identifiant utilisateur qui a permis de restaurer récemment la base de données ou de se connecter avec NORECOVERY (SANS RESTAURATION).

## Utilisation de bases de données partiellement restaurées
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### Suppression d'une base de données partiellement restaurée
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

Pour supprimer une base de données partiellement restaurée (laissée en état RECOVERY (RESTAURATION), utilisez la procédure stockée `rds_drop_database`.

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

**Note**  
Vous ne pouvez pas envoyer de demande de base de données DROP (SUPPRIMER) pour une base de données qui possède déjà une tâche de restauration en attente ou de finalisation de restauration.  
Pour supprimer la base de données, utilisez l'identifiant principal. Ou utilisez l'identifiant utilisateur qui a permis de restaurer récemment la base de données ou de se connecter avec NORECOVERY (SANS RESTAURATION).

### Comportement de restauration et point-in-time de restauration des instantanés pour les bases de données partiellement restaurées
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

Les bases de données partiellement restaurées dans l'instance source (laissées dans l'état RESTORING) 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
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

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 tâche FINISH\$1RESTORE.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Cancel.Syntax"></a>

```
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
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

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.

### Usage
<a name="SQLServer.Procedural.Importing.Native.Tracking.Syntax"></a>

```
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
<a name="SQLServer.Procedural.Importing.Native.Tracking.Examples"></a>

**Example de liste des statuts d'une tâche spécifique**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example 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;
```

**Example 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';
```

**Example de liste de toutes les tâches et de leurs statuts sur l'instance actuelle**  

```
exec msdb.dbo.rds_task_status;
```

### Réponse
<a name="SQLServer.Procedural.Importing.Native.Tracking.Response"></a>

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 : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) Amazon RDS crée un instantané initial de la base de données après son ouverture à la fin des tâches de restauration suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `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 :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `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](SQLServer.Procedural.Importing.Native.Troubleshooting.md).   | 
| `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\$1object\$1arn | L'ARN indique 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](#SQLServer.Procedural.Importing.Native.Using.Backup).  | 
| KMS\$1master\$1key\$1arn | L'ARN pour la clé KMS 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\$1file | Non applicable aux tâches de sauvegarde et de restauration natives | 