Cette page explique comment migrer une instance Cloud SQL pour PostgreSQL en copiant une sauvegarde Cloud SQL dans un cluster d'essai sans frais AlloyDB pour PostgreSQL cluster. La copie d'une sauvegarde Cloud SQL dans un cluster AlloyDB vous permet de charger rapidement des données dans Cloud SQL pour PostgreSQL, ce qui vous permet d'évaluer ou de migrer vers AlloyDB.
Cette page suppose que vous connaissez Cloud SQL. Si vous découvrez AlloyDB, consultez la présentation d'AlloyDB.
Pour découvrir comment migrer vos données de Cloud SQL vers AlloyDB à l'aide de la réplication continue des données, consultez Database Migration Service pour PostgreSQL vers AlloyDB.
Les éléments suivants ne sont pas acceptés :
- Restaurations inter-projets et interrégionales
- Instances avec des clés de chiffrement gérées par le client (CMEK)
- Instances avec authentification de groupe Identity and Access Management (IAM)
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous découvrez Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.
-
Activez les API AlloyDB, Compute Engine et Service Networking.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles. - Assurez-vous de disposer des éléments suivants :
- Les autorisations Identity and Access Management (IAM) nécessaires
- Une sauvegarde Cloud SQL d'une taille inférieure à 15To
- Une version de PostgreSQL compatible avec AlloyDB
Rôles requis
Pour obtenir les autorisations nécessaires pour copier une sauvegarde Cloud SQL pour PostgreSQL dans un cluster AlloyDB, accordez-vous les rôles IAM suivants sur votre projet :
- Lecteur Cloud SQL
(
roles/cloudsql.viewer) ou tout rôle personnalisé incluant l'autorisationcloudsql.backupRuns.export. - Administrateur
Cloud AlloyDB (
roles/alloydb.admin)
Copier une sauvegarde Cloud SQL dans un cluster AlloyDB
Lorsque vous copiez une sauvegarde Cloud SQL dans un cluster AlloyDB , la sauvegarde est restaurée dans la même version de PostgreSQL sur AlloyDB. Par exemple, une sauvegarde Cloud SQL PostgreSQL 14 est restaurée dans un cluster PostgreSQL 14 . N'oubliez pas que les versions d'extension et les versions mineures de PostgreSQL peuvent être différentes.
La copie d'une sauvegarde à partir de Cloud SQL n'est compatible qu'avec la configuration des éléments compatibles avec le cluster AlloyDB .
Pour copier une sauvegarde Cloud SQL dans un cluster AlloyDB , procédez comme suit :
Console
- Dans la Google Cloud console, accédez à la page
**Clusters**.
- Cliquez sur Migrer des données , puis sélectionnez Copier à partir de la sauvegarde Cloud SQL.
- Sur la page Copier à partir de la sauvegarde Cloud SQL, activez les API requises. Si vous avez déjà activé les API, vous n'avez pas besoin de les réactiver.
- Sur la page Sélectionner le type de cluster, sélectionnez Cluster provisionné.
- Cliquez sur Sélectionner le type de cluster.
- Sélectionnez l'instance Cloud SQL à partir de laquelle vous souhaitez copier une sauvegarde
à partir de laquelle, puis cliquez sur Sélectionner l'instance. Vous pouvez filtrer
les instances Cloud SQL.
Seules les versions de base de données compatibles sont affichées. Les réplicas ne disposent pas de sauvegardes et ne sont pas affichés dans la liste des instances disponibles. - Sélectionnez la sauvegarde à partir de laquelle vous souhaitez effectuer l'importation, puis cliquez sur Sélectionner la sauvegarde. Cette page affiche les 1 000 sauvegardes les plus récentes.
- Sur la page Créer votre cluster provisionné, saisissez vos informations réseau. L'ID du cluster est renseigné par défaut, mais vous pouvez également personnaliser votre cluster provisionné.
- Cliquez sur Créer un cluster.
Une fois l'opération terminée, une instance principale est créée automatiquement. Un cluster AlloyDB est créé avec les données copiées à partir de la sauvegarde Cloud SQL pour PostgreSQL que vous avez sélectionnée.
Lorsque vous copiez une sauvegarde Cloud SQL pour PostgreSQL dans un cluster AlloyDB, les indicateurs de base de données sont migrés s'ils se trouvent dans Cloud SQL pour PostgreSQL et dans AlloyDB. Les autorisations au niveau des ressources ne sont pas migrées automatiquement. Une fois la copie terminée, vous devez configurer manuellement les autorisations et les indicateurs de base de données qui n'ont pas été migrés en raison d'une incompatibilité.
Vous pouvez vérifier les indicateurs de base de données Cloud SQL pour PostgreSQL compatibles avec AlloyDB sur la page Créer votre cluster provisionné.
gcloud
Pour utiliser la gcloud CLI, vous pouvez l'installer et l'initialiser, ou utiliser Cloud Shell.
- Exécutez la commande
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=STANDARDRemplacez les éléments suivants :
CLUSTER_ID: ID du cluster Cloud SQL pour PostgreSQL.CLOUD_SQL_BACKUP_ID: ID de la sauvegarde Cloud SQL à partir de laquelle effectuer la migration. Il doit s'agir de l' ID de sauvegarde.CLOUD_SQL_INSTANCE_ID: ID de l'instance Cloud SQL à partir de laquelle effectuer la migration. Il doit s'agir de l'ID d'instance.CLOUD_SQL_PROJECT_ID: ID du projet Cloud SQL à partir duquel effectuer la migration. Il doit s'agir de l' ID de projet.PASSWORD: mot de passe initial de l'utilisateur PostgreSQL à configurer lors de la création du cluster.REGION: emplacement, par exempleasia-east1ouus-east1. Consultez la liste complète des régions dans Emplacements régionaux.DATABASE_VERSION: version de la base de données du cluster. Il doit s'agir de l'une des valeurs suivantes :POSTGRES_14,POSTGRES_15,POSTGRES_16ouPOSTGRES_17. La version de la base de données doit être la même que celle de la sauvegarde Cloud SQL.SUBSCRIPTION_TYPE: type d'abonnement du cluster. Il doit s'agir de l'une des valeurs suivantes :STANDARDouTRIAL.
- Exécutez la
gcloud beta alloydb operations describecommande pour confirmer l'état de l'opération de sauvegarde
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDRemplacez les éléments suivants :
OPERATION_ID: nom de l'opération Cloud SQL pour PostgreSQL.REGION_ID: région dans laquelle le cluster Cloud SQL pour PostgreSQL est déployé.PROJECT_ID: ID du projet.
- Utilisez la commande
gcloud alloydb instances createpour créer une instance principale.
API REST
- Pour obtenir la liste des sauvegardes de l'instance à partir de laquelle vous souhaitez restaurer
votre sauvegarde, appelez la
backupsRuns.listméthode:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"Remplacez les éléments suivants :
PROJECT_ID: ID du projet.INSTANCE_ID: ID de l'instance.
Corps JSON de la requête :
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Pour envoyer votre requête, utilisez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloud auth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :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)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloud auth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :$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 ContentVous recevez une réponse JSON de ce type :
Réponse
En cas de succès, le corps de la réponse contient une liste de
La réponse de l'API renvoie une liste des sauvegardes de l'instance sous forme de liste de tableaux, y comprisBackupRun."id": string,. - Appelez la méthode restoreFromCloudSQL
:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLRemplacez les éléments suivants :
PROJECT_ID: ID du projet.REGION: région dans laquelle le cluster AlloyDB est déployé.
Corps JSON de la requête :
{ "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. }Pour envoyer votre requête, utilisez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloud auth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :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)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloudauth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :$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 ContentVous recevez une réponse JSON de ce type :
Réponse
En cas de succès, le corps de la réponse contient une instance de
Operation.Un cluster est créé dans le projet et à l'emplacement spécifiés, avec un volume restauré à partir de la sauvegarde indiquée dans le CloudSQLBackupRunSource.
- Lorsque le cluster est à l'état
READY, créez l'instance principale en appelant laprojects.locationsinstances.createméthode
:POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesRemplacez les éléments suivants :
PROJECT_ID: ID du projet.REGION: région dans laquelle le cluster AlloyDB est déployé.CLUSTER_ID: ID du cluster.
Corps JSON de la requête :
{ "instanceId": "string", "instance": { "object": "Instance" } }Le corps de la requête contient une instance de
Instance.Pour envoyer votre requête, utilisez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloud auth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :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)
La commande suivante suppose que vous vous êtes connecté à la
gcloud CLIavec votre compte utilisateur en exécutantgcloud initougcloud auth login, ou en utilisantCloud Shell, qui vous connecte automatiquement à lagcloud CLI.Vous pouvez vérifier le compte actif en exécutant
gcloud auth list.Enregistrez le corps de la requête dans un fichier nommé
request.jsonet exécutez la commande suivante :$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 ContentVous recevez une réponse JSON de ce type :
Réponse
En cas de succès, le corps de la réponse contient une nouvelle instance de
Operation. - Une fois l'instance mise à jour à l'état
READY, connectez-vous à l'instance et accédez aux données restaurées à partir de l'instantané Cloud SQL.
Étape suivante
- Connectez-vous à AlloyDB à l'aide d'une adresse IP publique.
- Gérez vos données à l'aide d'AlloyDB Studio.