Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Rapport d'évaluation de la migration vers le cloud

Dernière mise à jour :Oct 10, 2026

Cette rubrique décrit le rapport d'évaluation de la fonctionnalité de migration en un clic vers le cloud pour ApsaraDB RDS for PostgreSQL, y compris son contenu, les erreurs courantes et leurs solutions.

Si l'Status du rapport d'évaluation est Failed, cliquez sur Report Details dans la colonne Action de la tâche de migration.

Remarque

Pour plus d'informations sur la migration en un clic vers le cloud pour ApsaraDB RDS for PostgreSQL, consultez Migration en un clic vers le cloud.

Vérifier si RDS est vide

Élément de vérification

Vérifier les bases de données RDS

Erreur courante

error:postgres not empty, check if any table exists

Description

L'instance ApsaraDB RDS for PostgreSQL de destination n'est pas vide.

Solution

Supprimez toutes les bases de données de l'instance ApsaraDB RDS for PostgreSQL, en ne conservant que les bases de données template0, template1 et postgres. Dans la base de données postgres, supprimez toutes les tables à l'exception de ha_health_check.

Vérifier la connectivité source

  • Élément de vérification 1

    Vérifier la connectivité IP

    Erreur courante

    error:XX.XX.XX.XX is unapproachable

    Description

    L'adresse IP ou le nom DNS du serveur hébergeant la base de données PostgreSQL autogérée est inaccessible.

    Solution

    • Pour la migration en un clic vers le cloud d'une base de données PostgreSQL autogérée sur une instance ECS, configurez l'Private IP Address de l'instance ECS. Pour savoir comment obtenir l'adresse IP, consultez Afficher les adresses IP.

    • Pour les migrations depuis une base de données PostgreSQL autogérée sur site, fournissez l'adresse IP résolue à partir de son enregistrement DNS.

  • Élément de vérification 2

    Vérifier la connectivité du port

    Erreur courante

    error:5432 is unapproachable

    Description

    • La base de données PostgreSQL autogérée n'est pas configurée pour écouter les connexions distantes.

    • Un pare-feu est configuré pour la base de données PostgreSQL autogérée, mais aucune règle n'autorise l'accès au port de la base de données.

    Solution

    • Dans le fichier postgresql.conf de votre base de données PostgreSQL autogérée, définissez listen_addresses = '*'. Pour plus d'informations, consultez Configurer le fichier postgresql.conf.

    • Configurez le pare-feu pour autoriser le trafic sur le port 5432, ou désactivez le pare-feu avant la migration. Pour plus d'informations, consultez Configurer le pare-feu du serveur.

  • Élément de vérification 3

    Vérifier la connectivité de la base de données

    Erreur courante

    error:cannot connect to source database by migratetest:123456

    Description

    • Le nom d'utilisateur ou le mot de passe est incorrect.

    • La configuration pg_hba.conf de la base de données PostgreSQL autogérée est incorrecte.

    Solution

    • Vérifiez que vous pouvez vous connecter à la base de données PostgreSQL autogérée avec le nom d'utilisateur et le mot de passe spécifiés. Si la connexion échoue, mettez à jour le mot de passe. L'exemple suivant montre la commande pour mettre à jour le mot de passe du compte migratetest :

      ALTER USER migratetest WITH PASSWORD '123456';
    • Modifiez le fichier pg_hba.conf de votre base de données PostgreSQL autogérée. Pour le compte migratetest, par exemple, ajoutez la configuration suivante :

      host  all       migratetest  <ApsaraDB RDS for PostgreSQL VPC CIDR block>  md5
      Remarque

      Pour plus d'informations, consultez Mettre à jour le fichier pg_hba.conf.

  • Élément de vérification 4

    Vérifier le privilège de réplication du compte

    Erreur courante

    error:migratetest has no replication privilege

    Description

    • Le compte utilisateur ne dispose pas du privilège REPLICATION.

    • La configuration pg_hba.conf de la base de données PostgreSQL autogérée est incorrecte.

    Solution

    • Accordez le privilège REPLICATION au compte utilisateur. L'exemple suivant montre la commande pour le compte migratetest :

      ALTER ROLE migratetest REPLICATION;
    • Modifiez le fichier pg_hba.conf de votre base de données PostgreSQL autogérée. Par exemple, ajoutez la configuration suivante pour le compte migratetest :

      host  replication  migratetest  <ApsaraDB RDS for PostgreSQL VPC CIDR block>  md5
      Remarque

      Pour plus d'informations, consultez Mettre à jour le fichier pg_hba.conf.

  • Élément de vérification 5

    Vérifier le privilège createrole du compte

    Erreur courante

    error:migratetest has no createrole privilege

    Description

    Le compte utilisateur ne dispose pas du privilège CREATEROLE.

    Solution

    Accordez le privilège CREATEROLE au compte utilisateur. L'exemple suivant montre la commande pour le compte migratetest :

    ALTER ROLE migratetest CREATEROLE;
  • Élément de vérification 6

    Vérifier le privilège de surveillance du compte

    Erreur courante

    error:migratetest should be a member of pg_monitor to monitor replication status

    Description

    Le compte utilisateur ne dispose pas du privilège pg_monitor.

    Remarque

    Ce privilège est requis pour interroger les vues système telles que pg_stat_replication et pg_stat_wal_receiver afin d'obtenir des informations sur le lien de réplication.

    Solution

    Accordez le privilège pg_monitor au compte utilisateur. L'exemple suivant montre la commande pour le compte migratetest :

    GRANT pg_monitor TO migratetest;

