云数据库 RDS-通过界面升级大版本:查看升级检查报告和升级报告

时间:2024-09-06 14:25:14

查看升级检查报告和升级报告

当升级检查失败或升级失败时,可通过升级检查报告或升级报告来分析失败的原因,步骤如下:

  1. 查看“pg_upgrade_internal.log”。

    “pg_upgrade_internal.log”为升级检查报告或升级报告的主要日志文件,当升级失败时,首先查看该文件内容,查看相关报错。常见的报错如下:

    • A list of problem libraries is in the file: loadable_libraries.txt

      存在高版本不兼容的插件,插件列表记录在“loadable_libraries.txt”文件中。

    • A list of tables with the problem is in the file: tables_with_oids.txt

      建表时声明了WITH OIDS,该声明在PostgreSQL 12或以上版本不支持,相关表被记录在“tables_with_oids.txt”文件中。

    • Consult the last few lines of "pg_upgrade_server.log" for the probable cause of failure.

      升级检查时,高版本启动失败,具体原因在“pg_upgrade_server.log”报告项中查看。

    • Consult the last few lines of "pg_upgrade_dump_xxxx.log" for the probable cause of failure.

      升级过程中,pg_dump失败,具体原因在“pg_upgrade_dump_xxxx.log”报告项中查看。

  2. 根据“pg_upgrade_internal.log”中的信息,在对应的报告项中分析原因。
    • loadable_libraries.txt

      展示不兼容的library,通常对应了不兼容的插件。排查“loadable_libraries.txt”中列出的插件,根据实际需要进行评估是否删除,建议在不影响业务稳定的情况下删除后升级。

    • tables_with_oids.txt

      展示声明了WITH OIDS的表清单。排查“tables_with_oids.txt”中列出的表,评估业务代码中是否对OID有依赖,确认不影响业务之后,执行以下SQL:

      ALTER TABLE {table_name} SET WITHOUT OIDS;
    • pg_upgrade_server.log

      查看“pg_upgrade_server.log”的最后几行信息,如果存在如下报错,则说明高版本中不存在xxx插件,根据实际业务,评估可删除xxx插件,并在shared_preload_libraries中删除xxx,建议在不影响业务稳定的情况下删除后升级。

      FATLA: could not access file "xxx": No such file or directory.

      示例:

      FATLA: could not access file "pg_pathman": No such file or directory.
    • pg_upgrade_dump_xxxx.log
      • 查看“pg_upgrade_dump_xxxx.log”最后几行信息,如果存在如下报错,则说明当前实例中表的数量过多,按照提示需适当增加max_logcks_per_transaction参数值,并重新升级。
        pg_dump: error: query failed: ERROR: out of shared memory
        HINT: You might need to increase max_locks_per_transaction.
        pg_dump:error: query was: LOCK TABLE "xxx"."xxx" IN AC CES SSHARE MODE
      • 查看“pg_upgrade_dump_xxxx.log”最后几行信息,如果存在如下报错,是因为当前实例中存在插件pgl_ddl_deploy,该插件高低版本不兼容,导致升级失败。请根据升级插件限制说明排查实例中是否存在其他不兼容的三方插件(部分三方插件的兼容性无法通过升级检查识别出来),根据实际需要进行评估是否删除,建议在不影响业务稳定的情况下删除后升级。
        pg_restore: error: could not execute query: ERROR: could not find function "xxx" in file xxx
        Commond was: CREATE FUNCTION "pgl_ddl_deploy"."xxx"
support.huaweicloud.com/usermanual-rds/rds_pg_05_0004.html