Esta página descreve como usar a recuperação num determinado momento (PITR) para restaurar a instância principal do Cloud SQL.
Para saber mais acerca da PITR, consulte o artigo Recuperação pontual (PITR).
Se criar uma instância da edição Enterprise Plus do Cloud SQL, a PITR é ativada por predefinição, independentemente do método usado para a criação. Se quiser desativar a funcionalidade, tem de o fazer manualmente.
Se criar uma instância da edição Enterprise do Cloud SQL na Google Cloud consola, a PITR é ativada por predefinição. Caso contrário, se criar a instância através da CLI gcloud, do Terraform ou da API Cloud SQL Admin, a PITR está desativada por predefinição. Neste caso, se quiser ativar a funcionalidade, tem de o fazer manualmente.
Armazenamento de registos para PITR
O Cloud SQL usa o arquivo de registo antecipado (WAL) para a PITR.A 9 de janeiro de 2023, lançámos o armazenamento de registos de gravação antecipada para a PITR no Google Cloud Storage. Desde este lançamento, aplicam-se as seguintes condições:
- Todas as instâncias da edição Cloud SQL Enterprise Plus armazenam os respetivos registos de gravação antecipada no Cloud Storage. Apenas as instâncias da edição Cloud SQL Enterprise Plus que atualizar a partir da edição Cloud SQL Enterprise e que tinham a PITR ativada antes de 9 de janeiro de 2023 continuam a armazenar os respetivos registos no disco.
- As instâncias da edição Enterprise do Cloud SQL criadas com a PITR ativada antes de 9 de janeiro de 2023 continuam a armazenar os respetivos registos no disco.
- Se atualizar uma instância da edição Cloud SQL Enterprise após 15 de agosto de 2024 que armazene registos de transações para PITR no disco para a edição Cloud SQL Enterprise Plus, o processo de atualização muda a localização de armazenamento dos registos de transações usados para PITR para o Cloud Storage. Para mais informações, consulte o artigo Atualize uma instância para a edição Cloud SQL Enterprise Plus através da atualização no local.
- Todas as instâncias da edição Enterprise do Cloud SQL que criar com a PITR ativada após 9 de janeiro de 2023 armazenam registos no Cloud Storage.
Para instâncias que armazenam registos de gravação antecipada apenas no disco, pode mudar a localização de armazenamento dos registos de transações usados para PITR do disco para o Cloud Storage através da CLI gcloud ou da API Cloud SQL Admin sem incorrer em qualquer tempo de inatividade. Para mais informações, consulte o artigo Mude o armazenamento do registo de transações para o Cloud Storage.
Período de retenção de registos
Para ver se uma instância armazena os registos usados para a PITR no Cloud Storage, use Verifique a localização de armazenamento dos registos de transações usados para a PITR.
Depois de usar um cliente PostgreSQL, como o psql ou o pgAdmin, para se ligar a uma base de dados da instância, execute o seguinte comando: show archive_command. Se existirem registos de escrita antecipada
arquivados no Cloud Storage, é apresentado o ícone -async_archive -remote_storage.
Todas as outras instâncias existentes com PITR ativado continuam a ter os respetivos registos armazenados no disco.
Se os registos estiverem armazenados no Cloud Storage, o Cloud SQL carrega os registos a cada cinco minutos ou menos. Como resultado, se estiver disponível uma instância do Cloud SQL, a instância pode ser recuperada até ao momento mais recente. No entanto, se a instância não estiver disponível, o objetivo do ponto de recuperação é normalmente de cinco minutos ou menos. Use a CLI gcloud ou a API Admin para verificar a hora mais recente até à qual pode restaurar a instância e realizar a recuperação até essa hora.
Os registos de gravação antecipada usados com a PITR são eliminados automaticamente com a respetiva cópia de segurança automática associada, o que geralmente acontece após o valor definido para 
transactionLogRetentionDays ser atingido. Este é o número de dias de registos de transações que o Cloud SQL retém para a PITR. Para a edição Cloud SQL Enterprise Plus, pode definir o valor de 1 a 35 e, para a edição Cloud SQL Enterprise, pode definir o valor de 1 a 7.
Quando restaura uma cópia de segurança numa instância do Cloud SQL antes de ativar o PITR, perde os registos de gravação antecipada que permitem a operacionalidade do PITR.
Para 
instâncias com a chave de encriptação gerida pelo cliente (CMEK) ativada, os registos de escrita antecipada são encriptados com a versão mais recente da CMEK. Para fazer um restauro, todas as versões da chave que foram as mais recentes durante o número de dias que configurou para o parâmetro 
retained-transaction-log-days devem estar disponíveis.
Para instâncias com registos de gravação antecipada armazenados no Cloud Storage, os registos são armazenados na mesma região que a instância principal. Este armazenamento de registos (até 35 dias para a edição Cloud SQL Enterprise Plus e sete dias para a edição Cloud SQL Enterprise, o comprimento máximo para PITR) não gera custos adicionais por instância.
Registos e utilização do disco
Se a sua instância tiver a PITR ativada e se o tamanho dos registos de gravação antecipada no disco estiver a causar um problema na sua instância:
- Pode mudar a localização de armazenamento dos registos usados para PITR do disco para o Cloud Storage sem tempo de inatividade através da CLI gcloud ou da API Cloud SQL Admin. 
- Pode atualizar a sua instância para a edição Cloud SQL Enterprise Plus. 
- Pode aumentar o tamanho do armazenamento da instância, mas o aumento do tamanho do registo de transações antecipadas na utilização do disco pode ser temporário. 
- Recomendamos que ative o aumento automático do armazenamento para evitar problemas de armazenamento inesperados. Esta recomendação aplica-se apenas se a sua instância tiver a PITR ativada e os registos estiverem armazenados no disco. 
- Pode desativar a PITR se quiser eliminar registos e recuperar armazenamento. A diminuição dos registos de gravação antecipada usados não reduz o tamanho do disco aprovisionado para a instância. 
- Os registos são eliminados uma vez por dia e não de forma contínua. A definição da retenção de registos para dois dias significa que são retidos, pelo menos, dois dias de registos e, no máximo, três dias de registos. Recomendamos que defina o número de cópias de segurança como um valor superior ao número de dias de retenção de registos. - Por exemplo, se especificar - 7para o valor do parâmetro- transactionLogRetentionDays, para o parâmetro- backupRetentionSettings, defina o número de- retainedBackupscomo- 8.
Ative a PITR
Quando cria uma nova instância na Google Cloud consola, as cópias de segurança automáticas e a opção Ativar recuperação num ponto específico no tempo são ativadas automaticamente.O procedimento seguinte ativa a PITR numa instância principal existente.
Consola
- 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Abra o menu de mais ações  para a instância na qual quer ativar a PITR e clique em Editar. para a instância na qual quer ativar a PITR e clique em Editar.
- Em Personalize a sua instância, expanda a secção Proteção de dados.
- Selecione a caixa de verificação Ativar recuperação num ponto específico no tempo.
- No campo Dias de registos, introduza o número de dias para reter registos, de 1 a 35 para a edição Cloud SQL Enterprise Plus ou de 1 a 7 para a edição Cloud SQL Enterprise.
- Clique em Guardar.
gcloud
- Apresente a vista geral da instância:
gcloud sql instances describe INSTANCE_NAME 
- Se vir enabled: falsena secçãobackupConfiguration, ative as cópias de segurança agendadas:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM Especifique o parâmetro backup-start-timecom a hora no formato de 24 horas no fuso horário UTC±00.
- Ativar PITR:
       
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery Se estiver a ativar a PITR numa instância principal, também pode configurar o número de dias durante os quais quer reter os registos de transações adicionando o seguinte parâmetro: --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Confirme a alteração:
gcloud sql instances describe INSTANCE_NAME Na secção backupConfiguration, vêpointInTimeRecoveryEnabled: truese a alteração foi bem-sucedida.
Terraform
Para ativar a PITR, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
- 
    Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform. Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório. export GOOGLE_CLOUD_PROJECT=PROJECT_ID As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform. 
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
- 
    No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão .tf, por exemplo,main.tf. Neste tutorial, o ficheiro é denominadomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf 
