

# Usar o backup e restauração nativos
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

Depois de habilitar e configurar o backup e a restauração nativos, você pode começar a usá-los. Primeiro, conecte-se ao banco de dados do Microsoft SQL Server e chame um procedimento armazenado do Amazon RDS para fazer o trabalho. Para obter instruções sobre como se conectar ao banco de dados, consulte [Conectar-se à instância de banco de dados do Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

Alguns dos procedimentos armazenados exigem que você forneça um nome de recurso da Amazon (ARN) ao bucket e arquivo do Amazon S3. O formato do ARN é `arn:aws:s3:::bucket_name/file_name.extension`. O Amazon S3 não exige um número de conta ou região da AWS nos ARNs.

Se você também fornecer uma chave do KMS opcional, o formato do ARN da chave será `arn:aws:kms:region:account-id:key/key-id`. Para obter mais informações, consulte [Nomes de recurso da Amazon (ARNs) e namespaces de serviço da AWS](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). É necessário usar uma chave do KMS de criptografia simétrica para criptografar seus backups. O Amazon RDS não oferece suporte para chaves do KMS assimétricas. Para obter mais informações, consulte [Criar chaves do KMS simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor da AWS Key Management Service*.

**nota**  
Independentemente de você usar ou não uma chave do KMS, as tarefas nativas de backup e restauração habilitam a criptografia Advanced Encryption Standard (AES) de 256 bits no lado do servidor por padrão por meio da SSE-S3 para arquivos carregados no S3. A transmissão de `@enable_bucket_default_encryption=1` para o procedimento armazenado de backup usa a chave de criptografia padrão configurada do bucket do S3.

Para instruções sobre como chamar cada procedimento armazenado, consulte os tópicos a seguir:
+ [Realização de backup de um banco de dados](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [Restaurar um banco de dados](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [Restaurar um log](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [Concluir uma restauração de banco de dados](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [Como trabalhar com bancos de dados parcialmente restaurados](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [Cancelar uma tarefa](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [Acompanhar o status de tarefas](#SQLServer.Procedural.Importing.Native.Tracking)

## Realização de backup de um banco de dados
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

Para fazer backup de seu banco de dados, use o procedimento armazenado `rds_backup_database`.

**nota**  
Você não pode fazer backup de um banco de dados durante a janela de manutenção ou enquanto o Amazon RDS está tirando um snapshot. 

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

Os seguintes parâmetros são obrigatórios:
+ `@source_db_name` – o nome do banco de dados do qual deve ser feito backup
+ `@s3_arn_to_backup_to`: o ARN que indica o bucket do Amazon S3, o ponto de acesso, o bucket de diretório ou o ponto de acesso para o bucket de diretório a ser usado no backup e o nome do arquivo de backup.

  O arquivo pode ter qualquer extensão, mas a extensão `.bak` costuma ser usada. Observe que os ARNs dos pontos de acesso devem ter o formato`arn:aws:s3:us-east-1:111122223333:access-point-name/object/key`.

Os seguintes parâmetros são opcionais:
+ `@kms_master_key_arn`: o ARN da chave do KMS simétrica a ser usada para criptografar o item.
  + Não é possível usar a chave de criptografia padrão. Se você usar a chave padrão, não será feito backup do banco de dados.
  +  Se você não especificar um identificador de chave KMS, o arquivo de backup não será criptografado. Para ter mais informações, consulte [Criptografar recursos do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html).
  + Quando você especifica uma chave do KMS, é usada a criptografia no lado do cliente.
  + O Amazon RDS não oferece suporte para chaves do KMS assimétricas. Para obter mais informações, consulte [Criar chaves do KMS simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor da AWS Key Management Service*.
+ `@overwrite_s3_backup_file` – um valor que indica se deseja substituir um arquivo de backup existente.
  + `0` – não substitui um arquivo existente. Esse valor é o padrão.

    Definir `@overwrite_s3_backup_file` como 0 retornará um erro se o arquivo já existir.
  + `1` – substitui um arquivo existente que tenha o nome especificado, ainda que ele não seja um arquivo de backup.
+ `@type` – o tipo de backup.
  + `DIFFERENTIAL` – faz backup diferencial.
  + `FULL` – faz backup completo. Esse valor é o padrão.

  Um backup diferencial baseia-se no último backup completo. Para que os backups diferenciais funcionem, você não pode obter um snapshot entre o último backup completo e o backup diferencial. Se desejar um backup diferencial, mas houver um snapshot, faça outro backup completo antes de continuar com o backup diferencial.

  É possível procurar o último backup ou snapshot completo usando o seguinte exemplo de consulta SQL:

  ```
  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` – O número de arquivos em que o backup será dividido (em blocos). O número máximo é 10.
  + O backup de vários arquivos é compatível com backups completos e diferenciais.
  + Se você inserir um valor de 1 ou omitir o parâmetro, um único arquivo de backup será criado.

  Forneça o prefixo que os arquivos têm em comum e depois o sufixo com um asterisco (`*`). O asterisco pode estar em qualquer lugar na parte *file\$1name* do ARN do S3. O asterisco é substituído por uma série de strings alfanuméricas nos arquivos gerados, começando com `1-of-number_of_files`.

  Por exemplo, se os nomes de arquivo no ARN do S3 forem `backup*.bak` e você definir `@number_of_files=4`, os arquivos de backup gerados serão `backup1-of-4.bak`, `backup2-of-4.bak`, `backup3-of-4.bak` e `backup4-of-4.bak`.
  + Se algum dos nomes de arquivo já existir e `@overwrite_s3_backup_file` for 0, um erro será retornado.
  + Os backups de vários arquivos só podem ter um asterisco na parte *file\$1name* do ARN do S3.
  + Os backups de arquivo único podem ter qualquer número de asteriscos na parte *file\$1name* do ARN do S3. Os asteriscos não são removidos do nome do arquivo gerado.
+ `@block_size`: tamanho do bloco (em bytes) especificando o tamanho do bloco físico para operações de backup. Os valores válidos são 512, 1.024, 2.048, 4.096, 8.192, 16.384, 32.768 e 65.536
+ `@max_transfer_size`: o tamanho máximo de transferência indica o limite máximo do volume de dados (em bytes) transmitido por operação de E/S durante o processo de backup. Os valores válidos são múltiplos de 65536 bytes (64 KB) até 4194304 bytes (4 MB). 
+ `@buffer_count`: número total de buffers de E/S a serem usados no processo de backup.
+ `@enable_bucket_default_encryption`: um valor que indica se a configuração de criptografia padrão do bucket do S3 deve ser usada para criptografia do lado do servidor no S3. Os buckets de diretório sempre usam a configuração de criptografia padrão do bucket, independentemente dessa configuração.
  + `0`: a criptografia do lado do servidor usa o Advanced Encryption Standard (AES) de 256 bits por meio da SSE-S3.
  + `1`: a criptografia do lado do servidor usa a [criptografia padrão](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html) configurada do bucket do S3. 

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

**Example de backup diferencial**  

```
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 backup completo com criptografia do lado do cliente**  

```
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 backup de vários arquivos**  

```
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 backup diferencial de vários arquivos**  

```
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 backup de vários arquivos com criptografia**  

```
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 backup de vários arquivos com substituição do 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 backup com tamanho de bloco**  

```
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 backup de vários arquivos com `@max_transfer_size` e `@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 backup de arquivo único com o parâmetro @number\$1of\$1files**  
Este exemplo gera um arquivo de backup chamado `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 backup completo com criptografia do lado do servidor**  

```
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 de backup completo usando um ponto de acesso**  

```
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 de backup completo usando um ponto de acesso para um bucket de diretório**  

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

## Restaurar um banco de dados
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

Para fazer restaurar seu banco de dados, chame o procedimento armazenado `rds_restore_database`. O Amazon RDS cria um snapshot inicial do banco de dados após a conclusão da tarefa de restauração, e o banco de dados é aberto.

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

Os seguintes parâmetros são obrigatórios:
+ `@restore_db_name` – o nome do banco de dados a ser restaurado. Os nomes de banco de dados são exclusivos. Não é possível restaurar um banco de dados com o mesmo nome de um banco de dados já existente.
+ `@s3_arn_to_restore_from` – o ARN que indica o prefixo do Amazon S3 e os nomes dos arquivos de backup usados para restaurar o banco de dados.
  + Para o backup de um único arquivo, forneça o nome inteiro do arquivo.
  + Para um backup de vários arquivos, forneça o prefixo que os arquivos têm em comum e depois acrescente um sufixo com um asterisco (`*`).
    + Se estiver usando um bucket de diretório, o ARN deverá terminar com `/*` devido às [diferenças entre os buckets de diretório](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html).
  + Se `@s3_arn_to_restore_from` estiver vazio, a seguinte mensagem de erro será retornada: O prefixo do ARN do S3 não pode estar vazio.

O seguinte parâmetro é necessário para restaurações diferenciais, mas opcional para restaurações completas:
+ `@with_norecovery` – a cláusula de recuperação a ser usada para a operação de restauração.
  + Defina como `0` para restauração com RECOVERY. Nesse caso, o banco de dados está on-line após a restauração.
  + Defina como `1` para restauração com NORECOVERY. Nesse caso, o banco de dados permanece no estado RESTORING após a conclusão da tarefa de restauração. Com essa abordagem, você pode fazer restaurações diferenciais posteriores.
  + Para restaurações DIFFERENTIAL, especifique `0` ou `1`.
  + Para restaurações `FULL`, esse valor padrão é `0`.

Os seguintes parâmetros são opcionais:
+ `@keep_cdc`: indica se a configuração de Change Data Capture (CDC) deve ser retida no banco de dados restaurado. Defina como `1` para habilitar KEEP\$1CDC, `0` para desabilitar. O valor padrão é `0`.
+ `@data_file_volume`: especifica a letra da unidade para arquivos de dados do banco de dados. O valor padrão é `D:`.
+ `@log_file_volume`: especifica a letra da unidade para arquivos de log do banco de dados. O valor padrão é `D:`.
+ `@kms_master_key_arn`: se você criptografou o arquivo de backup, será a chave do KMS a ser usada para descriptografar o arquivo.

  Quando você especifica uma chave do KMS, é usada a criptografia no lado do cliente.
+ `@type` – o tipo de restauração. Os tipos válidos são `DIFFERENTIAL` e `FULL`. O valor padrão é `FULL`.
+ `@block_size`: tamanho do bloco (em bytes) especificando o tamanho do bloco físico para operações de backup. Os valores válidos são 512, 1.024, 2.048, 4.096, 8.192, 16.384, 32.768 e 65.536
+ `@max_transfer_size`: o tamanho máximo de transferência indica o limite máximo do volume de dados (em bytes) transmitido por operação de E/S durante o processo de backup. Os valores válidos são múltiplos de 65536 bytes (64 KB) até 4194304 bytes (4 MB). 
+ `@buffer_count`: número total de buffers de E/S a serem usados no processo de backup.

**nota**  
Para restaurações diferenciais, o banco de dados deve estar no estado RESTORING ou uma tarefa de restauração com NORECOVERY já deve existir.  
Você não pode restaurar backups diferenciais posteriores enquanto o banco de dados estiver on-line.  
Não é possível enviar uma tarefa de restauração para um banco de dados que já tenha uma tarefa de restauração pendente com RECOVERY.  
As restaurações completas com NORECOVERY e KEEP\$1CDC não são aceitas.  
Não há suporte para nenhuma restauração nativa em instâncias que têm réplicas de leitura entre regiões.  
Para configurações compatíveis, restaurar um banco de dados em uma instância multi-AZ com réplicas de leitura é semelhante a restaurar um banco de dados em uma instância multi-AZ. Você não precisa executar nenhuma ação adicional para restaurar um banco de dados em uma réplica.

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

**Example de restauração de único arquivo**  

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

**Example de restauração de vários arquivos**  
Para evitar erros ao restaurar vários arquivos, certifique-se de que todos os arquivos de backup tenham o mesmo prefixo e que nenhum outro arquivo use esse prefixo.  

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

**Example de restauração completa de banco de dados com RECOVERY**  
Os três exemplos a seguir executam a mesma tarefa, restauração completa com RECOVERY.  

```
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 restauração completa de banco de dados com criptografia**  

```
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 restauração com tamanho de bloco**  

```
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 da restauração de vários arquivos com @max\$1transfer\$1size e @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 restauração completa de banco de dados com 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;
```

**Example de restauração diferencial com 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;
```

**Example de restauração diferencial com 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;
```

**Example de restauração completa de banco de dados com RECOVERY usando um ponto de acesso**  

```
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 restauração completa de banco de dados com KEEP-CDC**  

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

## Restaurar um log
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

Para restaurar seu log, chame o procedimento armazenado `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];
```

Os seguintes parâmetros são obrigatórios:
+ `@restore_db_name` – o nome do banco de dados cujo log deve ser restaurado.
+ `@s3_arn_to_restore_from` – o ARN indicando o prefixo do Amazon S3 e o nome do arquivo de log usado para restaurar o log. O arquivo pode ter qualquer extensão, mas a extensão `.trn` costuma ser usada.

  Se `@s3_arn_to_restore_from` estiver vazio, a seguinte mensagem de erro será retornada: O prefixo do ARN do S3 não pode estar vazio.

Os seguintes parâmetros são opcionais:
+ `@keep_cdc`: indica se a configuração de Change Data Capture (CDC) deve ser retida no banco de dados restaurado. Defina como 1 para habilitar KEEP\$1CDC, 0 para desabilitar. O valor padrão é 0.
+ `@kms_master_key_arn`: se você criptografou o log, será a chave do KMS a ser usada para descriptografar o log.
+ `@with_norecovery` – a cláusula de recuperação a ser usada para a operação de restauração. Esse valor padrão é `1`.
  + Defina como `0` para restauração com RECOVERY. Nesse caso, o banco de dados está on-line após a restauração. Você não pode restaurar backups de log adicionais enquanto o banco de dados estiver on-line.
  + Defina como `1` para restauração com NORECOVERY. Nesse caso, o banco de dados permanece no estado RESTORING após a conclusão da tarefa de restauração. Com essa abordagem, você pode fazer restaurações de log posteriores.
+ `@stopat` – um valor que especifica que o banco de dados seja restaurado ao seu estado na data e hora especificadas (no formato de data e hora). Somente registros de log de transações gravados antes da data e hora especificadas são aplicados ao banco de dados.

  Se esse parâmetro não for especificado (é NULL), o log completo será restaurado.
+ `@block_size`: tamanho do bloco (em bytes) especificando o tamanho do bloco físico para operações de backup. Os valores válidos são 512, 1.024, 2.048, 4.096, 8.192, 16.384, 32.768 e 65.536
+ `@max_transfer_size`: o tamanho máximo de transferência indica o limite máximo do volume de dados (em bytes) transmitido por operação de E/S durante o processo de backup. Os valores válidos são múltiplos de 65536 bytes (64 KB) até 4194304 bytes (4 MB). 
+ `@buffer_count`: número total de buffers de E/S a serem usados no processo de backup.

**nota**  
Para restaurações de log, o banco de dados deve estar em um estado de restauração ou uma tarefa de restauração com NORECOVERY já deve existir.  
Você não pode restaurar backups de log enquanto o banco de dados estiver on-line.  
Não é possível enviar uma tarefa de restauração de log em um banco de dados que já tenha uma tarefa de restauração pendente com RECOVERY.

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

**Example de restauração de log**  

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

**Example de restauração de log com criptografia**  

```
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 restauração de log com NORECOVERY**  
Os dois exemplos a seguir executam a mesma tarefa, restauração de log com NORECOVERY.  

```
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 restauração com tamanho de bloco**  

```
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 restauração de log com 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;
```

**Example de restauração de log com cláusula 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 restauração de log com 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;
```

## Concluir uma restauração de banco de dados
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

Se a última tarefa de restauração no banco de dados tiver sido executada usando `@with_norecovery=1`, o estado do banco de dados será RESTORING. Abra esse banco de dados para operação normal usando o procedimento armazenado `rds_finish_restore`.

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

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

**nota**  
Para usar essa abordagem, o estado do banco de dados deve ser RESTORING sem nenhuma tarefa de restauração pendente.  
Para concluir a restauração do banco de dados, use o login mestre. Ou use o login do usuário que realizou a última restauração do banco de dados ou faça login com NORECOVERY.

## Como trabalhar com bancos de dados parcialmente restaurados
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### Descartando um banco de dados parcialmente restaurado
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

Para descartar um banco de dados parcialmente restaurado (deixado no estado RESTORING), use o procedimento armazenado `rds_drop_database`.

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

**nota**  
Não é possível enviar uma solicitação de banco de dados DROP para um banco de dados que já tenha uma tarefa de restauração pendente, tampouco concluir a tarefa de restauração.  
Para descartar o banco de dados, use o login mestre: Ou use o login do usuário que realizou a última restauração do banco de dados ou faça login com NORECOVERY.

### Restauração de snapshot e comportamento de recuperação em um ponto anterior no tempo para bancos de dados parcialmente restaurados
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

Os bancos de dados parcialmente restaurados na instância de origem (deixados no estado RESTORING) são descartados da instância de destino durante a restauração do snapshot e a recuperação em um ponto anterior no tempo.

## Cancelar uma tarefa
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

Para cancelar uma tarefa de backup ou restauração, chame o procedimento armazenado `rds_cancel_task`.

**nota**  
Você não pode cancelar uma tarefa FINISH\$1RESTORE.

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

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

O seguinte parâmetro é obrigatório:
+ `@task_id` – o ID da tarefa a ser cancelada. Você pode obter o ID da tarefa chamando `rds_task_status`. 

## Acompanhar o status de tarefas
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

Para acompanhar o status de suas tarefas de backup e restauração, chame o procedimento armazenado `rds_task_status`. Se você não fornecer nenhum parâmetro, o procedimento armazenado retornará o status de todas as tarefas. O status das tarefas é atualizado aproximadamente a cada dois minutos. O histórico de tarefas é mantido por 36 dias.

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

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

Os seguintes parâmetros são opcionais: 
+ `@db_name` – o nome do banco de dados do qual o status será exibido.
+ `@task_id` – o nome do ID da tarefa do qual o status será exibido.

### Exemplos
<a name="SQLServer.Procedural.Importing.Native.Tracking.Examples"></a>

**Example de listagem do status de uma tarefa específica**  

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

**Example de listagem do status de uma tarefa e banco de dados específicos**  

```
exec msdb.dbo.rds_task_status
@db_name='my_database',
@task_id=5;
```

**Example de listagem de todas as tarefas e seus status em um banco de dados específico**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example de listagem de todas as tarefas e seus status na instância atual**  

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

### Resposta
<a name="SQLServer.Procedural.Importing.Native.Tracking.Response"></a>

O procedimento armazenado `rds_task_status` retorna as colunas a seguir.


****  

| Coluna | Descrição | 
| --- | --- | 
| `task_id` |  O ID da tarefa.   | 
| `task_type` |  Tipo de tarefa, dependendo dos parâmetros de entrada, conforme segue: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) Amazon RDS cria um snapshot inicial do banco de dados após ser aberto mediante a conclusão das seguintes tarefas de restauração: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `database_name` |  O nome do banco de dados ao qual a tarefa está associada.   | 
| `% complete` |  O progresso da tarefa em valor de porcentagem.   | 
| `duration (mins)` |  A quantidade de tempo gasta na tarefa, em minutos.   | 
| `lifecycle` |  O status da tarefa. Os possíveis status são os seguintes:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `task_info` |  Informações adicionais sobre a tarefa.  No caso de erro durante o backup ou a restauração de um banco de dados, esta coluna contém as informações sobre o erro. Para obter uma lista de possíveis erros e estratégias de mitigação, consulte [Solução de problemas](SQLServer.Procedural.Importing.Native.Troubleshooting.md).   | 
| `last_updated` |  A data e hora em que o status da tarefa foi atualizado pela última vez. O status é atualizado a cada 5% de progresso.  | 
| `created_at` | A data e hora em que a tarefa foi criada. | 
| S3\$1object\$1arn | O ARN indicando o prefixo do Amazon S3 e o nome do arquivo que está sendo copiado ou restaurado. | 
| `overwrite_s3_backup_file` |  O valor do parâmetro `@overwrite_s3_backup_file` especificado ao chamar uma tarefa de backup. Para obter mais informações, consulte [Realização de backup de um banco de dados](#SQLServer.Procedural.Importing.Native.Using.Backup).  | 
| KMS\$1master\$1key\$1arn | O ARN para a chave do KMS usada para criptografia (para backup) e descriptografia (para restauração). | 
| filepath | Não aplicável a tarefas de backup e restauração nativos | 
| overwrite\$1file | Não aplicável a tarefas de backup e restauração nativos | 