Esta página descreve como migrar uma instância do Cloud SQL para PostgreSQL copiando um backup do Cloud SQL para um cluster de teste sem custos financeiros do AlloyDB para PostgreSQL . Copiar um backup do Cloud SQL para um cluster do AlloyDB permite carregar dados rapidamente no AlloyDB para PostgreSQL, o que permite avaliar ou migrar para o AlloyDB.
Esta página pressupõe que você já conhece o Cloud SQL. Se você não conhece o AlloyDB, consulte a Visão geral do AlloyDB.
Para saber como migrar dados do Cloud SQL para o AlloyDB usando a replicação contínua de dados, consulte Database Migration Service para PostgreSQL para AlloyDB.
Não há compatibilidade com os seguintes recursos:
- Restaurações entre projetos e entre regiões
- Instâncias com chaves de criptografia gerenciadas pelo cliente (CMEK)
- Instâncias com a autenticação de grupos do Identity and Access Management (IAM)
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB, Compute Engine, and Service Networking APIs.
- Verifique se você tem o seguinte:
- As permissões necessárias do Identity and Access Management (IAM)
- Um backup do Cloud SQL com menos de 5 TB
- Uma versão do PostgreSQL com suporte do AlloyDB
Funções exigidas
Para receber as permissões necessárias e copiar um backup do Cloud SQL para PostgreSQL em um cluster do AlloyDB, conceda a si mesmo os seguintes papéis do IAM no projeto:
- Leitor
(
roles/viewer
) - Administrador do
Cloud AlloyDB (
roles/alloydb.admin
)
Copiar um backup do Cloud SQL para um cluster do AlloyDB
Copiar um backup do Cloud SQL para um cluster de teste sem custos financeiros do AlloyDB padrão o restaura para a mesma versão do PostgreSQL no AlloyDB. Por exemplo, um backup do PostgreSQL 14 do Cloud SQL é restaurado para um cluster de teste sem custos financeiros do PostgreSQL padrão. Lembre-se de que as versões de extensão e as versões secundárias do PostgreSQL podem ser diferentes.
A cópia de um backup do Cloud SQL só é compatível com a configuração dos itens aceitos no cluster de teste sem custos financeiros do AlloyDB padrão .
Para copiar um backup do Cloud SQL para um cluster de teste padrão do AlloyDB, siga estas etapas:
Console
- No console do Google Cloud , acesse a página Clusters.
- Clique em Migrar dados e selecione Copiar do backup do Cloud SQL.
- Na página Copiar do backup do Cloud SQL, ative as APIs necessárias. Se você já ativou as APIs, não é necessário reativá-las.
- Na página Selecionar o tipo de cluster, selecione Cluster provisionado.
- Clique em Selecionar tipo de cluster.
- Selecione a instância do Cloud SQL de onde você quer copiar um backup
e clique em Selecionar instância. É possível filtrar
instâncias do Cloud SQL.
Somente as versões de banco de dados compatíveis são mostradas. As réplicas não têm backups e não aparecem na lista de instâncias disponíveis. - Selecione o backup que você quer importar e clique em Selecionar backup. Esta página mostra os mil backups mais recentes.
- Na página Criar cluster provisionado, insira as informações de rede. O ID do cluster é preenchido por padrão, mas você também pode personalizar o cluster provisionado.
- Clique em Criar cluster.
Depois que a operação é concluída, uma instância principal é criada automaticamente. Um novo cluster do AlloyDB vai aparecer com os dados copiados do backup do Cloud SQL para PostgreSQL que você selecionou.
Quando você copia um backup do Cloud SQL para PostgreSQL para um cluster do AlloyDB, as flags de banco de dados são migradas se estiverem no Cloud SQL para PostgreSQL e no AlloyDB. As permissões no nível do recurso não são migradas automaticamente. Depois que a cópia for concluída, será necessário configurar manualmente as permissões e as flags do banco de dados que não foram migradas devido a uma incompatibilidade.
Você pode verificar quais flags de banco de dados no Cloud SQL para PostgreSQL são compatíveis com o AlloyDB na página Criar seu cluster provisionado.
API REST
- Para conferir uma lista de backups da instância que você quer restaurar, chame o método
backupsRuns.list
:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
Substitua:
PROJECT_ID
: o ID do projeto;INSTANCE_ID
: o ID da instância
Solicitar corpo JSON:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }
Para enviar a solicitação, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando a seguir pressupõe que você fez login no
Google Cloud CLI
com sua conta de usuário executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute este comando:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
PowerShell (Windows)
O comando a seguir pressupõe que você fez login no
gcloud CLI
com sua conta de usuário executandogcloud init
ougcloud auth login
ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Uri "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand Content
Você recebe uma resposta JSON semelhante a esta:
Resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma lista de
A resposta da API retorna uma lista de backups para a instância como uma lista de matrizes, incluindoBackupRun
."id": string,
. - Chame o método restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL
Substitua:
PROJECT_ID
: o ID do projeto;REGION
: a região em que o cluster do AlloyDB é implantado.
Solicitar corpo JSON:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16", "subscriptionType": "STANDARD" }, // Union field source can be only one of the following: "cloudsqlBackupRunSource": { object (CloudSQLBackupRunSource) } // End of list of possible types for union field source. }
Para enviar a solicitação, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando a seguir pressupõe que você fez login no
gcloud CLI
com sua conta de usuário executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"
PowerShell (Windows)
O comando a seguir pressupõe que você fez login no
gcloud CLI
com sua conta de usuário executandogcloud init
ougcloudauth login
, ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand Content
Você recebe uma resposta JSON semelhante a esta:
Resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de
Operation
.Um novo cluster é criado no projeto e local especificado, com um volume restaurado do backup apontado na mensagem CloudSQLBackupRunSource.
- Quando o cluster estiver em um estado
READY
, crie a instância principal chamando o métodoprojects.locationsinstances.create
:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instances
Substitua:
PROJECT_ID
: o ID do projeto;REGION
: a região em que o cluster do AlloyDB é implantado.CLUSTER_ID
: o ID do cluster.
Solicitar corpo JSON:
{ "instanceId": "string", "instance": { "object": "Instance" } }
O corpo da solicitação contém uma instância de
Instance
.Para enviar a solicitação, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando a seguir pressupõe que você fez login no
gcloud CLI
com sua conta de usuário executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"
PowerShell (Windows)
O comando a seguir pressupõe que você fez login no
gcloud CLI
com sua conta de usuário executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que faz login automaticamente nogcloud CLI
.É possível verificar a conta ativa executando
gcloud auth list
.Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand Content
Você recebe uma resposta JSON semelhante a esta:
Resposta
Se a solicitação for bem-sucedida, o corpo da resposta incluirá uma instância de
Operation
. - Depois que a instância for atualizada para o estado
READY
, conecte-se a ela e acesse os dados restaurados do snapshot do Cloud SQL.