Nesta página, descrevemos como usar a recuperação pontual (PITR, na sigla em inglês) para restaurar a instância principal do Cloud SQL.
Para saber mais sobre a PITR, consulte Recuperação pontual (PITR, na sigla em inglês):
Por padrão, a PITR é ativada quando você cria uma instância do Cloud SQL edição Enterprise Plus, independentemente se você criar a instância usando o console do Google Cloud, a gcloud CLI, o Terraform ou a API Cloud SQL Admin.
Se você criar uma instância do Cloud SQL edição Enterprise no console do Google Cloud, a PITR será ativada por padrão. Caso contrário, se você criar a instância usando a gcloud CLI, o Terraform ou a API Cloud SQL Admin, será necessário ativar a PITR manualmente.
Armazenamento de registros para PITR
O Cloud SQL usa o arquivamento de registro prévio de escrita (WAL) para PITR.Em 9 de janeiro de 2023, lançamos o armazenamento de registros prévios de escrita para PITR no Cloud Storage. Desde este lançamento, estas condições se aplicam:
- Todas as instâncias da edição Cloud SQL Enterprise Plus armazenam os registros prévios de escrita no Cloud Storage. Apenas as instâncias da edição Cloud SQL Enterprise Plus que você fez upgrade da edição Cloud SQL Enterprise e ativou a PITR antes de 9 de janeiro de 2023 continuam armazenando registros no disco.
- As instâncias da edição Cloud SQL Enterprise criadas com a PITR ativada antes de 9 de janeiro de 2023 continuam armazenando os registros no disco.
- Se você fizer upgrade de uma instância do Cloud SQL Enterprise após 15 de agosto de 2024 que armazena registros de transação para PITR em disco para a edição Cloud SQL Enterprise Plus, o processo de upgrade vai mudar o local de armazenamento dos registros de transações usados para a PITR. para o Cloud Storage. Para mais informações, consulte Fazer upgrade de uma instância para o Cloud SQL Enterprise Plus usando o upgrade no local.
- Todas as instâncias da edição Cloud SQL Enterprise criadas com a PITR ativada após 9 de janeiro de 2023 armazenam registros no Cloud Storage.
Para instâncias que armazenam registros prévios de escrita apenas no disco, é possível mudar o local de armazenamento dos registros de transação usados para PITR do disco para o Cloud Storage usando a gcloud CLI ou a API Cloud SQL Admin sem incorrer em tempo de inatividade. Para mais informações, consulte Mudar o armazenamento de registros de transações para o Cloud Storage.
Período de armazenamento de registros
Para ver se uma instância armazena os registros usados para a PITR no Cloud Storage, use Verificar o local de armazenamento dos registros de transações usados para a PITR.
Depois de usar um cliente PostgreSQL, como psql
ou pgAdmin
, para se conectar a um banco de dados da instância, execute o comando show archive_command
: Se algum registro prévio de escrita for arquivado no Cloud Storage, você verá -async_archive -remote_storage
.
Todas as outras instâncias atuais com a PITR ativada continuam com os registros armazenados no disco.
Se os registros estiverem armazenados no Cloud Storage, serão enviados pelo Cloud SQL a cada cinco minutos ou menos. Como resultado, se uma instância do Cloud SQL estiver disponível, ela poderá ser recuperada para o horário mais recente. No entanto, se a instância não estiver disponível, o objetivo do ponto de recuperação normalmente será de cinco minutos ou menos. Use a CLI gcloud ou a API Admin para verificar o momento mais recente em que é possível restaurar a instância e executar a recuperação para esse momento.
Os registros de gravação antecipada usados com a PITR são excluídos
automaticamente com o backup automático
associado, o que geralmente acontece após o valor definido para
transactionLogRetentionDays
for atendida. Esse é o número de dias de registros de transação que o Cloud SQL
mantém para a PITR. Para a edição Cloud SQL Enterprise Plus, o número de dias de registros de transação retidos pode ser definido de 1 a 35 e, para a edição Cloud SQL Enterprise, o valor pode ser definido de 1 a 7.
Ao restaurar um backup em uma instância do Cloud SQL antes de ativar a PITR, você perde os registros de gravação antecipada que permitem a operabilidade da PITR.
Para instâncias ativadas por chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês), os registros
de gravação antecipada são criptografados usando a versão mais recente da CMEK. Para realizar uma restauração,
todas as versões da chave que foram as mais recentes para o número de dias que você
configurou para o parâmetro retained-transaction-log-days
estarão disponíveis.
Para as instâncias que têm registros de gravação antecipada no Cloud Storage, os registros são armazenados na mesma região da instância principal. Esse armazenamento de registros (até 35 dias para o Cloud SQL Enterprise Plus e sete dias para o Cloud SQL Enterprise, a duração máxima para a PITR) não gera custo extra por instância.
Registros e uso do disco
Se a instância tiver a PITR ativada e o tamanho dos registros prévios de escrita no disco estiver causando um problema na instância:
É possível mudar o local de armazenamento dos registros usados para PITR do disco para o Cloud Storage sem tempo de inatividade usando a gcloud CLI ou a API Cloud SQL Admin.
É possível fazer upgrade da sua instância para o Cloud SQL Enterprise Plus.
É possível aumentar o tamanho do armazenamento da instância, mas o aumento no tamanho do registro write-ahead no uso do disco pode ser temporário.
Recomendamos que você ative o aumento automático de armazenamento para evitar problemas de armazenamento inesperados. Essa recomendação se aplica somente se a instância tiver a PITR ativada e seus registros estiverem armazenados no disco.
Desative a PITR se quiser excluir registros e recuperar o armazenamento. A redução dos registros de gravação antecipada usados não diminui o tamanho do disco provisionado para a instância.
Os registros são limpados uma vez por dia, e não continuamente. Configurar a retenção de registros para dois dias significa que no mínimo dois dias de registros, e no máximo três, serão mantidos. Recomendamos definir o número de backups para um a mais do que os dias de retenção de registro.
Por exemplo, se você especificar
7
para o valor do parâmetrotransactionLogRetentionDays
, defina o número deretainedBackups
como8
para o parâmetrobackupRetentionSettings
.
Ativar a PITR
Quando você cria uma instância no Console do Google Cloud, as opções Backups automatizados e Ativar a recuperação pontual são ativadas automaticamente.O procedimento a seguir ativa a PITR em uma instância principal existente.
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Abra o menu de mais ações da instância em que você quer ativar a PITR e clique em Editar.
- Em Personalizar sua instância, expanda a seção Proteção de dados.
- Marque a caixa de seleção Ativar recuperação pontual.
- No campo Dias de registros, digite o número de dias em que os registros serão retidos, de 1 a 35 para a edição do Cloud SQL Enterprise Plus ou de 1 a 7 para a edição do Cloud SQL Enterprise.
- Clique em Salvar.
gcloud
- Exiba a visão geral da instância:
gcloud sql instances describe INSTANCE_NAME
- Se você vir
enabled: false
na seçãobackupConfiguration
, ative os backups programados:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Especifique o parâmetro
backup-start-time
usando o horário de 24 horas no fuso horário UTC±00. - Ative a PITR:
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Se você estiver ativando a PITR em uma instância principal, também poderá configurar o número de dias para manter os registros de transações adicionando o seguinte parâmetro:
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Confirme a mudança:
gcloud sql instances describe INSTANCE_NAME
Quando a operação é realizada, é exibido
pointInTimeRecoveryEnabled: true
na seçãobackupConfiguration
.
Terraform
Para ativar a PITR, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
REST v1
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância primária ou de réplica de leitura que você está configurando 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 da solicitação:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
REST v1beta4
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
- INSTANCE_NAME: o nome da instância primária ou de réplica de leitura que você está configurando 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 da solicitação:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Executar PITR em uma instância indisponível
Console
Talvez você queira recuperar uma instância que não está disponível em uma zona diferente por estes motivos:
- A zona em que a instância está configurada não é acessível. Esta instância tem um estado
FAILED
. - A instância está em manutenção. Esta instância tem um estado
MAINTENANCE
.
Para recuperar uma instância indisponível, siga estas etapas:
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Encontre a linha da instância a ser clonada.
- Na coluna Ações, clique no menu Mais ações.
- Clique em Criar clone.
- Na página Criar um clone, faça o seguinte:
- No campo ID da instância, atualize o ID da instância, se necessário.
- Clique em Clone de um momento anterior.
- No campo Ponto no tempo, selecione a data e a hora para clonar os dados. Isso recupera o estado da instância a partir desse momento.
- Clique em Criar clone.
Enquanto o clone é inicializado, você retorna à página de listagem de instâncias.
gcloud
Talvez você queira recuperar uma instância que não está disponível para uma zona diferente porque a zona em que 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
A conta de serviço ou o usuário que está executando o comando gcloud sql instances clone
precisa ter a permissão cloudsql.instances.clone
. Para mais informações sobre as permissões necessárias para executar os comandos da CLI gcloud, consulte Permissões do Cloud SQL.
REST v1
Talvez você queira recuperar uma instância que não está disponível para uma zona diferente porque a zona em que a instância está configurada não está acessível.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- SOURCE_INSTANCE_NAME: o nome da instância de origem.
- TARGET_INSTANCE_NAME: o nome da instância de destino (clonada).
- DATE_AND_TIME_STAMP: um carimbo de data e 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. Isso é usado para especificar uma zona principal diferente para a instância do Cloud SQL que você quer clonar. Para uma instância regional, esta zona substitui a zona principal, mas a zona secundária permanece igual à instância.
- SECONDARY_ZONE_NAME: opcional. O nome da zona secundária da instância de destino. Isso é usado para especificar uma zona secundária diferente para a instância regional do Cloud SQL que você quer clonar.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON da solicitação:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
O usuário ou a conta de serviço que está usando o método instances.clone
da API precisa ter a permissão cloudsql.instances.clone
. Para mais informações sobre as permissões necessárias para usar os métodos da API, consulte Permissões do Cloud SQL.
REST v1beta4
Talvez você queira recuperar uma instância que não está disponível para uma zona diferente porque a zona em que a instância está configurada não está acessível.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- SOURCE_INSTANCE_NAME: o nome da instância de origem.
- TARGET_INSTANCE_NAME: o nome da instância de destino (clonada).
- DATE_AND_TIME_STAMP: um carimbo de data e 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. Isso é usado para especificar uma zona principal diferente para a instância do Cloud SQL que você quer clonar. Para uma instância regional, esta zona substitui a zona principal, mas a zona secundária permanece igual à instância.
- SECONDARY_ZONE_NAME: opcional. O nome da zona secundária da instância de destino. Isso é usado para especificar uma zona secundária diferente para a instância regional do Cloud SQL que você quer clonar.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON da solicitação:
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
O usuário ou a conta de serviço que está usando o método instances.clone
da API precisa ter a permissão cloudsql.instances.clone
. Para mais informações sobre as permissões necessárias para usar os métodos da API, consulte Permissões do Cloud SQL.
Confira o tempo de recuperação mais recente
Para uma instância disponível, execute a PITR para o horário mais recente. Se a instância não estiver disponível e os registros da instância estiverem armazenados no Cloud Storage, recupere o tempo de recuperação mais recente e execute a PITR para esse momento. Em ambos os casos, é possível restaurar a instância em uma zona principal ou secundária diferente fornecendo valores para as zonas preferenciais.
gcloud
Confira o momento mais recente em que é possível recuperar uma instância do Cloud SQL que não está disponível.
Substitua INSTANCE_NAME pelo nome da instância que você está consultando.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
REST v1
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto;
- INSTANCE_NAME: o nome da instância que você está consultando para saber 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 a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
REST v1beta4
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto;
- INSTANCE_NAME: o nome da instância que você está consultando para saber 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 a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
Execute o PITR
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Abra o menu "Mais ações" para a instância a ser recuperada e clique em Criar clone.
- Na página Criar um clone, é possível atualizar o ID do novo clone.
- Selecione Clonar de um momento anterior.
- Insira um horário de PITR.
- Clique em Criar clone.
gcloud
Criar um clone usando a PITR.
Substitua:
- SOURCE_INSTANCE_NAME: nome da instância de que você está restaurando;
- NEW_INSTANCE_NAME: nome do clone;
- TIMESTAMP: fuso horário UTC para a 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 os dados da solicitação, 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 momento em que a restauração será interrompida.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
Corpo JSON da solicitação:
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
REST v1beta4
Antes de usar os dados da solicitação, 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 momento em que a restauração será interrompida.
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
Corpo JSON da solicitação:
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Desativar PITR
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Abra o menu "Mais ações" para a instância a ser desativada e selecione Editar.
- Em Personalizar sua instância, expanda a seção Proteção de dados.
- Desmarque a opção Ativar recuperação pontual.
- Clique em Salvar.
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
Quando a operação é realizada, é exibido
pointInTimeRecoveryEnabled: false
na seçãobackupConfiguration
.
REST v1
Antes de usar os dados da solicitação, 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 da solicitação:
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
REST v1beta4
Antes de usar os dados da solicitação, 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 da solicitação:
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Verificar o local de armazenamento dos registros de transações usados para a PITR
É possível verificar onde sua instância do Cloud SQL está armazenando os registros de transações usados para a PITR.
gcloud
Para determinar se a instância armazena registros para a 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.
Também é possível verificar o local de armazenamento dos registros de transações de várias instâncias no mesmo projeto. Para determinar o local 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 registros de
transações da PITR são armazenados na instância.
Os estados de armazenamento de registros de transações possíveis são estes:
DISK
: a instância armazena os registros de transação usados para a PITR no disco. Se você fizer upgrade de uma instância do Cloud SQL Enterprise para o Cloud SQL Enterprise Plus, o processo de upgrade vai mudar o local de armazenamento dos registros automaticamente para o Cloud Storage. Para mais informações, consulte Fazer upgrade de uma instância para o Cloud SQL Enterprise Plus usando o upgrade no local. Você também pode mudar o local de armazenamento usando a gcloud CLI ou a API Cloud SQL Admin sem fazer upgrade da edição da instância e sem gerar inatividade. Para mais informações, consulte Mudar o armazenamento dos registros de transações para o Cloud Storage.SWITCHING_TO_CLOUD_STORAGE
: a instância está alternando o local de armazenamento dos registros de transação da PITR para o Cloud Storage.SWITCHED_TO_CLOUD_STORAGE
: a instância concluiu a mudança do local de armazenamento dos registros de transação PITR do disco para o Cloud Storage.CLOUD_STORAGE
: a instância armazena os registros de transações usados para a PITR no Cloud Storage.
Mudar o armazenamento dos registros de transações para o Cloud Storage
Se a instância armazenar os registros de transações usados para a PITR no disco, você poderá mudar o local de armazenamento para o Cloud Storage sem gerar inatividade. O processo geral de mudança do local de armazenamento leva aproximadamente o período de retenção do registro de transações (dias) para ser concluído. Assim que você iniciar a mudança, os registros de transações vão começar a ser acumulados no Cloud Storage. Durante a operação, é possível verificar o status do processo geral usando o comando em Verificar o local de armazenamento dos registros de transações usados para a PITR.
Depois que o processo geral de mudança para o Cloud Storage for concluído, o Cloud SQL vai usar registros de transação do Cloud Storage para a PITR.
gcloud
Para mudar o local de armazenamento para o Cloud Storage, use este comando:
gcloud sql instances patch INSTANCE_NAME \ --switch-transaction-logs-to-cloud-storage
Substitua INSTANCE_NAME pelo nome da instância. A instância precisa ser principal e não uma réplica. A resposta é semelhante a:
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 retornar um erro, consulte Solução de problemas de mudança para o Cloud Storage para saber as próximas etapas.
REST v1
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância A instância precisa ser principal e não uma réplica.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "switchTransactionLogsToCloudStorageEnabled": true }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Se a solicitação retornar um erro, consulte Solução de problemas de mudança para o Cloud Storage para saber as próximas etapas.
REST v1beta4
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância A instância precisa ser principal e não uma réplica.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON da solicitação:
{ "switchTransactionLogsToCloudStorageEnabled": true }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Se a solicitação retornar um erro, consulte Resolver problemas de mudança para o Cloud Storage para saber as próximas etapas.
Definir a retenção do registro de transações
Para definir o número de dias em que os registros de gravação antecipada serão guardados:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Abra o menu "Mais ações" para a instância em que você quer definir o registro das transações e selecione Editar.
- Em Personalizar sua instância, expanda a seção Proteção de dados.
- Na seção Ativar recuperação pontual, expanda Opções avançadas.
- Digite o número de dias em que os registros serão retidos, de 1 a 35 para a edição do Cloud SQL Enterprise Plus ou de 1 a 7 para a edição do Cloud SQL Enterprise.
- Clique em Salvar.
gcloud
Edite a instância para definir o número de dias de retenção dos registros em tempo de gravação:
Substitua:
- INSTANCE_NAME: o nome da instância em que você quer definir o registro de transações.
DAYS_TO_RETAIN: o número de dias de registros de transações a serem mantidos. Para o Cloud SQL edição Enterprise Plus, o intervalo válido é de 1 a 35 dias, com um padrão de 14 dias. Para o Cloud SQL edição Enterprise, o intervalo válido é de um a sete dias, com um padrão de sete dias.
Se nenhum valor for especificado, o valor padrão será usado. Isso é válido apenas quando a PITR está ativada. A especificação de mais dias de registros 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 os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
DAYS_TO_RETAIN: o número de dias de retenção dos registros de transação. Para o Cloud SQL Enterprise Plus, o intervalo válido é de 1 a 35 dias, com um padrão de 14 dias. Para o Cloud SQL Enterprise, o intervalo válido é de um a sete dias, com um padrão de sete dias.
Se nenhum valor for especificado, o valor padrão será usado. Isso é válido apenas quando a PITR está ativada. A especificação de uma retenção de mais dias dos registros 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 da solicitação:
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "DAYS_TO_RETAIN" } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
REST v1beta4
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
DAYS_TO_RETAIN: o número de dias de retenção dos registros de transação. Para o Cloud SQL Enterprise Plus, o intervalo válido é de 1 a 35 dias, com um padrão de 14 dias. Para o Cloud SQL Enterprise, o intervalo válido é de um a sete dias, com um padrão de sete dias.
Se nenhum valor for especificado, o valor padrão será usado. Isso é válido apenas quando a PITR está ativada. A especificação de uma retenção de mais dias dos registros 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 da solicitação:
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "DAYS_TO_RETAIN" } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Resolver problemas
Problema | Solução de problemas |
---|---|
OU
|
O carimbo de data/hora fornecido é inválido. |
OU
|
O carimbo de data/hora que você forneceu refere-se a um momento em que não foram encontrados backups ou coordenadas binlog. |
Resolver problemas com a mudança para o Cloud Storage
A tabela a seguir lista os possíveis erros que podem ser retornados com o
código INVALID REQUEST
ao mudar o local de armazenamento dos registros de transações do disco
para o Cloud Storage.
Problema | Solução de problemas |
---|---|
Switching the storage location of the transaction logs
used for PITR is not supported for instances with database type %s.
|
Verifique se você está executando o comando da gcloud CLI ou fazendo a solicitação da API em uma instância do Cloud SQL para MySQL ou do Cloud SQL para PostgreSQL. Não é possível mudar o local de armazenamento dos registros de transações usando a CLI gcloud ou a API Cloud SQL Admin no Cloud SQL para SQL Server. |
PostgreSQL transactional logging is not enabled on this instance.
|
O PostgreSQL usa o registro prévio de escrita como os registros de transação para recuperação pontual (PITR). Para oferecer suporte à PITR, o PostgreSQL exige que você ative a geração de registros prévios de escrita na instância. Para mais informações sobre como ativar o registro prévio de escrita, consulte Ativar a PITR. |
This instance is already storing transaction logs used for PITR in
Cloud Storage
|
Para verificar o local de armazenamento dos registros de transações, execute o comando em Verificar o local de armazenamento dos registros de transações usados para a PITR. |
The instance is already switching transaction logs used for PITR from disk
to Cloud Storage.
|
Aguarde a conclusão da outra operação. Para verificar o status da operação e o local de armazenamento dos registros de transações, execute o comando contido em Verificar o local de armazenamento dos registros de transações usados para a PITR. |
A seguir
- Configurar sinalizações no clone.