

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Use a point-in-time recuperação no Amazon Keyspaces
<a name="PointInTimeRecovery_Tutorial"></a>

Com o Amazon Keyspaces (para Apache Cassandra), você pode restaurar tabelas em um momento específico usando Point-in-Time Restore (PITR). A PITR permite que você restaure uma tabela para um estado anterior nos últimos 35 dias, fornecendo recursos de proteção e recuperação de dados. Esse recurso é valioso em casos como exclusão acidental de dados, erros de aplicativos ou para teste. Você pode recuperar dados de forma rápida e eficiente, minimizando o tempo de inatividade e a perda de dados. As seções a seguir orientam você pelo processo de restauração de tabelas usando PITR no Amazon Keyspaces, garantindo a integridade dos dados e a continuidade dos negócios. 

**Topics**
+ [Configurar permissões do IAM da tabela de restauração para o PITR do Amazon Keyspaces](howitworks_restore_permissions.md)
+ [Configurar PITR para uma tabela no Amazon Keyspaces](configure_PITR.md)
+ [Desativar a PITR para uma tabela do Amazon Keyspaces](disable_PITR.md)
+ [Restaurar uma tabela do backup para um determinado ponto no tempo no Amazon Keyspaces](restoretabletopointintime.md)
+ [Restaurar uma tabela excluída usando a PITR do Amazon Keyspaces](restoredeleted.md)

# Configurar permissões do IAM da tabela de restauração para o PITR do Amazon Keyspaces
<a name="howitworks_restore_permissions"></a>

Esta seção resume como configurar permissões para que um diretor AWS Identity and Access Management (IAM) restaure tabelas do Amazon Keyspaces. No IAM, a política gerenciada pela AWS `AmazonKeyspacesFullAccess` inclui as permissões para restaurar tabelas do Amazon Keyspaces. Para implementar uma política personalizada com o mínimo de permissões necessárias, considere os requisitos descritos na próxima seção.

Para restaurar uma tabela com sucesso, a entidade principal do IAM precisa das seguintes permissões mínimas:
+ `cassandra:Restore`: a ação de restauração é necessária para que a tabela de destino seja restaurada.
+ `cassandra:Select`: a ação de seleção é necessária para ler a tabela de origem.
+ `cassandra:TagResource`: a ação da tag é opcional e necessária somente se a operação de restauração adicionar tags.