Vérifier la version source

Élément de vérification

Vérifier la cohérence de la version majeure

Erreur courante

error:version mismatch, source version:10, current version:13.0

Description

La version majeure de la base de données PostgreSQL autogérée ne correspond pas à celle de l'instance ApsaraDB RDS for PostgreSQL de destination.

Solution

Achetez une instance ApsaraDB RDS for PostgreSQL dont la version majeure correspond à celle de votre base de données PostgreSQL autogérée.

Vérifier la version glibc source

Élément de vérification

Vérifier la compatibilité de la version glibc source

Erreur courante

warning:source glibc version is not compatible with rds pg

Description

La version GLIBC de la base de données PostgreSQL autogérée est incompatible avec celle de l'instance ApsaraDB RDS for PostgreSQL.

Remarque

Dans GLIBC 2.28, les règles de collationnement pour certains caractères UTF-8 ont été modifiées. Une incompatibilité de version peut entraîner des règles de tri de données différentes et des résultats de requête inattendus.

Solution

Effectuez les vérifications suivantes.

  1. Vérifiez le collationnement de la table.

    begin;
    create temp table testcollation(id varchar(20) collate "en_US.utf8") on commit drop;
    insert into testcollation values('-1'),('1');
    select id='1' from testcollation order by id limit 1;
    rollback;

    Résultats :

    • Si true est renvoyé, la migration ne présente aucun risque. Aucune autre action n'est nécessaire.

    • Si false est renvoyé, passez à l'étape suivante.

  2. Vérifiez le collationnement de la base de données.

    SELECT datname,datcollate FROM pg_database where datcollate NOT IN ('C', 'POSIX');

    Résultats :

    • Si le résultat est vide, la migration ne présente aucun risque. Aucune autre action n'est nécessaire.

    • Si le résultat n'est pas vide, passez à l'étape suivante.

  3. Dans toutes les bases de données, vérifiez la présence d'index dont le collationnement n'est ni C ni POSIX.

    WITH result AS (
        WITH defcoll AS (
            SELECT datcollate AS coll
            FROM pg_database
            WHERE datname = current_database()
        )
        SELECT indrelid::regclass::text relname, indexrelid::regclass::text indexname,
            CASE WHEN c.collname = 'default'
                THEN defcoll.coll
                ELSE c.collname
            END AS collation
        FROM (SELECT indexrelid, indrelid, indcollation[i] coll FROM pg_index, generate_subscripts(indcollation, 1) g(i)) s
            JOIN pg_collation c ON coll=c.oid
            CROSS JOIN defcoll
        WHERE collprovider IN ('d', 'c') AND collname NOT IN ('C', 'POSIX')
    )
    SELECT result.relname, result.indexname, result.collation FROM result WHERE result.collation NOT IN ('C', 'POSIX');

    Résultats :

    • Si le résultat est vide, la migration ne présente aucun risque. Aucune autre action n'est nécessaire.

    • Si le résultat n'est pas vide, la migration présente un risque.

Vérifier la taille du disque

Élément de vérification

Vérifier si la taille du disque est suffisante

