É possível usar a recuperação pontual (PITR) para restaurar as instâncias principais do Cloud SQL, estejam elas ativas ou excluídas. Com a PITR, é possível restaurar a instância para um momento específico. Para uma instância excluída, é possível restaurar a instância para um ponto específico no tempo em uma instância nova ou atual.
O Cloud SQL oferece as seguintes opções para restaurar sua instância usando a PITR:
Para executar uma PITR em uma instância indisponível ou excluída, encontre o tempo de recuperação mais recente e mais antigo.
Executar uma PITR
Console
-
No console 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.
- Selecione Todos os bancos de dados ou especifique um nome de banco de dados.
Se você especificar um nome de banco de dados, apenas um poderá ser selecionado. Por padrão, a PITR é para todos os bancos de dados. - 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.
Na solicitação JSON, você tem a opção de especificar até um nome de banco de dados específico como
o seguinte: "databaseNames": "my-database"
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ê vai 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.
Na solicitação JSON, você tem a opção de especificar até um nome de banco de dados específico como
o seguinte: "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 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ê vai receber uma resposta JSON semelhante a esta:
Executar uma PITR usando o backup vault
Se a instância do Cloud SQL estiver ativada para usar backups avançados, será possível realizar a recuperação pontual da instância usando o cofre de backup.
Console
No console 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.Selecione Clonar de um momento anterior.
Insira um horário de PITR.
Clique em Criar clone.
gcloud
Para realizar uma PITR em uma instância do cofre de backup, encontre o
data-source do backup mais próximo do horário em que você quer realizar
a PITR. Para encontrar o backup, consulte
Listar todos os backups no cofre de backup de uma instância. Depois de identificar o backup, execute o seguinte comando para fazer a PITR:
gcloud sql instances point-in-time-restore DATA_SOURCE
PITR_TIMESTAMP
--project=TARGET_PROJECT
Substitua:
- DATA_SOURCE: o caminho do
data-sourcepara o backup mais próximo do carimbo de data/hora da PITR que você quer recuperar. - PITR_TIMESTAMP: o carimbo de data/hora UTC do registro de PITR da instância de origem que você quer restaurar, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
- TARGET_PROJECT: o ID do projeto da instância do Cloud SQL.
REST v1
REST v1beta4
Executar PITR em uma instância excluída
Para usar a PITR e restaurar uma instância excluída, você precisa:
- o carimbo de data/hora da PITR (
timestamp) em que você quer restaurar a instância - o nome da instância de destino
- o horário em que a instância de origem foi excluída (
source-instance-deletion-time)
Você pode usar PITR em uma instância excluída usando apenas CLI gcloud ou a API do Cloud SQL. Para mais informações, consulte Restaurar uma instância excluída usando uma PITR.
gcloud
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, extraia o horário de recuperação mais antigo e mais recente da instância. Você pode selecionar um carimbo de data/hora a qualquer momento nessa janela para fazer uma PITR.
Encontrar o horário de exclusão da instância de origem e os dias de retenção de registros
O source-instance-deletion-time e o log-retention-days da instância excluída são armazenados com os backups retidos após a exclusão. Para encontrar esses valores da sua instância excluída, consulte
Listar backups retidos.
Restaurar usando uma PITR
Para restaurar a instância excluída usando 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:
SOURCE_INSTANCE_NAME: o nome da instância de origem que você quer restaurar.NEW_INSTANCE_NAME: o nome da nova instância .PITR_TIMESTAMP: o carimbo de data/hora UTC do registro de PITR da instância de origem que você quer restaurar, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.SOURCE_INSTANCE_DELETION_TIMESTAMP: o carimbo de data/hora UTC do momento em que a instância de origem foi excluída, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
REST v1
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, extraia o horário de recuperação mais antigo e mais recente da instância. Você pode selecionar um carimbo de data/hora a qualquer momento nessa janela para fazer uma PITR.
Encontrar o horário de exclusão da instância de origem e os dias de retenção de registros
O source-instance-deletion-time e o log-retention-days da instância excluída são armazenados com os backups retidos após a exclusão. Para encontrar esses valores da sua instância excluída, consulte
Listar backups retidos.
Restaurar usando uma PITR
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- 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: o horário de exclusão da instância de origem
- restore-timestamp: o momento em que você 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 da solicitação:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
Para enviar a solicitação, expanda uma destas opções:
Você vai receber uma resposta JSON semelhante a esta:
REST v1beta4
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, extraia o horário de recuperação mais antigo e mais recente da instância. Você pode selecionar qualquer carimbo de data/hora nessa janela para realizar a PITR.
Encontrar o horário de exclusão da instância de origem e os dias de retenção de registros
O source-instance-deletion-time e o log-retention-days da
instância excluída são armazenados com os backups retidos da instância após a
exclusão. Para encontrar esses valores da sua instância excluída, consulte
Listar backups retidos.
Restaurar usando a PITR
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- 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: o horário de exclusão da instância de origem
- restore-timestamp: o momento em que você quer restaurar a instância
Na solicitação JSON, você tem a opção de especificar até um nome de banco de dados específico como
o seguinte: "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 da solicitação:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
Para enviar a solicitação, expanda uma destas opções:
Você vai receber uma resposta JSON semelhante a esta:
Conferir o tempo de recuperação mais antigo e mais recente
Para uma instância disponível, é possível executar uma PITR para qualquer carimbo de data/hora na janela de PITR da instância. A janela da PITR começa no horário de recuperação mais antigo e termina no mais recente. Se a instância não estiver disponível e os registros dela estiverem armazenados no Cloud Storage, ou se a instância foi excluída e tinha a retenção de PITR ativada, recupere o tempo de recuperação mais antigo e mais recente e execute a PITR para qualquer carimbo de data/hora nessa janela. Em todos os casos, é possível restaurar a instância em uma zona principal ou secundária diferente fornecendo valores para as zonas preferenciais.
gcloud
Instância indisponível
Para conferir o momento mais antigo e mais recente em que é possível recuperar uma instância do Cloud SQL que não está disponível, execute o seguinte comando:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
Substitua:
INSTANCE_NAME: o nome da instância para a qual você quer encontrar o tempo de recuperação mais recente.
Instância excluída
Para conferir o momento mais antigo e mais recente em que é possível recuperar uma instância excluída 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:
INSTANCE_NAME: o nome da instância para a qual você quer encontrar o tempo de recuperação mais recente.SOURCE_INSTANCE_DELETION_TIMESTAMP: o carimbo de data/hora UTC do momento em que a instância de origem foi excluída, no formato RFC 3339. Por exemplo, 2012-11-15T16:19:00.094Z.
REST v1
Instância indisponível
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",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instância excluída
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 de origem que você está consultando para saber o tempo de recuperação mais recente
- SOURCE_INSTANCE_DELETION_TIME: o horário em que a instância de origem foi excluída.
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",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
Instância indisponível
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",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Instância excluída
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 de origem que você está consultando para saber o tempo de recuperação mais recente
- SOURCE_INSTANCE_DELETION_TIME: o horário em que a instância de origem foi excluída.
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",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
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. |
A seguir
- Configurar sinalizações no clone.