Para avaliar o AlloyDB para PostgreSQL ou migrar uma carga de trabalho atual sem configurar a replicação contínua, copie um backup do Cloud SQL para PostgreSQL diretamente para um cluster do AlloyDB .
Nesta página, pressupomos 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
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Ative as APIs AlloyDB, Compute Engine e Service Networking, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis. - Verifique se você tem os recursos a seguir:
- As permissões necessárias do Identity and Access Management (IAM).
- Um backup do Cloud SQL com menos de 15TB
- Uma versão do PostgreSQL compatível com o 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 você os seguintes papéis do IAM no projeto:
- Leitor do Cloud SQL
(
roles/cloudsql.viewer) ou qualquer papel personalizado que inclua a permissãocloudsql.backupRuns.export. - Administrador do 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 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 . 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.
Para copiar um backup do Cloud SQL para um cluster de teste sem custos financeiros do AlloyDB, siga estas etapas:
Console
- No console do Cloud de Confiance , 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á as ativou, 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 as instâncias do Cloud SQL.
Somente as versões de banco de dados compatíveis são exibidas. 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, configure manualmente as permissões e as flags de banco de dados que não foram migradas devido a uma incompatibilidade.
Verifique quais flags de banco de dados no Cloud SQL para PostgreSQL são compatíveis com o AlloyDB na página Criar o cluster provisionado.
gcloud
Para usar a CLI gcloud, instale e inicialize a CLI gcloud ou use o Cloud Shell.
- Execute o comando
gcloud alloydb clusters migrate-cloud-sql:
gcloud alloydb clusters migrate-cloud-sqlCLUSTER_ID\ --cloud-sql-backup-id=CLOUD_SQL_BACKUP_ID\ --cloud-sql-instance-id=CLOUD_SQL_INSTANCE_ID\ --cloud-sql-project-id=CLOUD_SQL_PROJECT_ID\ --password=PASSWORD\ --region=REGION\ --database-version=DATABASE_VERSION\ --subscription-type=STANDARDSubstitua:
CLUSTER_ID: ID do cluster do Cloud SQL para PostgreSQL.CLOUD_SQL_BACKUP_ID: ID do backup do Cloud SQL de onde migrar. Precisa ser o ID do backup.CLOUD_SQL_INSTANCE_ID: ID da instância do Cloud SQL de onde migrar. Precisa ser o ID da instância.CLOUD_SQL_PROJECT_ID: ID do projeto do Cloud SQL de onde será feita a migração. Precisa ser o ID do projeto.PASSWORD: senha inicial do usuário do PostgreSQL a ser configurada durante a criação do cluster.REGION: local, por exemplo,asia-east1ouus-east1. Confira a lista completa de regiões em Locais.DATABASE_VERSION: versão do banco de dados do cluster. Precisa ser um destes:POSTGRES_14,POSTGRES_15,POSTGRES_16,POSTGRES_17ouPOSTGRES_18. A versão do banco de dados precisa ser a mesma do backup do Cloud SQL.
- Execute o comando
gcloud alloydb operations describepara confirmar o status da operação de backup:
gcloud alloydb operations describeOPERATION_ID\ --region=REGION_ID\ --project=PROJECT_IDSubstitua:
OPERATION_ID: o nome da operação do Cloud SQL para PostgreSQL.REGION_ID: a região em que o cluster do Cloud SQL para PostgreSQL está implantado.PROJECT_ID: o ID do projeto;
- Use o comando
gcloud alloydb instances createpara criar uma instância principal.
API REST
- Para ver uma lista de backups da instância de onde você quer restaurar
o backup, chame o método
backupRuns.list:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRunsSubstitua:
PROJECT_ID: o ID do projeto;INSTANCE_ID: o ID da instância
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 na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usando oCloud Shell, que faz login automaticamente nagcloud CLI.É possível verificar a conta ativa executando
gcloud auth list.Execute o seguinte comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"PowerShell (Windows)
O comando a seguir pressupõe que você fez login na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usandoCloud Shell, que faz login automaticamente nagcloud CLI.Para verificar a conta ativa, execute
gcloud auth list.Execute o seguinte comando:
$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/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns" | Select-Object -Expand ContentVocê vai receber uma resposta JSON semelhante a esta:
Resposta
Se a solicitação for bem-sucedida, o corpo da resposta vai conter uma lista de objetos
BackupRun:{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }A resposta da API retorna uma lista de backups da instância como uma lista de matrizes, incluindo
"id": string. - Chame o método
clusters.restoreFromCloudSQL:POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLSubstitua:
PROJECT_ID: o ID do projeto;REGION: a região em que o cluster do AlloyDB está implantado.
Corpo JSON da solicitação:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16/POSTGRES_17/POSTGRES_18", "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 na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usando oCloud Shell, que faz login automaticamente nagcloud CLI.Para verificar a conta ativa, execute
gcloud auth list.Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo: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/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"PowerShell (Windows)
O comando a seguir pressupõe que você fez login na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usando oCloud Shell, que faz login automaticamente nagcloud CLI.Para verificar a conta ativa, execute
gcloud auth list.Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo:$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/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand ContentVocê vai receber uma resposta JSON semelhante a esta:
Resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de
Operation.O AlloyDB cria um novo cluster no projeto e no local especificados e restaura o volume dele usando o backup especificado na mensagem CloudSQLBackupRunSource.
- Quando o cluster estiver no estado
READY, crie a instância primária chamando o métodoprojects.locations.clusters.instances.create:
POST https://alloydb.googleapis.com/v1/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesSubstitua:
PROJECT_ID: o ID do projeto;REGION: a região em que o cluster do AlloyDB está implantado.CLUSTER_ID: o ID do cluster.
Corpo JSON da solicitação:
{ "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 na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usando oCloud Shell, que faz login automaticamente nagcloud CLI.Para verificar a conta ativa, execute
gcloud auth list.Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo: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/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"PowerShell (Windows)
O comando a seguir pressupõe que você fez login na
gcloud CLIcom sua conta de usuário executandogcloud initougcloud auth login, ou usando oCloud Shell, que faz login automaticamente nagcloud CLI.Para verificar a conta ativa, execute
gcloud auth list.Salve o corpo da solicitação em um arquivo com o nome
request.jsone execute o comando abaixo:$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/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand ContentVocê vai receber 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.