É 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 fazer uma recuperação pontual 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 backup vault, 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 backup vault 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 CLI gcloud ou a API do Cloud SQL. Para mais informações, consulte Restaurar uma instância excluída usando uma PITR.
gcloud
Backup padrão
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, acesse 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 exclusão da instância de origem
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 uma lista de todos os backups disponíveis da instância excluída, consulte
Listar backups retidos.
Depois de identificar o backup que você quer usar, use o comando
gcloud sql backups describe
para receber o source-instance-deletion-time.
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.
Backup aprimorado
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, acesse 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 a fonte de dados
A fonte de dados da instância excluída é armazenada com os backups retidos da instância após a exclusão. Para encontrar esses valores da instância excluída, consulte Listar todos os backups no cofre de backup da sua instância.
Restaurar usando uma PITR
Para restaurar a instância excluída usando uma PITR, execute o seguinte comando:
gcloud sql instances point-in-time-restore DATA_SOURCE \
--point-in-time='PITR_TIMESTAMP' \
--project='TARGET_PROJECT' \
Substitua:
DATA_SOURCE: o caminho dodata-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
Encontrar sua janela de PITR
Para encontrar a janela de PITR da instância excluída, acesse 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 da instância 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, acesse 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:
Confira 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.