Voici quelques-unes des limites connues liées à l'utilisation d'une base de données PostgreSQL comme source :
L'extension
pglogicaln'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 via des commandes LDD standards, mais uniquement avec des commandes exécutées à l'aide de l'extension
pglogicalutilisée pour la réplication. Cela inclut les modifications apportées auxenumtypes.Par exemple,
pglogicalfournit une fonctionpglogical.replicate_ddl_commandqui permet d'exécuter des LDD sur la base de données source et sur l'instance dupliquée à un point cohérent. L'utilisateur qui exécute cette commande sur la source doit déjà exister sur l'instance dupliquée.Pour répliquer des données pour de nouvelles tables, vous devez utiliser la commande
pglogical.replication_set_add_tableafin d'ajouter les nouvelles tables aux ensembles de réplication existants.Pour en savoir plus sur la réplication LDD pendant la migration en cours, 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 ainsi que les instructions
INSERTpendant la phase de capture des données modifiées (CDC, Change Data Capture). Vous devez migrer manuellement les instructionsUPDATEetDELETE.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 AlloyDB peuvent différer des étatsSEQUENCEsources.Les tables
UNLOGGEDetTEMPORARYne sont pas répliquées et ne peuvent pas l'être.Le type de données Large Object n'est pas compatible. Pour en savoir plus, consultez la section sur la fidélité de la migration.
Seules les extensions et les langages procéduraux compatibles avec AlloyDB pour PostgreSQL peuvent être migrés.
Database Migration Service n'est pas compatible avec la migration à partir d'instances dupliquées avec accès en lecture en mode de récupération.
Database Migration Service n'est pas compatible avec les sources Amazon RDS auxquelles le pack d'extensions 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 AlloyDB.
Si d'autres extensions et langages procéduraux existent dans la base de données source ou si leurs versions ne sont pas compatibles, la tâche de migration échouera lorsque vous la testerez ou la démarrerez.
Les bases de données ajoutées après le démarrage de la tâche de migration ne sont pas migrées.
Vous pouvez sélectionner des bases de données spécifiques lorsque vous effectuez une migration à l'aide de Database Migration Service. Toutefois, vous ne pouvez pas sélectionner de tables ni de schémas spécifiques dans ces bases de données. Database Migration Service migre toutes les tables et tous les schémas des bases de données sélectionnées, à l'exception des éléments suivants :
- Le schéma d'informations (
information_schema) - Tous les schémas commençant par
pg_(par exemple,pg_catalog,pg_toast,pgtemp*). Pour obtenir la liste complète des catalogues PostgreSQL commençant parpg_, consultez la section Catalogues système PostgreSQL dans la documentation PostgreSQL. - Les informations sur les utilisateurs et les rôles utilisateur ne sont pas migrées.
- Le 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 que Database Migration Service n'a pas accès à ces clé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 AlloyDB pour PostgreSQL est compatible avec cette extension).Database Migration Service est également compatible avec la migration de 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 les sections Chiffrer des ressources Amazon Aurora et Chiffrer des ressources Amazon RDS.
La base de données de destination AlloyDB pour PostgreSQL est accessible en écriture pendant la migration afin que les modifications LDD puissent être appliquées 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 TRIGGERouALTER TABLEet que l'état du déclencheur est défini sur "replica" ou "always", ils se déclencheront sur l'instance dupliquée lors de la réplication.Les fonctions avec un définisseur de sécurité seront créées par
alloydbexternalsyncdans AlloyDB principal. Lorsqu'elles sont exécutées par des utilisateurs, elles le sont avec les privilèges dealloydbexternalsync, qui possède les rôlesalloydbsuperuseretalloydbreplica. Il est préférable de limiter l'utilisation d'une fonction de définisseur de sécurité à certains utilisateurs uniquement. Pour ce faire, l'utilisateur doit révoquer les privilèges PUBLIC par défaut, puis accorder le privilège d'exécution de manière sélective.La méthode de connectivité des interfaces Private Service Connect n'est compatible qu'avec la migration vers des instances de destination existantes. Si vous souhaitez utiliser la connectivité IP privée et migrer vers une nouvelle instance de destination, utilisez l'appairage de VPC.
Limites pour les migrations vers des clusters de destination existants
- Vous ne pouvez configurer qu'une seule tâche de migration active par cluster de destination.
- Votre cluster de destination existant doit être vide ou ne contenir que des données de configuration système. La migration vers un cluster de destination existant contenant des données utilisateur (telles que des tables) n'est pas compatible.
- La migration vers des clusters avec des instances de pool de lecture est compatible.
Pour en savoir plus sur les clusters et les instances AlloyDB pour PostgreSQL, consultez la présentation d'AlloyDB pour PostgreSQL.
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).