Erreur courante

error:source_db_size > disk_size * 0.95

Description

La taille totale des bases de données PostgreSQL autogérées dépasse 95 % de l'espace de stockage de l'instance ApsaraDB RDS for PostgreSQL de destination.

Solution

  1. Exécutez la commande suivante pour vérifier l'espace de stockage total utilisé par votre base de données PostgreSQL autogérée :

    SELECT SUM(pg_database_size(pg_database.datname))/1024/1024 AS size FROM pg_database;
    Remarque

    L'unité du résultat est le mégaoctet (Mo).

  2. Calculez l'espace de stockage requis pour l'instance ApsaraDB RDS for PostgreSQL de destination.

    Par exemple, si votre base de données PostgreSQL autogérée utilise 100 Go d'espace de stockage, vous devez définir l'espace de stockage de l'instance ApsaraDB RDS for PostgreSQL à au moins 110 Go.

  3. Augmentez l'espace de stockage de l'instance ApsaraDB RDS for PostgreSQL. Pour plus d'informations, consultez Modifier les spécifications de l'instance.

Vérifier la taille wal keep

Élément de vérification

Vérifier si la taille wal keep est suffisamment grande

Erreur courante

warning:wal_keep_size X MB is too small. Try to set wal_keep_segments or wal_keep_size large enough ensure pg_basebackup success

Description

La valeur du paramètre wal_keep_size ou wal_keep_segments est trop faible et doit être augmentée.

Solution

  • Si votre base de données PostgreSQL autogérée est en version 13 ou ultérieure, augmentez la valeur du paramètre wal_keep_size sur votre base de données PostgreSQL autogérée. Cela améliore le taux de réussite des sauvegardes complètes et incrémentielles lors de la migration.

  • Si votre base de données PostgreSQL autogérée est antérieure à la version 13, augmentez la valeur du paramètre wal_keep_segments sur votre base de données PostgreSQL autogérée. Cela améliore le taux de réussite des sauvegardes complètes et incrémentielles lors de la migration.

    Remarque

    Pour les versions de PostgreSQL antérieures à 13, wal_keep_size est calculé comme wal_keep_segments * wal_segment_size.

Vérifier les paramètres de spécification

Élément de vérification

Vérifier si les paramètres de spécification sont trop élevés

Erreur courante

error:max_connections too large, value=XXX
error:max_prepared_transactions too large, value=XXX

Description

Les paramètres max_connections et max_prepared_transactions de la base de données PostgreSQL autogérée sont plus de 100 fois supérieurs aux paramètres correspondants de l'instance ApsaraDB RDS for PostgreSQL de destination. Cela peut empêcher le démarrage de l'instance de destination lors de la configuration du lien de réplication.

Solution

Réduisez les valeurs des paramètres max_connections et max_prepared_transactions sur votre base de données PostgreSQL autogérée.

Remarque

Les modifications des paramètres max_connections et max_prepared_transactions nécessitent un redémarrage de l'instance PostgreSQL autogérée pour prendre effet.

Vérifier l'utilisateur RDS

Élément de vérification

Vérifier si l'utilisateur système RDS est occupé

Erreur courante

warning:Check if rds system user is occupied ...XXX will be reused in rds

Description

Les comptes aurora, replicator et pgxxx sur la base de données PostgreSQL autogérée sont réservés par ApsaraDB RDS for PostgreSQL. N'utilisez pas ces trois comptes comme comptes de service.

Solution

N'utilisez pas les comptes répertoriés dans le message d'avertissement comme comptes de service.

Vérifier les extensions

  • Élément de vérification 1

    Vérifier les extensions prises en charge par la source

    Erreur courante

    error:Check source supported extensions XXX not supported

    Description

    La base de données PostgreSQL autogérée possède une extension incompatible avec l'instance ApsaraDB RDS for PostgreSQL de destination.

    Solution

    Supprimez l'extension incompatible de votre base de données PostgreSQL autogérée.

  • Élément de vérification 2

    Vérifier les extensions source avec une version supérieure

    Erreur courante

    error:Check source extensions with higher version XXX

    Description

    Une version d'extension sur la base de données PostgreSQL autogérée est supérieure à la version disponible sur ApsaraDB RDS for PostgreSQL.

    Solution

    Installez une version inférieure de l'extension sur votre base de données PostgreSQL autogérée pour correspondre à la version de l'instance ApsaraDB RDS for PostgreSQL.

  • Élément de vérification 3

    Vérifier les extensions source avec une version inférieure

    Erreur courante

    warning:Check source extensions with lower version XXX

    Description

    Une version d'extension sur la base de données PostgreSQL autogérée est inférieure à la version sur ApsaraDB RDS for PostgreSQL.

    Solution

    Aucune action n'est requise. L'extension est automatiquement mise à niveau après la migration.

