Restaurar uma tabela do DynamoDB para um ponto no tempo - Amazon DynamoDB

Restaurar uma tabela do DynamoDB para um ponto no tempo

A recuperação em um ponto anterior no tempo (PITR) do Amazon DynamoDB fornece backups contínuos dos dados de tabelas do DynamoDB. Você pode restaurar uma tabela para um ponto no tempo usando o console do DynamoDB ou a AWS Command Line Interface (AWS CLI). O processo de recuperação em um ponto anterior no tempo sempre restaura uma nova tabela.

Se desejar usar a AWS CLI, você precisará configurá-la primeiro. Para ter mais informações, consulte Acessar o DynamoDB.

Restaurar uma tabela do DynamoDB table para um ponto no tempo (console)

O exemplo a seguir demonstra como usar o console do DynamoDB para restaurar uma tabela existente chamada Music para um ponto no tempo.

nota

Esse procedimento supõe que você habilitou a recuperação em um ponto anterior no tempo. Para habilitá-lo para a tabela de Music, na guia de Backups, na seção de Recuperação em um ponto anterior no tempo (Point-in-time recovery – PITR), escolha Edit (Editar) e depois marque a caixa de seleção ao lado de Enable point-in-time recovery (Habilitar recuperação em um ponto anterior no tempo).

Para restaurar uma tabela para um ponto no tempo
  1. Faça login no AWS Management Console e abra o console do DynamoDB em https://console.aws.amazon.com/dynamodb/.

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

  3. Na lista de tabelas, escolha a tabela Music.

  4. Na guia Backups da tabela de Music, na seção Recuperação em um ponto anterior no tempo (Point-in-time recovery – PITR), escolha Restore (Restaurar).

  5. Insira MusicMinutesAgo como o novo nome da tabela.

    nota

    Você pode restaurar a tabela para a mesma região da AWS ou para uma região diferente daquela na qual a tabela de origem reside. Você também pode excluir a criação de índices secundários na tabela restaurada. Além disso, você pode especificar um modo de criptografia diferente.

  6. Para confirmar a hora restaurável, defina a data e hora da restauração como Earliest (Mais antigo). Em seguida, escolha Restore (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 MusicMinutesAgo mudará para Active (Ativo).

Restaurar uma tabela para um ponto no tempo (AWS CLI)

O seguinte procedimento mostra como usar a AWS CLI para restaurar uma tabela existente chamada Music para um ponto no tempo.

nota

Esse procedimento supõe que você habilitou a recuperação em um ponto anterior no tempo. Para habilitar esse recurso para a tabela Music, execute o seguinte comando.

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

Para restaurar uma tabela para um ponto no tempo
  1. Confirme se a recuperação point-in-time está habilitada para a tabela Music usando o comando describe-continuous-backups.

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

    Os backups contínuos (habilitados automaticamente na criação da tabela) e a recuperação point-in-time estão habilitados.

    { "ContinuousBackupsDescription": { "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "ENABLED", "EarliestRestorableDateTime": 1519257118.0, "LatestRestorableDateTime": 1520018653.01 }, "ContinuousBackupsStatus": "ENABLED" } }
  2. Restaure a tabela para um ponto. Nesse caso, a tabela Music é restaurada para LatestRestorableDateTime (aproximadamente 5 minutos atrás) para a mesma região da AWS.

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time
    nota

    Você também restaurar para um ponto específico. Para isso, execute o comando usando o argumento --restore-date-time e especifique um timestamp. Você pode especificar qualquer ponto durante os últimos 35 dias. Por exemplo, o comando a seguir restaura a tabela para o 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 o argumento --no-use-latest-restorable-time é opcional durante a restauração para um ponto específico.

  3. Restaure a tabela para um momento determinado com configurações de tabela personalizadas. Nesse caso, a tabela Music é restaurada para o LatestRestorableDateTime (há aproximadamente cinco minutos).

    Você pode especificar um modo de criptografia diferente para a tabela restaurada, conforme mostrado a seguir.

    nota

    O parâmetro sse-specification-override assume os mesmos valores do parâmetro sse-specification-override usado no comando CreateTable. Para saber mais, consulte Gerenciar tabelas criptografadas no DynamoDB.

    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

    Você pode restaurar a tabela para outra região da AWS diferente daquela na qual a tabela de origem reside.

    nota
    • O parâmetro sse-specification-override é obrigatório para restaurações entre regiões, mas opcional para restaurações para a mesma região da tabela de origem.

    • O parâmetro source-table-arn deve ser fornecido para restaurações entre regiões.

    • Ao realizar uma restauração entre regiões na linha de comando, você deve definir a região padrão da AWS como a região de destino desejada. Para saber mais, consulte Opções de linha de comando no Guia do usuário do 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

    Você pode substituir o modo de faturamento e o throughput provisionado para a tabela 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

    Você pode excluir a criação de alguns ou todos os índices secundários na tabela restaurada.

    nota

    As restaurações poderão ser mais rápidas e econômicas se você excluir a criação de alguns ou todos os índices secundários na nova tabela 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 '[]'

    Você pode usar uma combinação de diferentes substituições. Por exemplo, você pode usar um único índice secundário global e alterar o throughput provisionado ao mesmo tempo, da seguinte forma.

    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 verificar a restauração, use o comando describe-table para descrever a tabela MusicEarliestRestorableDateTime.

aws dynamodb describe-table --table-name MusicEarliestRestorableDateTime

A tabela que está sendo restaurada é mostrada com o status Creating (Em criação) e restauração em andamento como true (verdadeiro). Quando o processo de restauração for concluído, o status da tabela MusicEarliestRestorableDateTime mudará para Active (Ativo).

Importante

Enquanto uma restauração estiver em andamento, não modifique nem exclua as políticas do AWS Identity and Access Management (IAM) que concedem à entidade do IAM (por exemplo, usuário, grupo ou função) permissão para realizar a restauração. Do contrário, pode haver um comportamento inesperado. Por exemplo, suponha que você tenha removido as permissões de gravação de uma tabela enquanto essa tabela estava sendo restaurada. Nesse caso, a operação RestoreTableToPointInTime subjacente não conseguirá gravar na tabela nenhum dos dados restaurados. Da mesma forma, as políticas do IAM que envolvem restrições de IP de origem para acessar a tabela de restauração de destino podem causar problemas.

Você pode modificar ou excluir permissões somente depois que a operação de restauração é concluída.