

# Restauración de una tabla de DynamoDB a un momento específico
<a name="PointInTimeRecovery.Tutorial"></a>

La recuperación a un momento dado (PITR) en Amazon DynamoDB crea backups continuos de los datos de tablas de DynamoDB. Puede restaurar tablas a un momento dado mediante la consola de DynamoDB o la AWS Command Line Interface (AWS CLI). El proceso de recuperación a un momento dado siempre restaura la información a una tabla nueva.

Si quiere utilizar la AWS CLI, primero tendrá que configurarla. Para obtener más información, consulte [Acceso a DynamoDB](AccessingDynamoDB.md).

**Topics**
+ [Restauración de una tabla de DynamoDB a un momento específico (consola)](#restoretabletopointintime_console)
+ [Restauración de una tabla a un momento específico (AWS CLI)](#restorepointintime_cli)

## Restauración de una tabla de DynamoDB a un momento específico (consola)
<a name="restoretabletopointintime_console"></a>

En el siguiente ejemplo de código, se muestra cómo utilizar la consola de DynamoDB para restaurar una tabla llamada `Music` a un momento dado.

**nota**  
En este procedimiento se presupone que ha habilitado la recuperación a un momento dado. Para habilitarla para la tabla `Music`, en la pestaña **Backups** (Copias de seguridad), en la sección **Point-in-time recovery (PITR)** (Recuperación a un momento dado), elija **Edit** (Editar) y, a continuación, marque la casilla situada junto a **Enable point-in-time-recovery** (Habilitar la recuperación a un momento dado).

**Para restaurar una tabla a un momento dado**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de DynamoDB en [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/).

1. En el panel de navegación del lado izquierdo de la consola, elija **Tablas**.

1. En la lista de tablas, elija la tabla `Music`.

1. En la pestaña **Backups** (Copias de seguridad) de la tabla `Music`, en la sección **Point-in-time recovery** (Recuperación a un momento dado), elija **Restore** (Restaurar).

1. Para el nombre de tabla nuevo, escriba **MusicMinutesAgo**.
**nota**  
Puede restaurar la tabla en la misma región de AWS o en una región distinta a donde reside la tabla de origen. También puede excluir la creación de los índices secundarios en la tabla restaurada. Además, puede especificar un modo de cifrado diferente.

1. Para confirmar el momento de restauración, establezca la fecha y hora de restauración en **Earliest** (Más temprana). A continuación, elija **Restore** (Restaurar) para iniciar el proceso de restauración.

   La tabla que se va a restaurar se muestra con el estado **Restaurando**. Una vez finalizado el proceso de restauración, el estado de la tabla `MusicMinutesAgo` cambia a **Active (Activa)**.

## Restauración de una tabla a un momento específico (AWS CLI)
<a name="restorepointintime_cli"></a>

En el siguiente procedimiento, se muestra cómo utilizar la AWS CLI para restaurar una tabla llamada `Music` a un momento dado.

**nota**  
En este procedimiento se presupone que ha habilitado la recuperación a un momento dado. Para habilitarlo en la tabla `Music`, ejecute el siguiente comando.  

```
aws dynamodb update-continuous-backups \
    --table-name Music \
    --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True
```



**Para restaurar una tabla a un momento dado**

1. Para confirmar que la recuperación a un momento dado está habilitada en `Music`, utilice el comando `describe-continuous-backups`.

   ```
   aws dynamodb describe-continuous-backups \
       --table-name Music
   ```

   Los backups continuos (se habilitan automáticamente al crear la tabla) y la recuperación a un momento dado están habilitados.

   ```
   {
       "ContinuousBackupsDescription": {
           "PointInTimeRecoveryDescription": {
               "PointInTimeRecoveryStatus": "ENABLED", 
               "EarliestRestorableDateTime": 1519257118.0, 
               "LatestRestorableDateTime": 1520018653.01
           }, 
           "ContinuousBackupsStatus": "ENABLED"
       }
   }
   ```

1. Restaure la tabla a un momento dado. En este caso, la tabla `Music` se restaura a `LatestRestorableDateTime` (hace aproximadamente 5 minutos) a la misma región de AWS.

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicMinutesAgo \
       --use-latest-restorable-time
   ```
**nota**  
 También puede restaurarla a un momento dado específico. Para ello, ejecute el comando utilizando el argumento `--restore-date-time` y especifique una marca temporal. Puede especificar cualquier momento en el periodo de recuperación configurado, que puede establecerse en cualquier valor entre 1 y 35 días. Por ejemplo, el siguiente comando restaura la tabla al a fecha y hora del valor `EarliestRestorableDateTime`.  

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicEarliestRestorableDateTime \
       --no-use-latest-restorable-time \
       --restore-date-time 1519257118.0
   ```
 Especificar el argumento `--no-use-latest-restorable-time` es opcional al restaurar datos a un momento dado específico.

1. Restaure la tabla a un momento en el tiempo con la configuración de tabla personalizada. En este caso, la tabla `Music` se restaura a como era en la fecha y hora del valor `LatestRestorableDateTime` (hace más o menos 5 minutos).

   Puede especificar un modo de cifrado distinto para la tabla restaurada, como se indica a continuación.
**nota**  
El parámetro `sse-specification-override` toma los mismos valores que el parámetro `sse-specification-override` utilizado en el comando `CreateTable`. Para obtener más información, consulte [Administración de tablas de cifrado en DynamoDB](encryption.tutorial.md).

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicMinutesAgo \
       --use-latest-restorable-time \
       --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   Puede restaurar la tabla en una región de AWS distinta de aquella en la que reside la tabla de origen.
**nota**  
El parámetro `sse-specification-override` es obligatorio para restauraciones entre regiones, pero opcional para restauraciones en la misma región que la tabla de origen.
El parámetro `source-table-arn` debe proporcionarse para restauraciones entre regiones.
Al realizar una restauración entre regiones desde la línea de comandos, debe establecer la región de AWS predeterminada en la región de destino deseada. Para obtener más información, consulte [Opciones de línea de comandos](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html) en la *Guía del usuario de AWS Command Line Interface*.

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music \
       --target-table-name MusicMinutesAgo \
       --use-latest-restorable-time \
       --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   Puede reemplazar el modo de facturación y el rendimiento aprovisionado para la tabla restaurada.

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicMinutesAgo \
       --use-latest-restorable-time \
       --billing-mode-override PAY_PER_REQUEST
   ```

   Puede excluir la creación de algunos o de todos los índices secundarios en la tabla restaurada.
**nota**  
Las restauraciones pueden ser más rápidas y más económicas si excluye la creación de algunos o de todos los índices secundarios en la nueva tabla restaurada.

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicMinutesAgo \
       --use-latest-restorable-time \
       --global-secondary-index-override '[]'
   ```

   Puede utilizar una combinación de distintas anulaciones. Por ejemplo, puede utilizar un único índice secundario global y cambiar el rendimiento aprovisionado al mismo tiempo, como se indica a continuación.

   ```
   aws dynamodb restore-table-to-point-in-time \
       --source-table-name Music \
       --target-table-name MusicMinutesAgo \
       --billing-mode-override PROVISIONED \
       --provisioned-throughput-override ReadCapacityUnits=100,WriteCapacityUnits=100 \
       --global-secondary-index-override IndexName=singers-index,KeySchema=["{AttributeName=SingerName,KeyType=HASH}"],Projection="{ProjectionType=KEYS_ONLY}",ProvisionedThroughput="{ReadCapacityUnits=50,WriteCapacityUnits=50}" \
       --sse-specification-override Enabled=true,SSEType=KMS \
       --use-latest-restorable-time
   ```

Para comprobar la restauración, use el comando `describe-table` para describir la tabla `MusicEarliestRestorableDateTime`.

```
aws dynamodb describe-table --table-name MusicEarliestRestorableDateTime
```

La tabla que se va a restaurar se muestra con el estado **Creating (Creando)** y el valor de restauración en curso **true**. Una vez finalizado el proceso de restauración, el estado de la tabla `MusicEarliestRestorableDateTime` cambia a **Active (Activa)**.

**importante**  
Mientras haya una restauración en curso, no modifique ni elimine las políticas de AWS Identity and Access Management (IAM) que le conceden a la entidad de (usuario, grupo o rol) permiso para restaurar. De lo contrario, puede ocurrir un comportamiento inesperado. Por ejemplo, suponga que elimina los permisos de escritura de una tabla mientras esta se restauraba. En ese caso, la operación subyacente `RestoreTableToPointInTime` no puede escribir ninguno de los datos restaurados en la tabla. Tenga en cuenta que las políticas de IAM que imponen restricciones a las IP de origen para obtener acceso a la tabla de restauración de destino también pueden causar problemas.  
Puede modificar o eliminar los permisos solo después de que finalice la operación de restauración.