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 de avaliação gratuitado 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 para o 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 não tem experiência com o AlloyDB, consulte a vista geral do AlloyDB.
Para saber como migrar os seus dados do Cloud SQL para o AlloyDB através da replicação contínua de dados, consulte o artigo Database Migration Service para PostgreSQL para AlloyDB.
As seguintes funcionalidades não são suportadas:
- Instâncias da edição Cloud SQL Enterprise Plus
- Restauros entre projetos e regiões
- Instâncias com chaves de encriptação geridas pelo cliente (CMEK)
- Instâncias com autenticação de grupo da gestão de identidade e de acesso (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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB, Compute Engine, and Service Networking APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Certifique-se de que tem o seguinte:
- As autorizações da gestão de identidade e de acesso (IAM) necessárias
- Uma cópia de segurança do Cloud SQL com um tamanho inferior a 1TB
- Uma versão do PostgreSQL suportada pelo AlloyDB
Funções necessárias
Para receber as autorizações necessárias 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 da IAM no seu projeto:
- Visitante do Cloud SQL
(
roles/cloudsql.viewer
) ou qualquer função personalizada que inclua a autorizaçãocloudsql.backupRuns.export
. - Cloud
AlloyDB Admin (
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 deTenha 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ó suporta a configuração dos itens suportados no cluster de avaliação gratuita do AlloyDB.
Para copiar uma cópia de segurança do Cloud SQL para um cluster de avaliação free do AlloyDB, siga estes passos:
Consola
- Na Google Cloud consola, aceda à página Clusters.
- Se ainda não tiver aprovisionado um cluster, clique em Iniciar uma avaliação gratuita. Se tiver um cluster existente, clique em Migrar dados.
- Clique em 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 reativar.
- Na página Selecionar tipo de cluster, clique em Cluster de avaliação gratuita. Se não for elegível para um cluster de avaliação gratuita, este campo é apresentado a cinzento.
- Clique em Selecionar tipo de cluster.
- Selecione a instância do Cloud SQL a partir da qual quer fazer uma cópia e, de seguida,
clique em Selecionar instância. Pode filtrar instâncias do Cloud SQL.
Apenas são apresentadas as versões de base 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 gratuito, introduza o ID do cluster e as informações de rede.
- Clique em Iniciar avaliação gratuita.
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 for PostgreSQL que selecionou.
Quando copia uma cópia de segurança do Cloud SQL para PostgreSQL para um cluster do AlloyDB, os flags da base de dados e as autorizações ao nível do recurso não são migrados automaticamente. Após a conclusão da cópia, tem de configurar estas flags e autorizações manualmente.
Pode verificar que flags de base de dados no Cloud SQL para PostgreSQL são suportadas no AlloyDB na página Crie o seu cluster gratuito.
gcloud
Para usar a CLI do Google Cloud, pode instalar e inicializar a CLI do Google Cloud ou usar a Cloud Shell.
- Execute o comando
gcloud beta alloydb clusters migrate-cloud-sql
:
gcloud beta alloydb clusters migrate-cloud-sql CLUSTER_ID
--cluster-id=CLUSTER_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=TRIAL
Substitua o seguinte:
CLUSTER
: ID do cluster do AlloyDB.CLOUD_SQL_BACKUP_ID
: ID da cópia de segurança do CloudSQL a partir da qual migrar. Tem de ser o ID alternativo.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
: 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-east1
ouus-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 um dos seguintes:POSTGRES_14
,POSTGRES_15
ouPOSTGRES_16
. A versão da base de dados tem de ser igual à versão da cópia de segurança do Cloud SQL.SUBSCRIPTION_TYPE
: tipo de subscrição do cluster. Tem de ser um dos seguintes valores:STANDARD
ouTRIAL
.
- Execute o comando
gcloud beta alloydb operations describe
para confirmar o estado da operação de cópia de segurança:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID
Substitua 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 create
para criar uma instância principal.
API REST
- Para obter 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 método
backupsRuns.list
:
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 CLI
com a sua conta de utilizador executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando o comando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e 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//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
PowerShell (Windows)
O comando seguinte pressupõe que iniciou sessão no
gcloud CLI
com a sua conta de utilizador executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e 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//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand Content
Recebe 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 método restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL
Substitua 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", "subscriptionType": "TRIAL" }, // 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 no
gcloud CLI
com a sua conta de utilizador executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando: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 CLI
com a sua conta de utilizador executandogcloud init
ougcloudauth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando:$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
Recebe 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 no projeto e na localização especificados, com um volume restaurado a partir da cópia de segurança indicada na mensagem CloudSQLBackupRunSource.
- Quando o cluster está 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}/instances
Substitua 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 no
gcloud CLI
com a sua conta de utilizador executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando: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 no
gcloud CLI
com a sua conta de utilizador executandogcloud init
ougcloud auth login
, ou usandoCloud Shell
, que inicia automaticamente sessão nogcloud CLI
.Pode verificar a conta ativa executando
gcloud auth list
.Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando:$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
Recebe uma resposta JSON semelhante à seguinte:
Resposta
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de
Operation
. - Depois de a instância ser atualizada para o estado
READY
, ligue-se à instância e aceda aos dados restaurados a partir da cópia instantânea do Cloud SQL.
O que se segue?