- 
    Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo. Copie o exemplo de código para o ficheiro main.tfcriado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa. 
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
- 
    Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    terraform init Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção -upgrade:terraform init -upgrade 
Aplique as alterações
- 
    Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
    atualizar correspondem às suas expetativas:
    terraform plan Faça correções à configuração conforme necessário. 
- 
    Aplique a configuração do Terraform executando o seguinte comando e introduzindo yesno comando:terraform apply Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!). 
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento deletion_protectioncomofalse.deletion_protection = "false" 
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
            introduzindo yesno comando:terraform apply 
- 
             Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo yesno comando:terraform destroy 
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância principal ou de réplica de leitura que está a configurar para alta disponibilidade
- START_TIME: a hora (em horas e minutos)
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
- INSTANCE_NAME: o nome da instância principal ou de réplica de leitura que está a configurar para alta disponibilidade
- START_TIME: a hora (em horas e minutos)
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Realize a PITR numa instância indisponível
Consola
Recomendamos que recupere uma instância que não está disponível para uma zona diferente pelos seguintes motivos:
- A zona na qual a instância está configurada não está acessível. Esta instância tem um estado FAILED.
- A instância está a ser alvo de manutenção. Esta instância tem um estado MAINTENANCE.
Para recuperar uma instância indisponível, conclua os seguintes passos:
- 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Encontre a linha da instância a clonar.
- Na coluna Ações, clique no menu Mais ações.
- Clique em Criar clone.
- Na página Criar um clone, conclua as seguintes ações:
   - No campo ID da instância, atualize o ID da instância, se necessário.
