

# Uso de la copia de seguridad y la restauración nativas
<a name="SQLServer.Procedural.Importing.Native.Using"></a>

Una vez que haya activado y configurado la copia de seguridad y la restauración nativas, puede empezar a utilizarlos. En primer lugar, conéctese a la base de datos de Microsoft SQL Server y, a continuación, llame a un procedimiento almacenado de Amazon RDS para que haga el trabajo. Para obtener instrucciones acerca de cómo conectarse a la base de datos, consulte [Conexión a la instancia de base de datos de Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md). 

Algunos procedimientos almacenados necesitan que asigne un nombre de recurso de Amazon (ARN) al bucket de Amazon S3 y al archivo. El formato del ARN es `arn:aws:s3:::bucket_name/file_name.extension`. Amazon S3 no requiere un número de cuenta ni una región de AWS en los ARN.

Si también proporciona una clave de KMS opcional, el formato para el ARN de la clave es `arn:aws:kms:region:account-id:key/key-id`. Para obtener más información, consulte [Nombres de recursos de Amazon (ARN) y espacios de nombres de servicios AWS](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Debe utilizar una clave de cifrado de KMS simétrica para cifrar las copias de seguridad. Amazon RDS no admite las claves de KMS asimétricas. Para obtener más información, consulte [Creación de claves KMS de cifrado simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) en la *Guía para desarrolladores de AWS Key Management Service*.

**nota**  
Independientemente de que utilice o no una clave de KMS, de forma predeterminada, las tareas nativas de copia de seguridad y restauración habilitan el cifrado de 256 bits del estándar de cifrado avanzado (AES) del servidor a través de SSE-S3 para los archivos cargados en S3. Al pasar `@enable_bucket_default_encryption=1` al procedimiento almacenado de copia de seguridad, se utiliza la clave de cifrado predeterminada configurada del bucket de S3.

Para obtener instrucciones acerca de cómo llamar a cada procedimiento almacenado, consulte los siguientes temas:
+ [Realización de copia de seguridad de una base de datos](#SQLServer.Procedural.Importing.Native.Using.Backup)
+ [Restauración de una base de datos](#SQLServer.Procedural.Importing.Native.Using.Restore)
+ [Restauración de un registro](#SQLServer.Procedural.Importing.Native.Restore.Log)
+ [Finalización de la restauración de una base de datos](#SQLServer.Procedural.Importing.Native.Finish.Restore)
+ [Uso de bases de datos parcialmente restauradas](#SQLServer.Procedural.Importing.Native.Partially.Restored)
+ [Cancelación de una tarea](#SQLServer.Procedural.Importing.Native.Using.Cancel)
+ [Seguimiento del estado de las tareas](#SQLServer.Procedural.Importing.Native.Tracking)

## Realización de copia de seguridad de una base de datos
<a name="SQLServer.Procedural.Importing.Native.Using.Backup"></a>

Para realizar una copia de seguridad de una base de datos, use el procedimiento almacenado `rds_backup_database`.

**nota**  
No se puede realizar una copia de seguridad de una base de datos durante el periodo de mantenimiento ni mientras Amazon RDS esté tomando una instantánea. 

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

Se requieren los siguientes parámetros:
+ `@source_db_name`: nombre de la base de datos de la que se va a realizar la copia de seguridad.
+ `@s3_arn_to_backup_to`: el ARN que indica el bucket de Amazon S3, el punto de acceso, el bucket de directorio o el punto de acceso para el bucket de directorio que se usará para la copia de seguridad, además del nombre del archivo de copia de seguridad.

  El archivo puede tener cualquier extensión, pero se suele utilizar `.bak`. Tenga en cuenta que los ARN de los puntos de acceso deben tener el formato `arn:aws:s3:us-east-1:111122223333:access-point-name/object/key`.

Los siguientes parámetros son opcionales:
+ `@kms_master_key_arn`: ARN de la clave de cifrado de KMS simétrica que se va a utilizar para cifrar el elemento.
  + No puede usar la clave de cifrado predeterminada. Si utiliza la clave predeterminada, no se realizará una copia de seguridad de la base de datos.
  +  Si no especifica un identificador de clave KMS, el archivo de copia de seguridad no se cifrará. Para obtener más información, consulte [Cifrado de recursos de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html).
  + Cuando se especifica una clave de KMS, se utiliza el cifrado del lado del cliente.
  + Amazon RDS no admite las claves de KMS asimétricas. Para obtener más información, consulte [Creación de claves KMS de cifrado simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) en la *Guía para desarrolladores de AWS Key Management Service*.
+ `@overwrite_s3_backup_file`: un valor que indica si se va a sobrescribir un archivo de copia de seguridad existente.
  + `0`: no se sobrescribe el archivo existente. Este valor es el valor predeterminado.

    Al establecer `@overwrite_s3_backup_file` en 0, se devuelve un error si ya existe el archivo.
  + `1`: se sobrescribe un archivo existente que tenga el nombre especificado, aunque no sea un archivo de copia de seguridad.
+ `@type`: el tipo de copia de seguridad.
  + `DIFFERENTIAL`: se crea una copia de seguridad diferencial.
  + `FULL`: se crea una copia de seguridad completa. Este valor es el valor predeterminado.

  Una copia de seguridad diferencial se basa en la copia de seguridad completa. Para que funcionen los backups diferenciales, no puede crear una instantánea entre el último backup completo y la copia de seguridad diferencial. Si desea una copia de seguridad diferencial, pero existe una instantánea, haga otra copia de seguridad completa antes de continuar con la copia de seguridad diferencial.

  Puede buscar la última copia de seguridad completa o instantánea con la siguiente consulta de SQL de ejemplo:

  ```
  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`: el número de archivos en los que se dividirá la copia de seguridad (fragmentada). El número máximo es 10.
  + La copia de seguridad de varios archivos es compatible tanto para copias de seguridad completas como diferenciales.
  + Si introduce un valor de 1 u omite el parámetro, se creará un único archivo de copia de seguridad.

  Proporcione el prefijo que comparten los archivos y, a continuación, agregue un asterisco () como suf (`*`). El asterisco puede estar en cualquier parte de *nombre\$1archivo* del ARN de S3. El asterisco se sustituye por una serie de cadenas alfanuméricas en los archivos generados, empezando por `1-of-number_of_files`.

  Por ejemplo, si los nombres de archivo en el ARN de S3 son `backup*.bak` y establece `@number_of_files=4`, los archivos de copia de seguridad generados son `backup1-of-4.bak`, `backup2-of-4.bak`, `backup3-of-4.bak` y `backup4-of-4.bak`.
  + Si ya existe alguno de los nombres de archivo y `@overwrite_s3_backup_file` es 0, se devuelve un error.
  + Las copias de seguridad de varios archivos solo pueden tener un asterisco en la parte *nombre\$1archivo* del ARN de S3.
  + Las copias de seguridad de un solo archivo pueden tener cualquier número de asteriscos en la parte *nombre\$1archivo* del ARN de S3. Los asteriscos no se eliminan del nombre de archivo generado.
+ `@block_size`: tamaño del bloque (en bytes) que especifica el tamaño del bloque físico para las operaciones de copia de seguridad. Los valores válidos son 512, 1024, 2048, 4096, 8192, 16 384, 32 768 y 65 536.
+ `@max_transfer_size`: el tamaño máximo de transferencia indica el límite superior del volumen de datos (en bytes) transmitidos por operación de E/S durante el proceso de copia de seguridad. Los valores válidos son múltiplos de 65 536 bytes (64 KB) hasta 4 194 304 bytes (4 MB). 
+ `@buffer_count`: número total de búferes de E/S que se utilizarán para el proceso de copia de seguridad.
+ `@enable_bucket_default_encryption`: un valor que indica si se debe utilizar la configuración de cifrado predeterminada del bucket de S3 para el cifrado del servidor en S3. Los buckets de directorios siempre usan la configuración de cifrado predeterminada del bucket, independientemente de este ajuste.
  + `0`: el cifrado del servidor utiliza el cifrado de 256 bits del estándar de cifrado avanzado (AES) a través de SSE-S3.
  + `1`: el cifrado del servidor utiliza el [cifrado predeterminado](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-encryption.html) configurado del bucket de S3. 

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

**Example de copia de seguridad 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 copia de seguridad completa con cifrado del 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 copia de seguridad de varios archivos**  

```
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 copia de seguridad diferencial de varios múltiples**  

```
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 copia de seguridad de varios archivos con cifrado**  

```
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 copia de seguridad de varios archivos con sobrescritura de 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 respaldo con tamaño de bloque**  

```
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 copia de seguridad de varios archivos con `@max_transfer_size` y `@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 copia de seguridad de un solo archivo con el parámetro @number\$1of\$1files**  
En este ejemplo se genera un archivo de copia de seguridad denominado `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 copia de seguridad completa con cifrado del 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 copia de seguridad completa mediante un punto de acceso**  

```
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 copia de seguridad completa usando un punto de acceso para un bucket de directorio**  

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

## Restauración de una base de datos
<a name="SQLServer.Procedural.Importing.Native.Using.Restore"></a>

Para restaurar la base de datos, llame al procedimiento almacenado `rds_restore_database`. Amazon RDS crea una instantánea inicial de la base de datos una vez que finalice la tarea de restauración y se abra la base de datos.

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

Se requieren los siguientes parámetros:
+ `@restore_db_name`: nombre de la base de datos que se va a restaurar. Los nombres de base de datos son únicos. No puede restaurar una base de datos si ya existe una base de datos SSAS con el mismo nombre.
+ `@s3_arn_to_restore_from` – el ARN que indica el prefijo de Amazon S3 y los nombres de los archivos de copia de seguridad utilizados para restaurar la base de datos.
  + Para una copia de seguridad de un solo archivo, proporcione todo el nombre del archivo.
  + Para una copia de seguridad de varios archivos, proporcione el prefijo que comparten los archivos y, a continuación, agregue un asterisco () como suf (`*`).
    + Si usa un depósito de directorio, el ARN debe terminar en `/*` debido a las [diferencias entre los buckets de directorio](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-differences.html).
  + Si `@s3_arn_to_restore_from` está vacío, se devolverá el siguiente mensaje de error: S3 ARN prefix cannot be empty.

El siguiente parámetro es obligatorio para las restauraciones diferenciales, pero opcional para las restauraciones completas:
+ `@with_norecovery`: la cláusula de recuperación que se utilizará para la operación de restauración.
  + Establezca esta opción en `0` para la restauración con RECOVERY. En este caso, la base de datos está online tras la restauración.
  + Establezca esta opción en `1` para la restauración con NORECOVERY. En este caso, la base de datos permanece en estado RESTORING una vez finalizada la tarea de restauración. Con este método, puede realizar restauraciones diferenciales posteriores.
  + En las restauraciones DIFFERENTIAL, especifique `0` o `1`.
  + En las restauraciones `FULL`, este valor se establece de forma predeterminada en `0`.

Los siguientes parámetros son opcionales:
+ `@keep_cdc`: indica si se debe retener la configuración de Captura de datos de cambio (CDC) en la base de datos restaurada. Configure `1` para habilitar KEEP\$1CDC, `0` para desactivarlo. El valor predeterminado es `0`.
+ `@data_file_volume`: especifica la letra de unidad para los archivos de datos de la base de datos. El valor predeterminado es `D:`.
+ `@log_file_volume`: especifica la letra de unidad para los archivos de registro de la base de datos. El valor predeterminado es `D:`.
+ `@kms_master_key_arn`: si cifró el archivo de copia de seguridad, se trata de la clave de KMS que se va a utilizar para descifrar el archivo.

  Cuando se especifica una clave de KMS, se utiliza el cifrado del lado del cliente.
+ `@type`: el tipo de restauración. Los tipos válidos son `DIFFERENTIAL` y `FULL`. El valor predeterminado es `FULL`.
+ `@block_size`: tamaño del bloque (en bytes) que especifica el tamaño del bloque físico para las operaciones de copia de seguridad. Los valores válidos son 512, 1024, 2048, 4096, 8192, 16 384, 32 768 y 65 536.
+ `@max_transfer_size`: el tamaño máximo de transferencia indica el límite superior del volumen de datos (en bytes) transmitidos por operación de E/S durante el proceso de copia de seguridad. Los valores válidos son múltiplos de 65 536 bytes (64 KB) hasta 4 194 304 bytes (4 MB). 
+ `@buffer_count`: número total de búferes de E/S que se utilizarán para el proceso de copia de seguridad.

**nota**  
En las restauraciones diferenciales, la base de datos debe tener el estado RESTORING o debe existir previamente una tarea que restaure con NORECOVERY.  
No puede restaurar copias de seguridad diferenciales posteriores mientras la base de datos esté online.  
No puede enviar una tarea de restauración para una base de datos que ya tenga una tarea de restauración pendiente con RECOVERY.  
No se admiten las restauraciones completas con NORECOVERY y KEEP\$1CDC.  
Las restauraciones nativas no son compatibles con las instancias que tienen réplicas de lectura entre regiones.  
Para las configuraciones admitidas, la restauración de una base de datos en una instancia multi-AZ con réplicas de lectura es similar a la restauración de una base de datos en una instancia multi-AZ. No es necesario realizar ninguna acción adicional para restaurar una base de datos en una réplica.

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

**Example de restauración de un solo archivo**  

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

**Example de restauración de múltiples archivos**  
Para evitar errores al restaurar varios archivos, asegúrese de que todos los archivos de copia de seguridad tienen el mismo prefijo y que ningún otro archivo lo utiliza.  

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

**Example de restauración completa de una base de datos con RECOVERY**  
En los tres ejemplos siguientes, se realiza la misma tarea, una restauración completa con 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 restauración completa de una base de datos con cifrado**  

```
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 restauración con tamaño de bloque**  

```
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 restaurar varios archivos con @max\$1transfer\$1size y @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 restauración completa de una base de datos con 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 restauración diferencial con 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 restauración diferencial con 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 restauración de la base de datos completa con RECOVERY mediante un punto de acceso**  

```
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 restauración de la base de datos completa con 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;
```

## Restauración de un registro
<a name="SQLServer.Procedural.Importing.Native.Restore.Log"></a>

Para restaurar el registro, llame al procedimiento almacenado `rds_restore_log`.

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

Se requieren los siguientes parámetros:
+ `@restore_db_name`: nombre de la base de datos cuyo registro se va a restaurar.
+ `@s3_arn_to_restore_from`: el ARN que indica el prefijo de Amazon S3 y el nombre del archivo de registro utilizado para restaurarlo. El archivo puede tener cualquier extensión, pero se suele utilizar `.trn`.

  Si `@s3_arn_to_restore_from` está vacío, se devolverá el siguiente mensaje de error: S3 ARN prefix cannot be empty.

Los siguientes parámetros son opcionales:
+ `@keep_cdc`: indica si se debe retener la configuración de Captura de datos de cambio (CDC) en la base de datos restaurada. Configure 1 para habilitar KEEP\$1CDC, 0 para desactivarlo. El valor predeterminado es 0.
+ `@kms_master_key_arn`: si cifró el registro, se trata de la clave de KMS que se va a utilizar para descifrar el registro.
+ `@with_norecovery`: la cláusula de recuperación que se utilizará para la operación de restauración. Este valor se establece de forma predeterminada en `1`.
  + Establezca esta opción en `0` para la restauración con RECOVERY. En este caso, la base de datos está online tras la restauración. No puede restaurar más copias de seguridad de registros mientras la base de datos esté online.
  + Establezca esta opción en `1` para la restauración con NORECOVERY. En este caso, la base de datos permanece en estado RESTORING una vez finalizada la tarea de restauración. Con este método, puede realizar restauraciones de registros posteriores.
+ `@stopat`: un valor que especifica que la base de datos se restaura al estado que presentaba en la fecha y la hora especificadas (en formato fechahora). Solo se aplican a la base de datos los registros de transacciones escritos antes de la fecha y la hora especificadas.

  Si no se especifica este parámetro (es NULL), se restaura el registro completo.
+ `@block_size`: tamaño del bloque (en bytes) que especifica el tamaño del bloque físico para las operaciones de copia de seguridad. Los valores válidos son 512, 1024, 2048, 4096, 8192, 16 384, 32 768 y 65 536.
+ `@max_transfer_size`: el tamaño máximo de transferencia indica el límite superior del volumen de datos (en bytes) transmitidos por operación de E/S durante el proceso de copia de seguridad. Los valores válidos son múltiplos de 65 536 bytes (64 KB) hasta 4 194 304 bytes (4 MB). 
+ `@buffer_count`: número total de búferes de E/S que se utilizarán para el proceso de copia de seguridad.

**nota**  
En las restauraciones de registros, la base de datos debe tener un estado de restauración o debe existir previamente una tarea que restaure con NORECOVERY.  
No puede restaurar copias de seguridad de registros mientras la base de datos esté online.  
No puede enviar una tarea de restauración de registros en una base de datos que ya tenga una tarea de restauración pendiente con RECOVERY.

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

**Example de restauración de registros**  

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

**Example de restauración de registros con cifrado**  

```
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 restauración de registros con NORECOVERY**  
En los dos ejemplos siguientes, se realiza la misma tarea, una restauración de registros con 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 restauración con tamaño de bloque**  

```
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 restauración de registros con 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 restauración de registros con la 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 restauración de registros con 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;
```

## Finalización de la restauración de una base de datos
<a name="SQLServer.Procedural.Importing.Native.Finish.Restore"></a>

Si la última tarea de restauración de la base de datos se ha realizado con `@with_norecovery=1`, la base de datos tiene ahora el estado RESTORING. Abra esta base de datos para el uso normal mediante el procedimiento almacenado `rds_finish_restore`.

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

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

**nota**  
Para utilizar este método, la base de datos debe tener el estado RESTORING sin ninguna tarea de restauración pendiente.  
Para finalizar la restauración de la base de datos, utilice el inicio de sesión maestro. O utilice el inicio de sesión del usuario que restauró la base de datos más recientemente o inicie sesióncon NORECOVERY.

## Uso de bases de datos parcialmente restauradas
<a name="SQLServer.Procedural.Importing.Native.Partially.Restored"></a>

### Eliminación de una base de datos parcialmente restaurada
<a name="SQLServer.Procedural.Importing.Native.Drop.Partially.Restored"></a>

Para eliminar una base de datos parcialmente restaurada (que se ha quedado en el estado RESTORING), utilice el procedimiento almacenado `rds_drop_database`.

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

**nota**  
No puede enviar una solicitud DROP para una base de datos que ya tenga una tarea de restauración pendiente o una tarea de restauración finalizada.  
Para eliminar la base de datos, utilice el inicio de sesión maestro. O utilice el inicio de sesión del usuario que restauró la base de datos más recientemente o inicie sesióncon NORECOVERY.

### Comportamiento de la restauración de instantáneas y la recuperación en un momento dado en bases de datos parcialmente restauradas
<a name="SQLServer.Procedural.Importing.Native.Snapshot.Restore"></a>

Las bases de datos parcialmente restauradas de la instancia de origen (que se ha quedado en el estado RESTORING) se eliminan de la instancia de destino durante la recuperación en un momento dado y la restauración de una instantánea.

## Cancelación de una tarea
<a name="SQLServer.Procedural.Importing.Native.Using.Cancel"></a>

Para cancelar una tarea de copia de seguridad o de restauración, llame al procedimiento almacenado `rds_cancel_task`.

**nota**  
No se puede cancelar una tarea FINISH\$1RESTORE.

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

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

El siguiente parámetro es obligatorio:
+ `@task_id`: ID de la tarea que se va a cancelar. Puede obtener el ID de la tarea llamando a `rds_task_status`. 

## Seguimiento del estado de las tareas
<a name="SQLServer.Procedural.Importing.Native.Tracking"></a>

Para realizar un seguimiento del estado de las tareas de copia de seguridad o de restauración, llame al procedimiento almacenado `rds_task_status`. Si no proporciona ningún parámetro, el procedimiento almacenado devuelve el estado de todas las tareas. El estado de las tareas se actualiza cada dos minutos aproximadamente. El historial de tareas se conserva durante 36 días.

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

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

Los siguientes parámetros son opcionales: 
+ `@db_name`: nombre de la base de datos para la que se desea mostrar el estado de una tarea.
+ `@task_id`: ID de la tarea cuyo estado se desea mostrar.

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

**Example de descripción del estado de una tarea específica**  

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

**Example de descripción del estado de una tarea y una base de datos específicas**  

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

**Example de descripción de todas las tareas y sus estados en una base de datos específica**  

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

**Example de descripción de todas las tareas y sus estados en la instancia actual**  

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

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

El procedimiento almacenado `rds_task_status` devuelve las siguientes columnas.


****  

| Columna | Descripción | 
| --- | --- | 
| `task_id` |  El ID de la tarea.   | 
| `task_type` |  El tipo de tarea que depende de los parámetros de entrada, como se indica a continuación: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html) Amazon RDS crea una instantánea inicial de la base de datos después de que esta se abra tras la finalización de las siguientes tareas de restauración: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `database_name` |  El nombre de la base de datos a la que está asociada la tarea.   | 
| `% complete` |  El valor porcentual de progreso de la tarea.   | 
| `duration (mins)` |  El tiempo empleado en la tarea, en minutos.   | 
| `lifecycle` |  El estado de la tarea. Los posibles estados son los siguientes:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html)  | 
| `task_info` |  Información adicional acerca de la tarea.  Si ocurre un error al realizar una copia de seguridad o al restaurar una base de datos, esta columna contiene información acerca del error. Para obtener una lista de posibles errores y estrategias de mitigación, consulte [Solución de problemas](SQLServer.Procedural.Importing.Native.Troubleshooting.md).   | 
| `last_updated` |  La fecha y hora en que se actualizó por última vez el estado de la tarea. El estado se actualiza cada vez que la tarea progresa un 5 %.  | 
| `created_at` | La fecha y hora en que se creó la tarea. | 
| S3\$1object\$1arn | El ARN que indica el prefijo de Amazon S3 y el nombre del archivo que se está restaurando o del que se está realizando una copia de seguridad. | 
| `overwrite_s3_backup_file` |  El valor del parámetro `@overwrite_s3_backup_file` especificado al llamar a una tarea de backup. Para obtener más información, consulte [Realización de copia de seguridad de una base de datos](#SQLServer.Procedural.Importing.Native.Using.Backup).  | 
| KMS\$1master\$1key\$1arn | El ARN de la clave de KMS que se utilizó para el cifrado (para la copia de seguridad) y el descifrado (para la restauración). | 
| filepath | No se aplica a las tareas de copia de seguridad y restauración nativas. | 
| overwrite\$1file | No se aplica a las tareas de copia de seguridad y restauración nativas. | 