Este é um exemplo de política que concede permissões mínimas necessárias a um usuário para restaurar tabelas no espaço de chaves `mykeyspace`.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "cassandra:Restore",
            "cassandra:Select"
         ],
         "Resource":[
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/*",
            "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
         ]
      }
   ]
}
```

Permissões adicionais para restaurar uma tabela podem ser necessárias com base em outros atributos selecionados. Por exemplo, se a tabela de origem for criptografada em repouso com uma chave gerenciada pelo cliente, o Amazon Keyspaces deverá ter permissões para acessar a chave gerenciada pelo cliente da tabela de origem para restaurar a tabela com sucesso. Para obter mais informações, consulte [Restauração PITR de tabelas criptografadas](PointInTimeRecovery_HowItWorks.md#howitworks_backup_encryption). 

Se você estiver usando políticas do IAM com [chaves de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) para restringir o tráfego de entrada para fontes específicas, você deve garantir que o Amazon Keyspaces tenha permissão para realizar uma operação de restauração em nome da sua entidade principal. Você deve adicionar uma chave de condição `aws:ViaAWSService` à sua política do IAM se ela restringir o tráfego de entrada a qualquer uma das seguintes opções:
+ Endpoints da VPC com `aws:SourceVpce`
+ Intervalos de IP com `aws:SourceIp`
+ VPCs com `aws:SourceVpc`

A chave de condição `aws:ViaAWSService` permite acesso quando qualquer serviço da AWS faz uma solicitação usando as credenciais da entidade principal. Para obter mais informações, consulte [Elementos de política JSON do IAM: chave de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*. 

Veja a seguir um exemplo de uma política que restringe o tráfego de origem a um endereço IP específico e permite que o Amazon Keyspaces restaure uma tabela em nome da entidade principal.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CassandraAccessForCustomIp",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"false"
            },
            "ForAnyValue:IpAddress":{
               "aws:SourceIp":[
                  "123.45.167.89"
               ]
            }
         }
      },
      {
         "Sid":"CassandraAccessForAwsService",
         "Effect":"Allow",
         "Action":"cassandra:*",
         "Resource":"*",
         "Condition":{
            "Bool":{
               "aws:ViaAWSService":"true"
            }
         }
      }
   ]
}
```

 Para ver um exemplo de política usando a chave de condição global `aws:ViaAWSService`, consulte [Políticas de endpoint de VPC e recuperação do Amazon point-in-time Keyspaces (PITR)](vpc-endpoints.md#VPC_PITR_restore).

# Configurar PITR para uma tabela no Amazon Keyspaces
<a name="configure_PITR"></a>

Você pode configurar uma tabela no Amazon Keyspaces para operações de backup e restauração usando PITR com o console, o CQL e a AWS CLI.

Ao criar uma nova tabela usando CQL ou o AWS CLI, você deve habilitar explicitamente a PITR na instrução create table. Quando você cria uma tabela usando o console, a PITR será ativada por padrão.

Para saber como restaurar uma tabela, consulte [Restaurar uma tabela do backup para um determinado ponto no tempo no Amazon Keyspaces](restoretabletopointintime.md).

------
#### [ Console ]

**Configurar a PITR para uma tabela usando o console**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. No painel de navegação, selecione **Tabelas** e selecione a tabela que você deseja editar.

1. Na guia **Backups**, selecione **Editar**.

1. Na seção **Editar configurações point-in-time de recuperação**, selecione **Ativar Point-in-time recuperação**.

1. Escolha **Salvar alterações**.

------
#### [ Cassandra Query Language (CQL) ]

**Configurar a PITR para uma tabela usando CQL**

1. Você pode gerenciar as configurações de PITR para tabelas usando a propriedade customizada `point_in_time_recovery`.

   Para ativar a PITR ao criar uma tabela, você deve definir o status `point_in_time_recovery` para `enabled`. Você pode usar o seguinte comando CQL como exemplo.

   ```
   CREATE TABLE "my_keyspace1"."my_table1"(
   	"id" int,
   	"name" ascii,
   	"date" timestamp,
   	PRIMARY KEY("id"))
   WITH CUSTOM_PROPERTIES = {
   	'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 
   	'point_in_time_recovery':{'status':'enabled'}
   }
   ```
**nota**  
Se nenhuma propriedade personalizada de point-in-time recuperação for especificada, a point-in-time recuperação será desativada por padrão.

1. Para habilitar o PITR para uma tabela existente usando CQL, execute o comando CQL a seguir.

   ```
   ALTER TABLE mykeyspace.mytable
   WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}
   ```

------
#### [ CLI ]

**Configure o PITR para uma tabela usando o AWS CLI**

1. Você pode gerenciar as configurações de PITR para tabelas usando a API `UpdateTable`.

   Para ativar a PITR ao criar uma tabela, você deve incluir `point-in-time-recovery 'status=ENABLED'` no comando de criação de tabela. Você pode usar o seguinte comando AWS CLI como exemplo. O comando foi dividido em linhas separadas para facilitar a leitura.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```
**nota**  
Se nenhum valor point-in-time de recuperação for especificado, a point-in-time recuperação será desativada por padrão.

1. Para confirmar a configuração point-in-time de recuperação de uma tabela, você pode usar o AWS CLI comando a seguir.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. Para habilitar o PITR para uma tabela existente usando o AWS CLI, execute o comando a seguir.

   ```
   aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=ENABLED'
   ```

------

# Desativar a PITR para uma tabela do Amazon Keyspaces
<a name="disable_PITR"></a>

Você pode desativar a PITR para uma tabela do Amazon Keyspaces a qualquer momento usando o console, o CQL ou a AWS CLI. 

**Importante**  
Desabilitar o PITR exclui seu histórico de backup imediatamente, mesmo se você reabilitar a PITR na tabela em 35 dias.

Para saber como restaurar uma tabela, consulte [Restaurar uma tabela do backup para um determinado ponto no tempo no Amazon Keyspaces](restoretabletopointintime.md).

------
#### [ Console ]

**Desativar a PITR para uma tabela usando o console**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. No painel de navegação, selecione **Tabelas** e selecione a tabela que você deseja editar.

1. Na guia **Backups**, selecione **Editar**.

1. Na seção **Editar configurações point-in-time de recuperação**, desmarque a caixa de seleção **Ativar Point-in-time recuperação**.

1. Escolha **Salvar alterações**.

------
#### [ Cassandra Query Language (CQL) ]

**Desativar a PITR para uma tabela usando CQL**
+ Para desabilitar a PITR para uma tabela existente, execute o comando CQL a seguir.

  ```
  ALTER TABLE mykeyspace.mytable
  WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
  ```

------
#### [ CLI ]

**Desative a PITR para uma tabela usando a AWS CLI**
+ Para desativar a PITR para uma tabela existente, execute o AWS CLI comando a seguir.

  ```
  aws keyspaces update-table --keyspace-name 'myKeyspace' --table-name 'myTable' --point-in-time-recovery 'status=DISABLED'
  ```

------

# Restaurar uma tabela do backup para um determinado ponto no tempo no Amazon Keyspaces
<a name="restoretabletopointintime"></a>

A seção a seguir demonstra como restaurar uma tabela existente do Amazon Keyspaces para um ponto específico no tempo. 

**nota**  
Esse procedimento pressupõe que a tabela que você está usando tenha sido configurada com point-in-time recuperação. Para habilitar a PITR para uma tabela, consulte [Configurar PITR para uma tabela no Amazon Keyspaces](configure_PITR.md). 

**Importante**  
 Enquanto uma restauração estiver em andamento, não modifique nem exclua as políticas AWS Identity and Access Management (IAM) que concedem permissão ao principal do IAM (por exemplo, usuário, grupo ou função) para realizar a restauração. Do contrário, pode haver um comportamento inesperado. Por exemplo, se você remover permissões de gravação de uma tabela enquanto ela estiver sendo restaurada, a operação `RestoreTableToPointInTime` subjacente não conseguirá gravar na tabela nenhum dos dados restaurados.   
Você pode modificar ou excluir permissões somente depois que a operação de restauração é concluída.

------
#### [ Console ]

**Restaurar uma tabela para um ponto específico no tempo usando o console**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon Keyspaces em casahttps://console.aws.amazon.com/keyspaces/.](https://console.aws.amazon.com/keyspaces/home)

1. No painel de navegação, no lado esquerdo do console, selecione **Tables** (Tabelas).

1. Na lista de tabelas, escolha aquela que você quer restaurar. 

1. Na guia **Backups** da tabela, na seção **Point-in-time Recuperação**, escolha **Restaurar**.

1. Para o nome da nova tabela, insira um nome para a tabela restaurada, por exemplo **mytable\$1restored**. 

1. Para definir o ponto no tempo da operação de restauração, você pode escolher entre duas opções:
   + Selecione a hora **Mais antiga** pré-configurada.
   + Selecione **Especificar data e hora** e insira a data e a hora para as quais você deseja restaurar a nova tabela.
**nota**  
É possível fazer a restauração para qualquer ponto no tempo dentro da hora **Mais antiga** e da hora atual. O Amazon Keyspaces restaura os dados da tabela para o estado com base na data e na hora selecionadas (dia:hora:minuto:segundo). 

1. Selecione **Restaurar** para iniciar o processo de restauração. 

   A tabela que está sendo restaurada é mostrada com o status **Restoring (Em restauração)**. Quando o processo de restauração for concluído, o status da tabela restaurada mudará para **Ativo**.

------
#### [ Cassandra Query Language (CQL) ]

**Restaurar uma tabela para um ponto no tempo usando CQL**

1. Você pode restaurar uma tabela ativa para uma hora point-in-time entre `earliest_restorable_timestamp` e a hora atual. O padrão é a hora atual.

   Para confirmar se a point-in-time recuperação está habilitada para a tabela, consulte o `system_schema_mcs.tables` conforme mostrado neste exemplo.

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
   ```

   Point-in-time a recuperação é ativada conforme mostrado no exemplo de saída a seguir. 

   ```
   custom_properties
   -----------------
   {
     ...,
       "point_in_time_recovery": {
       "earliest_restorable_timestamp":"2020-06-30T19:19:21.175Z"
       "status":"enabled"
     }
   }
   ```

1. 
   + Restaure a tabela para a hora atual. Quando você omite a cláusula `WITH restore_timestamp = ...`, é usado o carimbo de data/hora atual. 

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable;
     ```
   + Você também pode restaurar para um ponto específico no tempo, definido por um `restore_timestamp` no formato ISO 8601. Você pode especificar qualquer ponto durante os últimos 35 dias. Por exemplo, o comando a seguir restaura a tabela para o `EarliestRestorableDateTime`. 

     ```
     RESTORE TABLE mykeyspace.mytable_restored
     FROM TABLE mykeyspace.mytable
     WITH restore_timestamp = '2020-06-30T19:19:21.175Z';
     ```

     Para obter uma descrição completa da sintaxe, consulte [RESTAURAR TABELA](cql.ddl.table.md#cql.ddl.table.restore) na referência de linguagem.

1. Para verificar se a restauração da tabela foi bem-sucedida, consulte o `system_schema_mcs.tables` para confirmar o status da tabela.

   ```
   SELECT status
   FROM system_schema_mcs.tables
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable_restored'
   ```

   A consulta mostra o a saída a seguir.

   ```
   status
   ------
   RESTORING
   ```

   A tabela que está sendo restaurada é mostrada com o status **Restoring (Em restauração)**. Quando o processo de restauração for concluído, o status da tabela mudará para **Active (Ativo)**.

------
#### [ CLI ]

**Restaure uma tabela em um determinado momento usando o AWS CLI**

1. Criar uma tabela simples chamada `myTable` que tem a PITR ativada. O comando foi dividido em linhas separadas para facilitar a leitura.

   ```
   aws keyspaces create-table --keyspace-name 'myKeyspace' --table-name 'myTable' 
               --schema-definition 'allColumns=[{name=id,type=int},{name=name,type=text},{name=date,type=timestamp}],partitionKeys=[{name=id}]' 
               --point-in-time-recovery 'status=ENABLED'
   ```

1. Confirme as propriedades da nova tabela e revise `earliestRestorableTimestamp` para o PITR.

   ```
   aws keyspaces get-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

   A saída deste comando retorna o seguinte.

   ```
   {
       "keyspaceName": "myKeyspace",
       "tableName": "myTable",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable",
       "creationTimestamp": "2022-06-20T14:34:57.049000-07:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "id",
                   "type": "int"
               },
               {
                   "name": "date",
                   "type": "timestamp"
               },
               {
                   "name": "name",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "id"
               }
           ],
           "clusteringKeys": [],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2022-06-20T14:34:57.049000-07:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "ENABLED",
           "earliestRestorableTimestamp": "2022-06-20T14:35:13.693000-07:00"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       }
   }
   ```

1. 
   + Para restaurar uma tabela para um ponto no tempo, especifique um `restore_timestamp` no formato ISO 8601. É possível escolher qualquer ponto no tempo durante os últimos 35 dias em intervalos de um segundo. Por exemplo, o comando a seguir restaura a tabela para o `EarliestRestorableDateTime`. 

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored' --restore-timestamp "2022-06-20 21:35:14.693"
     ```

     A saída desse comando retornará o ARN da tabela restaurada.

     ```
     {
         "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored"
     }
     ```
   + Para restaurar a tabela para a hora atual, você pode omitir o parâmetro `restore-timestamp`.

     ```
     aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored1'"
     ```

------

# Restaurar uma tabela excluída usando a PITR do Amazon Keyspaces
<a name="restoredeleted"></a>

O procedimento a seguir mostra como restaurar uma tabela excluída do backup para o momento da exclusão. Você pode fazer isso usando CQL ou o. AWS CLI

**nota**  
Esse procedimento pressupõe que o PITR foi ativado na tabela excluída.



------
#### [ Cassandra Query Language (CQL) ]

**Restaurar uma tabela excluída usando o CQL**

1. Para confirmar se a point-in-time recuperação está ativada para uma tabela excluída, consulte a tabela do sistema. Somente tabelas com point-in-time recuperação ativada são mostradas.

   ```
   SELECT custom_properties
   FROM system_schema_mcs.tables_history 
   WHERE keyspace_name = 'mykeyspace' AND table_name = 'my_table';
   ```

   A consulta mostra o a saída a seguir.

   ```
   custom_properties
   ------------------
   {
       ...,
      "point_in_time_recovery":{
         "restorable_until_time":"2020-08-04T00:48:58.381Z",
         "status":"enabled"
      }
   }
   ```

1. Restaure a tabela até o momento da exclusão com o exemplo de instrução a seguir.

   ```
   RESTORE TABLE mykeyspace.mytable_restored
   FROM TABLE mykeyspace.mytable;
   ```

------
#### [ CLI ]

**Restaurar uma tabela excluída usando o AWS CLI**

1. Excluir uma tabela criada anteriormente com a PITR habilitada. O comando a seguir é um exemplo.

   ```
   aws keyspaces delete-table --keyspace-name 'myKeyspace' --table-name 'myTable'
   ```

1. Restaure a tabela excluída até o momento da exclusão com o comando a seguir.

   ```
   aws keyspaces restore-table --source-keyspace-name 'myKeyspace' --source-table-name 'myTable' --target-keyspace-name 'myKeyspace' --target-table-name 'myTable_restored2'
   ```

   A saída desse comando retornará o ARN da tabela restaurada.

   ```
   {
       "restoredTableARN": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/myKeyspace/table/myTable_restored2"
   }
   ```

------