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.
Tópicos
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
Faça login no AWS Management Console e abra o console do DynamoDB em https://console.aws.amazon.com/dynamodb/
. -
No painel de navegação, no lado esquerdo do console, selecione Tables (Tabelas).
-
Na lista de tabelas, escolha a tabela
Music
. -
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). -
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.
-
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
-
Confirme se a recuperação point-in-time está habilitada para a tabela
Music
usando o comandodescribe-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" } }
-
Restaure a tabela para um ponto. Nesse caso, a tabela
Music
é restaurada paraLatestRestorableDateTime
(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 oEarliestRestorableDateTime
.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. -
Restaure a tabela para um momento determinado com configurações de tabela personalizadas. Nesse caso, a tabela
Music
é restaurada para oLatestRestorableDateTime
(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âmetrosse-specification-override
usado no comandoCreateTable
. 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.