Pode usar a recuperação num determinado momento (PITR) para restaurar as suas instâncias primárias do Cloud SQL, quer a instância esteja ativa ou eliminada. A PITR permite-lhe restaurar a instância para um momento específico. Para uma instância eliminada, pode restaurar a instância para um ponto específico no tempo numa instância nova ou existente.
O Cloud SQL oferece as seguintes opções para restaurar a sua instância através do PITR:
Para realizar uma PITR numa instância indisponível ou eliminada, tem de encontrar o tempo de recuperação mais recente e mais antigo.
Faça uma 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.
- 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 da 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 da 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:
Faça uma 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-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 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 de
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 o artigo
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 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/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 à hora 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.
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 de 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 de uma 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 através de um PITR
Para restaurar a instância eliminada através de uma 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 através de um 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 de origem
- source-instance-deletion-time: a hora de eliminação da instância da 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 de origem
- source-instance-deletion-time: a hora de eliminação da instância da 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:
Obtenha o tempo de recuperação mais cedo e mais tarde
Para uma instância disponível, pode executar uma PITR para qualquer data/hora no período de 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"
}
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