- Clique em Clonar a partir de um ponto anterior no tempo.
- No campo Ponto no tempo, selecione uma data e uma hora a partir das quais quer clonar os dados. Esta ação recupera o estado da instância a partir desse momento.
- Clique em Criar clone.
 
Enquanto o clone é inicializado, regressa à página de listagem de instâncias.
gcloud
Pode querer recuperar uma instância que não está disponível para uma zona diferente porque a zona na qual a instância está configurada não está acessível.
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --point-in-time DATE_AND_TIME_STAMP \ --preferred-zone ZONE_NAME \ --preferred-secondary-zone SECONDARY_ZONE_NAME
O utilizador ou a conta de serviço que está a executar o comando gcloud sql instances clone
tem de ter a autorização cloudsql.instances.clone. Para mais informações sobre as autorizações necessárias para executar comandos da CLI gcloud, consulte a secção Autorizações do Cloud SQL.
REST v1
Pode querer recuperar uma instância que não está disponível para uma zona diferente porque a zona na qual a instância está configurada não está acessível.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- SOURCE_INSTANCE_NAME: o nome da instância da origem.
- TARGET_INSTANCE_NAME: o nome da instância de destino (clonada).
- DATE_AND_TIME_STAMP: uma indicação de data/hora para a instância de origem no fuso horário UTC e no formato RFC 3339 (por exemplo, 2012-11-15T16:19:00.094Z).
- ZONE_NAME: opcional. O nome da zona principal da instância de destino. Isto é usado para especificar uma zona principal diferente para a instância do Cloud SQL que quer clonar. Para uma instância regional, esta zona substitui a zona principal, mas a zona secundária permanece igual à da instância.
- SECONDARY_ZONE_NAME: opcional. O nome da zona secundária para a instância de destino. Isto é usado para especificar uma zona secundária diferente para a instância regional do Cloud SQL que quer clonar.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
O utilizador ou a conta de serviço que está a usar o método da API instances.clone tem de ter a autorização cloudsql.instances.clone. Para mais informações sobre as autorizações necessárias para usar métodos da API, consulte o artigo Autorizações do Cloud SQL.
REST v1beta4
Pode querer recuperar uma instância que não está disponível para uma zona diferente porque a zona na qual a instância está configurada não está acessível.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- SOURCE_INSTANCE_NAME: o nome da instância da origem.
- TARGET_INSTANCE_NAME: o nome da instância de destino (clonada).
- DATE_AND_TIME_STAMP: uma indicação de data/hora da instância de origem no
    fuso horário UTC
    e no formato RFC 3339
