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, a PITR é desativada por predefinição, independentemente do método usado para a criação. Neste caso, se quiser ativar a funcionalidade, tem de o fazer manualmente.
Armazenamento de registos para PITR
A 31 de maio de 2024, lançámos o armazenamento de registos de transações para PITR no Cloud Storage. Desde este lançamento, aplicam-se as seguintes condições:As instâncias do Cloud SQL com PITR ativado criadas antes desta data costumavam armazenar registos de transações PITR no disco. Os registos de transações PITR para a maioria destas instâncias foram migrados para o Cloud Storage. Para validar a localização dos registos de uma instância específica, consulte o artigo Verifique a localização de armazenamento dos registos de transações usados para PITR.
Todas as instâncias do Cloud SQL criadas com a PITR ativada a partir desta data armazenam estes registos no Cloud Storage.
Os registos de transações são atualizados regularmente e usam espaço de armazenamento. O Cloud SQL
elimina automaticamente os registos de transações com as respetivas cópias de segurança automáticas associadas.
Isto acontece depois de o valor definido para o parâmetrotransactionLogRetentionDays
ser atingido. Para mais informações acerca deste parâmetro, consulte o artigo
Registos e utilização do disco.
Para instâncias que armazenam registos de transações apenas no disco, pode configurar o Cloud SQL para armazenar os registos no Cloud Storage desativando primeiro e, em seguida, reativando a PITR. Não é possível mover registos do Cloud Storage de volta para o disco.
Para garantir que os registos da sua instância são armazenados no Cloud Storage em vez de no disco, conclua as seguintes ações:
- Verifique se a sua instância armazena registos no disco ou no Cloud Storage.
- Verifique a arquitetura de rede da instância. Se a instância estiver na arquitetura de rede antiga, atualize-a para a nova arquitetura de rede.
- Se o tamanho dos registos no disco estiver a causar problemas de desempenho na sua instância, desative a PITR e volte a ativá-la.
Registos e utilização do disco
Para instâncias com registos de transações 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.
O Cloud SQL gera registos de transações regularmente e estes registos usam espaço de armazenamento. O Cloud SQL elimina automaticamente os registos de transações com as respetivas cópias de segurança automáticas associadas. Isto acontece depois de o valor que definiu para o parâmetro transactionLogRetentionDays
ser atingido. Este parâmetro especifica o número de dias que o Cloud SQL retém os registos de transações. Para a edição Cloud SQL Enterprise Plus, pode definir o número de dias de registos de transações retidos de 1 a 35 e, para a edição Cloud SQL Enterprise, pode definir este valor de 1 a 7.
Se não for definido um valor para este parâmetro, o período de retenção predefinido do registo de transações é de 14 dias para instâncias da edição Cloud SQL Enterprise Plus e de 7 dias para instâncias da edição Cloud SQL Enterprise. Para mais informações sobre como aplicar esta definição, consulte o artigo Defina a retenção do registo de transações.
Para saber a quantidade de disco que os registos de transações usam, verifique a métrica bytes_used_by_data_type
para a instância. O valor do tipo de dados devolve o tamanho dos registos de transações no disco. Para instâncias que armazenam registos de transações usados para PITR no disco, o Cloud SQL elimina dados do disco diariamente para cumprir a definição de PITR.transactionLogRetentionDays
Para mais informações, consulte o artigo
Retenção de cópias de segurança automáticas.
Limitações
As seguintes limitações estão associadas à sua instância com a PITR ativada e ao tamanho dos registos de transações no disco, o que causa um problema para a sua instância:
- Pode desativar a PITR e reativá-la para garantir que o Cloud SQL armazena registos no Cloud Storage na mesma região que a instância. No entanto, o Cloud SQL elimina todos os registos existentes, pelo que não pode executar uma operação de PITR antes da hora em que reativou a PITR.
- Pode aumentar o tamanho do armazenamento da instância, mas o aumento do tamanho do registo de transações no disco pode ser temporário.
- Para evitar problemas de armazenamento inesperados, recomendamos que ative os aumentos automáticos de armazenamento. Esta recomendação aplica-se apenas se a sua instância tiver a PITR ativada e os registos estiverem armazenados no disco.
- Se quiser eliminar registos e recuperar armazenamento, pode desativar a PITR sem a reativar. No entanto, a diminuição do armazenamento usado 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. Definir a 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
7
para o valor do parâmetrotransactionLogRetentionDays
, para o parâmetrobackupRetentionSettings
, defina o número deretainedBackups
como8
.
Para mais informações sobre a PITR, consulte o artigo Recuperação pontual (PITR).
Modelo de recuperação da base de dados para PITR
Se ativar a PITR numa instância, o Cloud SQL define automaticamente o modelo de recuperação das bases de dados existentes e subsequentes para o modelo de recuperação completo.
Para mais informações sobre os modelos de recuperação do SQL Server, consulte a documentação da Microsoft.
Ative a PITR
Quando cria uma nova instância na Google Cloud consola, a definição Cópias de segurança automatizadas é ativada 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.
- 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: false
na 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-time
com 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: true
se a alteração foi bem-sucedida.
Terraform
Para ativar a PITR, use um recurso do Terraform.
Ative a PITR para a edição Cloud SQL Enterprise Plus
Use o seguinte exemplo de código do Terraform para criar uma instância da edição Enterprise Plus do Cloud SQL com a PITR ativada:Ative a PITR para a edição Enterprise do Cloud SQL
Use o seguinte exemplo de código do Terraform para criar uma instância da edição Enterprise do Cloud SQL com a PITR ativada: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.tf
criado 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
yes
no 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_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no 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:
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.
- 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.
- Selecione Todas as bases de dados ou especifique um nome de base de dados.
Se especificar um nome de base de dados, só pode selecionar um. Por predefinição, a PITR destina-se a todas as bases de dados. - 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
No pedido JSON, pode especificar opcionalmente até um nome de base de dados específico da seguinte forma: "databaseNames": "my-database"
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
No pedido JSON, pode especificar opcionalmente até um nome de base de dados específico da seguinte forma: "databaseNames": "my-database"
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.
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-source
para 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
No pedido JSON, pode especificar opcionalmente até um nome de base de dados específico da seguinte forma: "databaseNames": "my-database"
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.
- 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: false
se 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 SQLSERVER_2019_STANDARD us-central-1 DISK my_02 SQLSERVER_2019_STANDARD 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.CLOUD_STORAGE
: a instância armazena os registos de transações usados para PITR no Cloud Storage.
Defina a retenção do registo de transações
Para definir o número de dias para reter registos de transações:
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.
- 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 transações.
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. |
O que se segue?
- Configure as flags no clone