Présentation
Avant de choisir de migrer vos bases de données vers Cloud SQL, assurez-vous de prendre en compte les limites connues pour ce scénario de migration.
Les limites connues d'utilisation d'une base de données PostgreSQL en tant que source incluent les suivantes :
L'extension
pglogical
n'est pas compatible avec la réplication des colonnes générées pour PostgreSQL 12 et versions ultérieures.Les modifications apportées aux structures de table (LDD) ne sont pas répliquées à l'aide des commandes LDD standards, mais uniquement avec les commandes exécutées à l'aide de l'extension
pglogical
utilisée pour la réplication. Cela inclut les modifications apportées aux typesenum
.Par exemple,
pglogical
fournit une fonctionpglogical.replicate_ddl_command
qui permet d'exécuter le LDD sur la base de données source et le réplica à un point cohérent. L'utilisateur qui exécute cette commande sur la source doit déjà exister sur le réplica.Pour répliquer les données des nouvelles tables, vous devez utiliser la commande
pglogical.replication_set_add_table
afin d'ajouter les nouvelles tables aux ensembles de réplication existants.Pour en savoir plus sur la réplication LDD pendant la migration, consultez la section sur la fidélité de la migration.
Pour les tables qui ne possèdent pas de clés primaires, Database Migration Service permet de migrer l'instantané initial et les instructions
INSERT
pendant la phase de capture des données modifiées (CDC, Change Data Capture). Vous devez migrer les instructionsUPDATE
etDELETE
manuellement.Database Migration Service ne migre pas les données des vues matérialisées, mais uniquement le schéma de la vue. Pour remplir les vues, exécutez la commande suivante :
REFRESH MATERIALIZED VIEW view_name
.Les états
SEQUENCE
(par exemple,last_value
) de la nouvelle destination Cloud SQL peuvent être différents de ceux de la source.SEQUENCE
Les tables
UNLOGGED
etTEMPORARY
ne sont pas répliquées et ne peuvent pas l'être.Le type de données Large Object n'est pas accepté. Pour en savoir plus, consultez la section sur la fidélité de la migration.
Seules les extensions et les langages procéduraux compatibles avec Cloud SQL pour PostgreSQL peuvent être migrés. Database Migration Service ne migre pas les extensions non compatibles avec Cloud SQL. La présence de ces extensions ne bloque pas la migration, mais pour garantir un processus de migration fluide, vérifiez que vos objets ou applications ne font référence à aucune extension non prise en charge. Nous vous recommandons de supprimer ces extensions et références de votre base de données source avant de continuer.
L'extension
pg_cron
(ou tout paramètrecron
associé à l'extension) n'est pas migrée par Database Migration Service, mais elle est compatible avec les destinations Cloud SQL pour PostgreSQL. Si vous utilisez l'extensionpg_cron
dans vos bases de données sources, vous pouvez la réinstaller sur votre instance de destination une fois la migration terminée.
Database Migration Service n'est pas compatible avec la migration depuis des instances répliquées avec accès en lecture en mode récupération.
Database Migration Service n'est pas compatible avec les sources Amazon RDS auxquelles le pack d'extension AWS SCT est appliqué.
- Les fonctions définies par l'utilisateur écrites en C ne peuvent pas être migrées, à l'exception de celles qui sont installées dans la base de données PostgreSQL lorsque vous installez des extensions compatibles avec Cloud SQL.
Si d'autres extensions et langages procéduraux existent dans la base de données source, ou si leurs versions ne sont pas compatibles, le job de migration échouera lorsque vous le testerez ou le démarrerez.
Les bases de données ajoutées après le démarrage du job de migration ne sont pas migrées.
- Vous ne pouvez pas sélectionner de tables ni de schémas spécifiques lorsque vous migrez des données à l'aide de Database Migration Service.
Database Migration Service migre toutes les tables et tous les schémas, à l'exception des éléments suivants :
- Schéma d'informations (
information_schema
). - Toutes les tables commençant par
pg
, par exemplepg_catalog
. Pour obtenir la liste complète des catalogues PostgreSQL qui commencent parpg
, consultez Catalogues système PostgreSQL dans la documentation PostgreSQL. - Les informations sur les utilisateurs et les rôles utilisateur ne sont pas migrées.
- Schéma d'informations (
Si les bases de données chiffrées nécessitent des clés de chiffrement gérées par le client pour être déchiffrées, et si Database Migration Service n'y a pas accès, elles ne peuvent pas être migrées.
Toutefois, si les données client sont chiffrées par l'extension
pgcrypto
, elles peuvent être migrées avec Database Migration Service (car Cloud SQL est compatible avec l'extension).Database Migration Service permet également de migrer des données à partir de bases de données Amazon Aurora ou Amazon RDS chiffrées, car ces bases de données gèrent le déchiffrement de manière transparente dans leurs services. Pour en savoir plus, consultez Chiffrer les ressources Amazon Aurora et Chiffrer les ressources Amazon RDS.
La base de données Cloud SQL de destination est accessible en écriture pendant la migration pour permettre l'application des modifications LDD si nécessaire. Veillez à ne pas modifier la configuration de la base de données ni les structures de table, car cela pourrait perturber le processus de migration ou affecter l'intégrité des données.
Le comportement des déclencheurs dépend de leur configuration. Par défaut, ils ne se déclenchent pas. Toutefois, s'ils ont été configurés à l'aide de l'instruction
ALTER EVENT TRIGGER
ouALTER TABLE
et que l'état du déclencheur est défini sur "replica" (réplique) ou "always" (toujours), ils se déclenchent sur la réplique lors de la réplication.Les fonctions avec un définisseur de sécurité seront créées par
cloudsqlexternalsync
dans l'instance répliquée Cloud SQL. Lorsqu'elle est exécutée par un utilisateur, elle l'est avec les droits decloudsqlexternalsync
, qui possède les rôlescloudsqlsuperuser
etcloudsqlreplica
. Il est préférable de limiter l'utilisation d'une fonction de définition de sécurité à certains utilisateurs uniquement. Pour ce faire, l'utilisateur doit révoquer les droits PUBLIC par défaut, puis accorder le droit d'exécution de manière sélective.Cloud SQL n'est pas compatible avec les espaces de table personnalisés. Toutes les données des espaces de table personnalisés sont migrées vers l'espace de table
pg_default
dans l'instance de destination Cloud SQL.
Limites des migrations vers des instances de destination existantes
- Votre instance de destination existante doit être vide ou ne contenir que des données de configuration système. La migration vers des instances de destination existantes contenant des données utilisateur (telles que des tables) n'est pas prise en charge.
Si vous rencontrez des problèmes en raison de données supplémentaires dans votre instance de destination existante, effacez les bases de données de votre instance de destination et réessayez le job de migration. Consultez Effacer les données supplémentaires de votre instance de destination existante.
- Vous ne pouvez configurer qu'un seul job de migration par instance de destination.
- Vous ne pouvez migrer que vers des instances Cloud SQL autonomes. La migration vers des instances répliquées de serveur externe n'est pas possible.
- La migration de données vers une instance Cloud SQL sur laquelle Private Service Connect est activé n'est pas acceptée.
- Après avoir promu une instance, vous devez activer la récupération à un moment précis.
- Si votre instance dispose de paramètres de sauvegarde personnalisés (par exemple, un emplacement de sauvegarde personnalisé), vous devez personnaliser à nouveau vos paramètres de sauvegarde après la promotion de l'instance. Au cours du processus de promotion, Cloud SQL rétablit les valeurs par défaut des paramètres de sauvegarde.
- Pour les utilisateurs de Terraform : Database Migration Service modifie les paramètres de sauvegarde et de récupération de votre instance de destination. Cela peut entraîner des paramètres d'instance de destination différents de la configuration Terraform que vous avez utilisée pour le provisionnement. Si vous rencontrez ce problème, suivez les conseils de la section Diagnostiquer les problèmes.
Quotas
- Jusqu'à 2 000 profils de connexion et 1 000 tâches de migration peuvent coexister à un moment donné. Pour libérer de l'espace, supprimez des profils de connexion et des tâches de migration (y compris celles déjà effectuées).