(por exemplo, 2012-11-15T16:19:00.094Z).
- ZONE_NAME: opcional. O nome da zona principal da instância de destino. Isto é usado para especificar uma zona primária diferente para a instância do Cloud SQL que quer clonar. Para uma instância regional, esta zona substitui a zona principal, mas a zona secundária permanece igual à da instância.
- SECONDARY_ZONE_NAME: opcional. O nome da zona secundária para a instância de destino. Isto é usado para especificar uma zona secundária diferente para a instância regional do Cloud SQL que quer clonar.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
O utilizador ou a conta de serviço que está a usar o método da API instances.clone tem de ter a autorização cloudsql.instances.clone. Para mais informações sobre as autorizações necessárias para usar métodos da API, consulte o artigo Autorizações do Cloud SQL.
Se tentar criar um clone de PITR num momento posterior ao momento recuperável mais recente, é apresentada a seguinte mensagem de erro:
The timestamp for point-in-time recovery is after the latest recovery time of Timestamp of latest recovery time. Clone the instance with a time that's earlier than this recovery time.
Obtenha o tempo de recuperação mais cedo e mais tarde
Para uma instância disponível, pode executar a PITR para qualquer data/hora no período PITR da instância. O período de PITR começa na hora de recuperação mais antiga e termina na hora de recuperação mais recente. Se a instância estiver indisponível e os registos da instância estiverem armazenados no Cloud Storage, ou se a instância tiver sido eliminada e tiver a retenção de PITR ativada, pode obter a hora de recuperação mais antiga e mais recente, e executar a PITR para qualquer data/hora nesse período. Em todos os casos, pode restaurar a instância para uma zona principal ou secundária diferente fornecendo valores para as zonas preferenciais.
gcloud
Instância indisponível
Para saber a hora mais antiga e mais recente até à qual pode recuperar uma instância do Cloud SQL que não esteja disponível, execute o seguinte comando:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância para a qual quer encontrar o tempo de recuperação mais recente.
Instância eliminada
Para saber a hora mais antiga e mais recente até à qual pode recuperar uma instância eliminada do Cloud SQL, execute o seguinte comando:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância para a qual quer encontrar o tempo de recuperação mais recente.
- SOURCE_INSTANCE_DELETION_TIMESTAMP: a indicação de tempo UTC para a hora em que a instância de origem foi eliminada, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
REST v1
Instância indisponível
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- INSTANCE_NAME: o nome da instância para a qual está a consultar o tempo de recuperação mais recente
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instância eliminada
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- INSTANCE_NAME: o nome da instância de origem para a qual está a consultar o tempo de recuperação mais recente
- SOURCE_INSTANCE_DELETION_TIME: a hora em que a instância de origem foi eliminada
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
Instância indisponível
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- INSTANCE_NAME: o nome da instância para a qual está a consultar o tempo de recuperação mais recente
Método HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instância eliminada
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto
- INSTANCE_NAME: o nome da instância de origem para a qual está a consultar o tempo de recuperação mais recente
- SOURCE_INSTANCE_DELETION_TIME: a hora em que a instância de origem foi eliminada
Método HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Efetue a PITR
Consola
- 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Abra o menu de mais ações  para a instância que quer recuperar e clique em Criar clone. para a instância que quer recuperar e clique em Criar clone.
- Opcionalmente, na página Criar um clone, atualize o ID do novo clone.
- Selecione Clonar a partir de um ponto anterior no tempo.
- Introduza uma hora de PITR.
- Clique em Criar clone.
gcloud
Crie um clone através da PITR.
Substitua o seguinte:
- SOURCE_INSTANCE_NAME - Nome da instância a partir da qual está a fazer a restauração.
- NEW_INSTANCE_NAME – Nome do clone.
- TIMESTAMP: fuso horário UTC da instância de origem no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- target-instance-id: o ID da instância de destino
- source-instance-id: o ID da instância de origem
- restore-timestamp O ponto no tempo até ao qual restaurar
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- target-instance-id: o ID da instância de destino
- source-instance-id: o ID da instância de origem
- restore-timestamp O ponto no tempo até ao qual restaurar
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Realize a PITR através do cofre de cópias de segurança
Se a sua instância do Cloud SQL estiver ativada para usar cópias de segurança melhoradas, pode fazer uma recuperação num ponto específico no tempo para a sua instância através do cofre de cópias de segurança.
Consola
- Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Abra o menu de mais ações  para a instância que quer recuperar e clique em Criar clone. para a instância que quer recuperar e clique em Criar clone.
- Selecione Clonar a partir de um ponto anterior no tempo. 
- Introduza uma hora de PITR. 
- Clique em Criar clone. 
gcloud
Para fazer uma PITR numa instância a partir do cofre de cópias de segurança, tem de encontrar o
data-source da cópia de segurança mais próxima da hora em que quer fazer a
PITR. Para encontrar a cópia de segurança, consulte o artigo
Liste todas as cópias de segurança no cofre de cópias de segurança de uma instância. Depois de identificar a cópia de segurança, execute o seguinte comando para realizar a PITR:
gcloud sql instances point-in-time-restore DATA_SOURCE
PITR_TIMESTAMP
--project=TARGET_PROJECT
Substitua o seguinte:
- DATA_SOURCE: o caminho do data-sourcepara a cópia de segurança mais próxima da data/hora da PITR para a qual quer fazer a recuperação.
- PITR_TIMESTAMP: a data/hora UTC do registo PITR da instância de origem para o qual quer restaurar a instância, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
- TARGET_PROJECT: o ID do projeto da sua instância do Cloud SQL.
REST v1
REST v1beta4
Realize a PITR numa instância eliminada
Para usar a PITR para restaurar uma instância eliminada, precisa do seguinte:
- A data/hora da PITR (timestamp) para a qual quer restaurar a sua instância
- O nome da instância de destino
- A hora em que a instância da origem foi eliminada (source-instance-deletion-time)
Só pode usar a PITR numa instância eliminada através da CLI gcloud ou da API Cloud SQL. Para mais informações, consulte o artigo Restaure uma instância eliminada através da PITR.
gcloud
Encontre a sua janela PITR
Para encontrar o período de PITR da instância eliminada, obtenha a hora de recuperação mais antiga e mais recente da instância. Pode selecionar uma data/hora em qualquer altura nesta janela para fazer uma PITR.
Encontre a hora de eliminação da instância de origem e os dias de retenção dos registos
Os valores source-instance-deletion-time e log-retention-days da instância eliminada são armazenados com as cópias de segurança retidas da sua instância após a eliminação. Para encontrar estes valores para a sua instância eliminada, consulte o artigo
Liste as cópias de segurança retidas.
Restaure com a PITR
Para restaurar a instância eliminada através da PITR, execute o seguinte comando:
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP
Substitua o seguinte:
- SOURCE_INSTANCE_NAME: o nome da instância de origem que quer restaurar.
- NEW_INSTANCE_NAME: o nome da nova instância.
- PITR_TIMESTAMP: a data/hora UTC do registo PITR da instância de origem para o qual quer restaurar a instância, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
- SOURCE_INSTANCE_DELETION_TIMESTAMP: a indicação de tempo UTC para a hora em que a instância de origem foi eliminada, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
REST v1
Encontre a sua janela PITR
Para encontrar o período de PITR da instância eliminada, obtenha a hora de recuperação mais antiga e mais recente da instância. Pode selecionar uma data/hora em qualquer altura nesta janela para fazer uma PITR.
Encontre a hora de eliminação da instância de origem e os dias de retenção dos registos
Os valores source-instance-deletion-time e log-retention-days da instância eliminada são armazenados com as cópias de segurança retidas da sua instância após a eliminação. Para encontrar estes valores para a sua instância eliminada, consulte o artigo
Liste as cópias de segurança retidas.
Restaure com a PITR
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- target-instance-id: o ID da instância de destino
- source-instance-id: o ID da instância da origem
- source-instance-deletion-time: a hora de eliminação da instância de origem
- restore-timestamp o momento específico em que quer restaurar a instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "pointInTime": "restore-timestamp"
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Encontre a sua janela PITR
Para encontrar o período de PITR da instância eliminada, obtenha a hora de recuperação mais antiga e mais recente da instância. Pode selecionar uma data/hora em qualquer altura nesta janela para fazer uma PITR.
Encontre a hora de eliminação da instância de origem e os dias de retenção dos registos
Os valores source-instance-deletion-time e log-retention-days da instância eliminada são armazenados com as cópias de segurança retidas da sua instância após a eliminação. Para encontrar estes valores para a sua instância eliminada, consulte o artigo
Liste as cópias de segurança retidas.
Restaure com a PITR
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- target-instance-id: o ID da instância de destino
- source-instance-id: o ID da instância da origem
- source-instance-deletion-time: a hora de eliminação da instância de origem
- restore-timestamp o momento específico em que quer restaurar a instância
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
Corpo JSON do pedido:
{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "pointInTime": "restore-timestamp"
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Desative a PITR
Consola
- 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Abra o menu Mais ações  para a instância que quer desativar e selecione Editar. para a instância que quer desativar e selecione Editar.
- Em Personalize a sua instância, expanda a secção Proteção de dados.
- Desmarque a opção Ativar recuperação pontual.
- Clique em Guardar.
gcloud
- Desative a recuperação pontual:
    
    gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery 
- Confirme a alteração:
    gcloud sql instances describe INSTANCE_NAME Na secção backupConfiguration, vêpointInTimeRecoveryEnabled: falsese a alteração foi bem-sucedida.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- project-id: o ID do projeto
- instance-id: o ID da instância
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Verifique a localização de armazenamento dos registos de transações usados para PITR
Pode verificar onde a sua instância do Cloud SQL está a armazenar os registos de transações usados para a PITR.
gcloud
Para determinar se a sua instância armazena registos para PITR no disco ou no Cloud Storage, use o seguinte comando:
gcloud sql instances describe INSTANCE_NAME
Substitua INSTANCE_NAME pelo nome da instância.
Para várias instâncias no mesmo projeto, também pode verificar a localização de armazenamento dos registos de transações. Para determinar a localização de várias instâncias, use o seguinte comando:
gcloud sql instances list --show-transactional-log-storage-state
Exemplo de resposta:
NAME DATABASE_VERSION LOCATION TRANSACTIONAL_LOG_STORAGE_STATE my_01 POSTGRES_12 us-central-1 DISK my_02 POSTGRES_12 us-central-1 CLOUD_STORAGE ...
Na saída do comando, o campo transactionalLogStorageState
   ou a coluna TRANSACTIONAL_LOG_STORAGE_STATE fornece
   informações sobre onde os registos
   de transações para PITR são armazenados para a instância.
   Os estados de armazenamento possíveis do registo de transações são os seguintes:
- DISK: a instância armazena os registos de transações usados para PITR no disco. Se atualizar uma instância da edição Cloud SQL Enterprise para a edição Cloud SQL Enterprise Plus, o processo de atualização muda automaticamente a localização do armazenamento de registos para o Cloud Storage. Para mais informações, consulte o artigo Atualize uma instância para a edição Cloud SQL Enterprise Plus através da atualização no local. Também pode optar por mudar a localização do armazenamento através da CLI gcloud ou da API Cloud SQL Admin sem atualizar a edição da sua instância e sem incorrer em tempo de inatividade. Para mais informações, consulte o artigo Mude o armazenamento do registo de transações para o Cloud Storage.
- SWITCHING_TO_CLOUD_STORAGE: a instância está a mudar a localização de armazenamento dos registos de transações PITR para o Cloud Storage.
- SWITCHED_TO_CLOUD_STORAGE: a instância concluiu a mudança da localização de armazenamento dos registos de transações de PITR do disco para o Cloud Storage.
- CLOUD_STORAGE: a instância armazena os registos de transações usados para PITR no Cloud Storage.
Mude o armazenamento do registo de transações para o Cloud Storage
Se a sua instância armazenar os respetivos registos de transações usados para PITR no disco, pode mudar a localização de armazenamento para o Cloud Storage sem incorrer em qualquer período de inatividade. O processo geral de mudança da localização de armazenamento demora aproximadamente o período de retenção do registo de transações (dias) a ser concluído. Assim que iniciar a mudança, os registos de transações começam a acumular-se no Cloud Storage. Durante a operação, pode verificar o estado do processo geral através do comando em Verifique a localização de armazenamento dos registos de transações usados para PITR.
Após a conclusão do processo geral de mudança para o Cloud Storage, o Cloud SQL usa registos de transações do Cloud Storage para a PITR.
gcloud
Para mudar a localização do armazenamento para o Cloud Storage, use o seguinte comando:
gcloud sql instances patch INSTANCE_NAME \ --switch-transaction-logs-to-cloud-storage
Substitua INSTANCE_NAME pelo nome da instância. A instância tem de ser uma instância principal e não uma instância de réplica. A resposta é semelhante à seguinte:
The following message is used for the patch API method.
{"name": "INSTANCE_NAME", "project": "PROJECT_NAME", "switchTransactionalLogsToCloudStorageEnabled": "true"}
Patching Cloud SQL instance...done.
Updated
[https://sqladmin.prod.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME].
   Se o comando devolver um erro, consulte o artigo Resolva problemas com a mudança para o armazenamento na nuvem para ver possíveis passos seguintes.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância. A instância tem de ser uma instância principal e não uma instância de réplica.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
   "switchTransactionLogsToCloudStorageEnabled": true
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Se o pedido devolver um erro, consulte o artigo Resolva problemas da mudança para o Google Cloud Storage para possíveis passos seguintes.
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância. A instância tem de ser uma instância principal e não uma instância de réplica.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
   "switchTransactionLogsToCloudStorageEnabled": true
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Se o pedido devolver um erro, consulte o artigo Resolva problemas da mudança para o Google Cloud Storage para possíveis passos seguintes.
Defina a retenção do registo de transações
Para definir o número de dias para reter registos de gravação antecipada:
Consola
- 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL. 
- Abra o menu Mais ações  para a instância na qual quer
      ativar o registo de transações e selecione Editar. para a instância na qual quer
      ativar o registo de transações e selecione Editar.
- Em Personalize a sua instância, expanda a secção Proteção de dados.
- Na secção Ativar recuperação num ponto específico no tempo, expanda as Opções avançadas.
- Introduza o número de dias para reter registos, de 1 a 35 para a edição Cloud SQL Enterprise Plus ou de 1 a 7 para a edição Cloud SQL Enterprise.
- Clique em Guardar.
gcloud
Edite a instância para definir o número de dias de retenção dos registos de gravação antecipada.
Substitua o seguinte:
- INSTANCE_NAME: o nome da instância na qual quer definir o registo de transações.
- DAYS_TO_RETAIN: o número de dias dos registos de transações a manter. Para a edição Cloud SQL Enterprise Plus, o intervalo válido é entre 1 e 35 dias, com um valor predefinido de 14 dias. Para a edição Cloud SQL Enterprise, o intervalo válido é entre 1 e 7 dias, com um valor predefinido de 7 dias. - Se não especificar um valor, o Cloud SQL usa o valor predefinido. Isto só é válido quando a PITR está ativada. Manter mais dias de registos de transações requer um tamanho de armazenamento maior. 
gcloud sql instances patch INSTANCE_NAME
--retained-transaction-log-days=DAYS_TO_RETAIN
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância.
- DAYS_TO_RETAIN: o número de dias para reter os registos de transações. Para a edição Cloud SQL Enterprise Plus, o intervalo válido é entre 1 e 35 dias, com um valor predefinido de 14 dias. Para a edição Cloud SQL Enterprise, o intervalo válido é entre 1 e 7 dias, com um valor predefinido de 7 dias. - Se não for especificado nenhum valor, é usado o valor predefinido. Isto só é válido quando a PITR está ativada. Manter mais dias de registos de transações requer um tamanho de armazenamento maior. 
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância.
- DAYS_TO_RETAIN: o número de dias para reter os registos de transações. Para a edição Cloud SQL Enterprise Plus, o intervalo válido é entre 1 e 35 dias, com um valor predefinido de 14 dias. Para a edição Cloud SQL Enterprise, o intervalo válido é entre 1 e 7 dias, com um valor predefinido de 7 dias. - Se não for especificado nenhum valor, é usado o valor predefinido. Isto só é válido quando a PITR está ativada. Manter mais dias de registos de transações requer um tamanho de armazenamento maior. 
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Resolver problemas
| Problema | Resolução de problemas | 
|---|---|
| 
 OU 
 | A data/hora que indicou é inválida. | 
| 
 OU 
 | A data/hora que indicou corresponde a um momento em que não foi possível encontrar cópias de segurança nem coordenadas binlog. | 
Resolva problemas na mudança para o Cloud Storage
A tabela seguinte apresenta os possíveis erros que podem ser devolvidos com o código INVALID REQUEST quando muda a localização de armazenamento dos registos de transações do disco para o armazenamento na nuvem.
| Problema | Resolução de problemas | 
|---|---|
| Switching the storage location of the transaction logs
  used for PITR is not supported for instances with database type %s. | Certifique-se de que está a executar o comando da CLI gcloud ou a fazer o pedido de API numa instância do Cloud SQL para MySQL ou Cloud SQL para PostgreSQL. A mudança da localização de armazenamento dos registos de transações através da CLI gcloud ou da API Cloud SQL Admin não é suportada para o Cloud SQL para SQL Server. | 
| PostgreSQL transactional logging is not enabled on this instance. | O PostgreSQL usa o registo antecipado como os registos de transações para a recuperação num determinado momento (PITR). Para suportar a PITR, o PostgreSQL requer que ative o registo de gravação antecipada na instância. Para mais informações sobre como ativar o registo antecipado, consulte o artigo Ative a PITR. | 
| This instance is already storing transaction logs used for PITR in
  Cloud Storage | Para validar a localização de armazenamento dos registos de transações, execute o comando em Verifique a localização de armazenamento dos registos de transações usados para PITR. | 
| The instance is already switching transaction logs used for PITR from disk
to Cloud Storage. | Aguarde pela conclusão da operação de mudança. Para verificar o estado da operação e a localização de armazenamento dos registos de transações, execute o comando em Verifique a localização de armazenamento dos registos de transações usados para PITR. | 
O que se segue?
- Configure as flags no clone