Recuperação point-in-time

O IBM Cloud® Databases for MySQL oferece Recuperação point-in-time (PITR) para qualquer horário nos últimos sete dias. A implantação realiza backups incrementais continuamente e pode reproduzir transações para gerar uma nova implantação, restaurada a partir de um backup, em qualquer ponto dentro desse intervalo de 7 dias, conforme necessário.

A guia “Backups” da interface do usuário da sua implantação mantém todas as suas informações de PITR na seção “Recuperação em um momento específico ”.

As informações incluídas são o horário mais antigo de um PITR. Para descobrir a ponto de recuperação mais antigo por meio da CLI, use o comando cdb mysql earliest-pitr-timestamp.

ibmcloud cdb mysql earliest-pitr-timestamp <deployment name or CRN>

Para descobrir o ponto de recuperação mais antigo por meio da API, use o terminal /deployments/{id}/point_in_time_recovery_data para localizar o horário mais antigo do PITR.

{
    "point_in_time_recovery_data": {
        "earliest_point_in_time_recovery_time": "2019-09-09T23:16:00Z"
    }
}

Recuperação

Os backups são restaurados para uma nova implementação. Após a nova implementação concluir o fornecimento, seus dados no arquivo de backup são restaurados na nova implementação. Os backups também serão restauráveis nas contas, mas apenas usando a API e apenas se o usuário que está executando a restauração tiver acesso às contas de origem e de destino.

Por padrão, o tamanho da nova implementação é automaticamente ajustado de acordo com a alocação de disco e de memória da implementação de origem no horário do backup a partir do qual a restauração está sendo feita. Especialmente no caso do PITR, esse pode não ser o tamanho atual de sua implantação. Se for necessário ajustar os recursos alocados para a nova implementação, use os campos opcionais na IU, na CLI ou na API para redimensionar a nova implementação. Certifique-se de alocar o suficiente para os seus dados e carga de trabalho; se a implementação não receber recursos suficientes, a restauração falhará.

Embora o armazenamento e a memória sejam restaurados para corresponder à implementação de origem, as configurações específicas da nova instância não são configuradas automaticamente. Nesse caso, pode ser necessária a nova execução da configuração após uma restauração. Observe qualquer modificação de instância antes de executar a restauração (parâmetros como shared_buffers, max_connections, deadlock_timeout, archive_timeout e outros) para assegurar uma configuração precisa para a instância após a restauração ser concluída.

É fundamental que você não exclua a implantação de origem enquanto o backup estiver sendo restaurado. Aguarde até que a nova implantação esteja pronta e o backup tenha sido restaurado antes de excluir a implantação antiga. A exclusão de uma implantação também exclui seus backups; portanto, além de a restauração falhar, talvez você também não consiga recuperar o backup.

Na IU

Para iniciar um PITR, insira o horário para o qual você deseja restaurar na Hora Universal Coordenada. Se você quiser restaurar apenas até o momento mais recente disponível, selecione essa opção. Clicar em Restaurar ativa as opções para sua recuperação. Insira um nome, selecione a versão, a região e os recursos alocados para a nova implementação. Clique em Recuperar para iniciar o processo.

Se você usar Key Protect e tiver uma chave, use a CLI para recuperar. Um comando é fornecido para sua conveniência.

Na CLI

O Controlador de Recursos suporta o fornecimento de implementações de banco de dados e o fornecimento e a restauração são de responsabilidade da CLI do Controlador de Recursos. Use o comando resource service-instance-create.

Para o PITR, use os parâmetros point_in_time_recovery_time e point_in_time_recovery_deployment_id. O point_in_time_recovery_deployment_id é o ID de implementação da origem e point_in_time_recovery_time é o registro de data e hora para o qual você deseja restaurar na Hora Universal Coordenada. Se você desejar restaurar para o momento disponível mais recente, use "point_in_time_recovery_time":" ".

ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> <region> -p '{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP"}'

Um comando pré-formatado para um backup ou um PITR específico está disponível na visualização detalhada do backup.

Os parâmetros opcionais estão disponíveis ao restaurar por meio da CLI. Use-os se for necessário customizar recursos ou use uma chave do Key Protect para a criptografia BYOK na nova implementação.

ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> standard <region> <--service-endpoints SERVICE_ENDPOINTS_TYPE> -p
'{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP","key_protect_key":"KEY_PROTECT_KEY_CRN", "members_disk_allocation_mb":"DESIRED_DISK_IN_MB", "members_memory_allocation_mb":"DESIRED_MEMORY_IN_MB", "members_cpu_allocation_count":"NUMBER_OF_CORES"}'

Na API

O controlador de recursos oferece suporte ao provisionamento de implantações de bancos de dados, sendo que o provisionamento e a restauração são de responsabilidade da API do Controlador de Recursos. Conclua as etapas necessárias para usar a API do controlador do recurso antes de usá-la para restaurar a partir de um backup

Assim que você tiver todas as informações, a solicitação de criação será um POST no terminal /resource_instances.

curl -X POST   
  https://resource-controller.cloud.ibm.com/v2/resource_instances   
  -H 'Authorization: Bearer <>'   
  -H 'Content-Type: application/json'     
    -d '{
    "name": "<SERVICE_INSTANCE_NAME>",
    "target": "<region>",
    "resource_group": "<your-resource-group>",
    "resource_plan_id": "<service-id>",
    "parameters":{
      "point_in_time_recovery_time":"<TIMESTAMP>",
      "point_in_time_recovery_deployment_id":"<DEPLOYMENT_ID>"
    }
  }'

Os parâmetros name, target, resource_group e resource_plan_id são todos necessários. O target é a região na qual você deseja que a nova implementação esteja localizada, que pode ser uma região diferente da implementação de origem. As restaurações de região cruzada são suportadas, exceto a restauração de um backup de eu-de para outra região.

Para o PITR, use os parâmetros point_in_time_recovery_time e point_in_time_recovery_deployment_id. O point_in_time_recovery_deployment_id é o ID da implementação de origem e point_in_time_recovery_time é o registro de data e hora na UTC para a qual você deseja restaurar. Se você desejar restaurar para o momento disponível mais recente, use "point_in_time_recovery_time":" ".

Se for necessário ajustar os recursos ou usar uma chave do Key Protect, inclua os parâmetros opcionais key_protect_key, members_disk_allocation_mb, members_memory_allocation_mb e/ou members_cpu_allocation_count, além de seus valores, no corpo da solicitação.

Verificando o PITR

Para verificar o horário de recuperação correto, verifique os logs do banco de dados. A verificação dos logs do banco de dados requer que a Integração da criação de log seja configurada em sua implementação.

Quando você executa uma recuperação, seus dados são restaurados a partir do backup incremental mais recente. Quaisquer transações pendentes do log WAL são utilizadas para atualizar seu banco de dados até o momento em que a recuperação foi realizada. Depois que a recuperação é concluída e as transações são executadas, os logs exibem uma mensagem. Você pode verificar se os seus logs contêm a seguinte mensagem.

LOG:  last completed transaction was at log time 2019-09-03 19:40:48.997696+00

Há dois cenários nos quais a recuperação não aparece nos logs.

  1. Sua implementação tem um backup completo recente e não há atividade que precisa ser reproduzida após a realização do backup.
  2. Se você tiver inserido um horário para recuperação posterior ao horário atual ou após o ponto de recuperação point-in-time disponível mais recente.

Em ambos os casos a recuperação geralmente continua bem-sucedida, mas não haverá uma entrada nos logs para verificar o horário exato para o qual o banco de dados foi restaurado.