Vérifier les catalogues système Postgres

  • Élément de vérification 1

    Vérifiez si l'instance source contient des langages non pris en charge sur l'instance de destination (pg_language).

    Erreur courante

    error: disallowed language exist in databases [xxx, xxx], the languages allowed are [c, internal, sql, plpgsql, pltcl, plperl].

    Description

    ApsaraDB RDS for PostgreSQL prend uniquement en charge les langages C, internal, SQL, PL/pgSQL, PL/Tcl et PL/Perl.

    Solution

    Supprimez les langages non pris en charge de l'instance source.

  • Élément de vérification 2

    Vérifiez si l'instance source contient des objets volumineux (Large Objects).

    Erreur courante

    error: large object exist in databases [xxx, xxx].

    Description

    ApsaraDB RDS for PostgreSQL ne prend pas en charge les objets volumineux (Large Objects).

    Solution

    Supprimez tous les objets volumineux de l'instance source.

  • Élément de vérification 3

    Vérifiez si des privilèges par défaut ont été définis sur l'instance source à l'aide de l'instruction ALTER DEFAULT PRIVILEGES ... GRANT .... Cette vérification permet de déterminer si une base de données de l'instance source possède une table système pg_catalog.pg_default_acl non vide.

    Erreur courante

    error: default acl settings exist in databases [xxx, xxx].

    Description

    Si l'instruction ALTER DEFAULT PRIVILEGES ... GRANT ... a été exécutée sur une base de données de l'instance source, la table système pg_catalog.pg_default_acl de cette base de données ne sera pas vide.

    Solution

    Vous devez d'abord exécuter l'instruction ALTER DEFAULT PRIVILEGES ... REVOKE ... dans la base de données correspondante de l'instance source pour vous assurer que la table système pg_default_acl est vide pour toutes les bases de données. Une fois la migration terminée, vous pouvez exécuter à nouveau l'instruction ALTER DEFAULT PRIVILEGES ... GRANT ... pour restaurer les paramètres de privilège par défaut d'origine.

  • Élément de vérification 4

    Vérifiez si les tables système pg_parameter_acl et pg_db_role_setting de l'instance source ne sont pas vides.

    Erreur courante

    warning: Invalid system tables: [pg_parameter_acl, pg_db_role_setting], these system tables should be empty.

    Description

    La table système pg_parameter_acl enregistre les privilèges d'accès des utilisateurs pour les paramètres du noyau. ApsaraDB RDS for PostgreSQL n'autorise pas les utilisateurs à modifier ces privilèges. La table système pg_db_role_setting enregistre les paramètres de privilège par défaut pour différents utilisateurs dans chaque base de données.

    Solution

    1. Sur l'instance source, exécutez les instructions suivantes pour vider les tables système pg_parameter_acl et pg_db_role_setting :

      DELETE FROM pg_parameter_acl;
      DELETE FROM pg_db_role_setting;
    2. Une fois la migration terminée, vous devez reconfigurer les privilèges par défaut pour différents utilisateurs dans chaque base de données de l'instance de destination.

Vérifier les privilèges des rôles réservés

Élément de vérification

Vérifiez si l'instance source a accordé des privilèges de rôle réservés à des comptes non autorisés sur l'instance de destination.

Erreur courante

error: some disallowed reserved roles [pg_write_server_files] are granted to user. you should revoke these roles from their members

Description

ApsaraDB RDS for PostgreSQL n'autorise pas les comptes à disposer de privilèges pour des rôles réservés tels que pg_write_server_files. Si une instruction telle que GRANT pg_write_server_files TO "user"; a été utilisée sur l'instance source, vous devez révoquer ces privilèges.

Solution

Sur l'instance source, exécutez l'instruction REVOKE appropriée pour révoquer les privilèges, par exemple REVOKE pg_write_server_files FROM "user";.