Esta página descreve como migrar uma instância do Cloud SQL para PostgreSQL copiando uma cópia de segurança do Cloud SQL para um cluster de avaliação sem custo financeiro do AlloyDB para PostgreSQL. A cópia de uma cópia de segurança do Cloud SQL para um cluster do AlloyDB permite-lhe carregar rapidamente dados no AlloyDB para PostgreSQL, o que lhe permite avaliar ou migrar para o AlloyDB.
Esta página pressupõe que tem conhecimentos do Cloud SQL. Se está a usar o AlloyDB pela primeira vez, consulte a vista geral do AlloyDB.
Para saber como migrar os seus dados do Cloud SQL para o AlloyDB através da replicação de dados contínua, consulte o artigo Database Migration Service para PostgreSQL para AlloyDB.
As seguintes funcionalidades não são compatíveis:
- Restauros entre projetos e regiões
- Instâncias com chaves de encriptação geridas pelo cliente (CMEK)
- Instâncias com autenticação de grupos do Identity and Access Management (IAM)
Antes de começar
- Inicie sessão na sua Google Cloud conta. Se está a usar o Google Cloudpela primeira vez, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Os novos clientes também recebem 300 USD em créditos sem custo financeiro para executar, testar e implementar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
Ative as APIs AlloyDB, Compute Engine e Service Networking.
Funções necessárias para ativar APIs
Para ativar APIs, precisa da função do IAM de administrador da utilização de serviços (
roles/serviceusage.serviceUsageAdmin), que contém a autorizaçãoserviceusage.services.enable. Saiba como atribuir funções. - Certifique-se de que tem o seguinte:
- As autorizações do Identity and Access Management (IAM) necessárias
- Uma cópia de segurança do Cloud SQL com um tamanho inferior a 15TB
- Uma versão do PostgreSQL compatível com o AlloyDB
Funções necessárias
Para receber as autorizações de que precisa para copiar uma cópia de segurança do Cloud SQL para PostgreSQL para um cluster do AlloyDB, atribua a si mesmo as seguintes funções do IAM no seu projeto:
- Visualizador do Cloud SQL(
roles/cloudsql.viewer) ou qualquer função personalizada que inclua a autorizaçãocloudsql.backupRuns.export. - Administrador do Cloud AlloyDB (
roles/alloydb.admin)
Copie uma cópia de segurança do Cloud SQL para um cluster do AlloyDB
A cópia de uma cópia de segurança do Cloud SQL para um cluster padrão do AlloyDB restaura a cópia de segurança para a mesma versão do PostgreSQL no AlloyDB. Por exemplo, uma cópia de segurança do Cloud SQL do PostgreSQL 14 é restaurada para um cluster 14 padrão do PostgreSQL. Tenha em atenção que as versões das extensões e as versões secundárias do PostgreSQL podem ser diferentes.
A cópia de uma cópia de segurança do Cloud SQL só é compatível com a configuração dos itens compatíveis no AlloyDB padrão .
Para copiar uma cópia de segurança do Cloud SQL para um cluster padrão do AlloyDB, siga estes passos:
Consola
- Na Google Cloud consola, aceda à página Clusters.
- Clique em Migrar dados e, de seguida, selecione Copiar a partir da cópia de segurança do Cloud SQL.
- Na página Copiar a partir da cópia de segurança do Cloud SQL, ative as APIs necessárias. Se já ativou as APIs, não precisa de as ativar novamente.
- Na página Selecionar o tipo de cluster, selecione Cluster aprovisionado.
- Clique em Selecionar tipo de cluster.
- Selecione a instância do Cloud SQL a partir da qual quer copiar uma cópia de segurança
e, de seguida, clique em Selecionar instância. Pode filtrar
instâncias do Cloud SQL.
Só são apresentadas as versões de bases de dados compatíveis. As réplicas não têm cópias de segurança e não são apresentadas na lista de instâncias disponíveis. - Selecione a cópia de segurança a partir da qual quer importar e, de seguida, clique em Selecionar cópia de segurança. Esta página apresenta as 1000 cópias de segurança mais recentes.
- Na página Crie o seu cluster aprovisionado, introduza as suas informações de rede. O ID do cluster é preenchido por predefinição, mas também pode personalizar o cluster aprovisionado.
- Clique em Criar cluster.
Após a conclusão da operação, é criada automaticamente uma instância principal. É apresentado um novo cluster do AlloyDB com os dados copiados da cópia de segurança do Cloud SQL para PostgreSQL que selecionou.
Quando copia uma cópia de segurança do Cloud SQL para PostgreSQL para um cluster do AlloyDB, as sinalizações da base de dados são migradas se estiverem no Cloud SQL para PostgreSQL e no AlloyDB. As autorizações ao nível do recurso não são migradas automaticamente. Após a conclusão da cópia, tem de configurar manualmente as autorizações e as sinalizações da base de dados que não foram migradas devido a uma incompatibilidade.
Pode verificar que sinalizações da base de dados no Cloud SQL para PostgreSQL são compatíveis com o AlloyDB na página Crie o seu cluster aprovisionado.
gcloud
Para usar a CLI do Google Cloud, pode instalar e inicializar a CLI gcloud ou usar o Cloud Shell.
- Execute o comando
gcloud beta alloydb clusters migrate-cloud-sql:
gcloud beta 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 o seguinte:
CLUSTER_ID: ID do cluster do AlloyDB.CLOUD_SQL_BACKUP_ID: ID da cópia de segurança do Cloud SQL a partir da qual migrar. Tem de ser o ID da cópia de segurança.CLOUD_SQL_INSTANCE_ID: ID da instância do Cloud SQL a partir da qual migrar. Tem de ser o ID da instância.CLOUD_SQL_PROJECT_ID: ID do projeto do Cloud SQL a partir do qual migrar. Tem de ser o ID do projeto.PASSWORD: palavra-passe inicial do utilizador do PostgreSQL a configurar durante a criação do cluster.REGION: localização, por exemplo,asia-east1ouus-east1. Consulte a lista completa de regiões em Localizações regionais.DATABASE_VERSION: versão da base de dados do cluster. Tem de ser uma das seguintes:POSTGRES_14,POSTGRES_15,POSTGRES_16ouPOSTGRES_17. A versão da base de dados tem de ser a mesma que a versão da cópia de segurança do Cloud SQL.SUBSCRIPTION_TYPE: tipo de subscrição do cluster. Tem de ser uma das seguintes:STANDARDouTRIAL.
- Execute o comando
gcloud beta alloydb operations describepara confirmar o estado da operação de cópia de segurança:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDSubstitua o seguinte:
OPERATION_ID: o nome da operação do AlloyDB.REGION_ID: a região na qual o cluster do AlloyDB está implementado.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 cópias de segurança da instância a partir da qual quer restaurar
a sua cópia de segurança, chame o
backupsRuns.listmétodo:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"Substitua o seguinte:
PROJECT_ID: o ID do projeto.INSTANCE_ID: o ID da instância.
Corpo JSON do pedido:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Para enviar o seu pedido, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando seguinte pressupõe que iniciou sessão no
Google Cloud CLIcom a sua conta de utilizador executandogcloud initougcloud auth login, ou usando oCloud Shell, que inicia sessão automaticamente nogcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute the following command: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 seguinte pressupõe que iniciou sessão na
gcloud CLIcom a sua conta de utilizador executandogcloud initougcloud auth login, ou usando oCloud Shell, que inicia sessão automaticamente nagcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute a seguinte instrução:$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 ContentRecebe uma resposta JSON semelhante à seguinte:
Resposta
Se for bem-sucedido, o corpo da resposta contém uma lista de
A resposta da API devolve uma lista de cópias de segurança da instância como uma lista de matrizes, incluindoBackupRun."id": string,. - Chame o restoreFromCloudSQL
método:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLSubstitua o seguinte:
PROJECT_ID: o ID do projeto.REGION: a região na qual o cluster do AlloyDB está implementado.
Corpo JSON do pedido:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16/POSTGRES_17", "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 o seu pedido, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando seguinte pressupõe que iniciou sessão na
gcloud CLIcom a sua conta de utilizador executandogcloud initougcloud auth login, ou usando oCloud Shell, que inicia sessão automaticamente nagcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute a seguinte instrução: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 seguinte pressupõe que iniciou sessão no
gcloud CLIcom a sua conta de utilizador executandogcloud initougcloudauth login, ou usando oCloud Shell, que inicia sessão automaticamente nogcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute a seguinte instrução:$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 ContentRecebe uma resposta JSON semelhante à seguinte:
Resposta
Se for bem-sucedido, o corpo da resposta contém uma instância de
Operation.É criado um novo cluster na localização e no projeto especificados, com um volume restaurado a partir da cópia de segurança indicada na mensagem CloudSQLBackupRunSource.
- Quando o cluster estiver no 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}/instancesSubstitua o seguinte:
PROJECT_ID: o ID do projeto.REGION: a região na qual o cluster do AlloyDB está implementado.CLUSTER_ID: o ID do cluster.
Corpo JSON do pedido:
{ "instanceId": "string", "instance": { "object": "Instance" } }O corpo do pedido contém uma instância de
Instance.Para enviar o seu pedido, use uma destas opções:
curl (Linux, macOS ou Cloud Shell)
O comando seguinte pressupõe que iniciou sessão na
gcloud CLIcom a sua conta de utilizador executandogcloud initougcloud auth login, ou usando oCloud Shell, que inicia sessão automaticamente nagcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute a seguinte instrução: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 seguinte pressupõe que iniciou sessão na
gcloud CLIcom a sua conta de utilizador executandogcloud initougcloud auth login, ou usando oCloud Shell, que inicia sessão automaticamente nagcloud CLI.Pode verificar a conta ativa executando
gcloud auth list.Guarde o corpo do pedido num ficheiro com o nome
request.jsone execute a seguinte instrução:$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 ContentRecebe uma resposta JSON semelhante à seguinte:
Resposta
Se for bem-sucedido, o corpo da resposta contém uma instância de
Operationcriada recentemente. - Depois de a instância ser atualizada para o estado
READY, ligue-se à instância e aceda aos dados restaurados a partir da captura instantânea do Cloud SQL.