RDS for PostgreSQL позволяет обновить основную версию вашего DB экземпляра одним из следующих методов:
Если какое‑либо расширение, указано в Таблица 1 обнаруживается в пути обновления во время предварительной проверки крупного обновления версии, удалите расширение перед выполнением обновления и переустановите его после завершения обновления. Если вы выполните обновление, не удалив это расширение, обновление завершится неудачей, или расширение нельзя будет использовать после обновления экземпляра.
Исходная версия | Целевая версия | Расширение, которое может вызвать сбой обновления | Расширение, которое нельзя использовать после обновления экземпляра |
|---|---|---|---|
12 | 13 | orafce, postgis_sfcgal | address_standardizer_data_us, pgaudit |
14 | orafce, postgis_sfcgal | anon, pgaudit | |
15 | orafce, postgis_sfcgal | anon, pgaudit | |
16 | orafce, postgis_sfcgal, pgl_ddl_deploy | anon, pgaudit | |
17 | orafce, pgl_ddl_deploy, postgis, postgis_raster, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal | anon, pgaudit | |
13 | 14 | - | anon, pgaudit, pg_stat_kcache |
15 | - | anon, pgaudit, pg_stat_kcache | |
16 | pgl_ddl_deploy | anon, pgaudit, pg_stat_kcache | |
17 | pgl_ddl_deploy, postgis, postgis_raster, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal | anon, pgaudit, pg_stat_kcache, powa | |
14 | 15 | - | pgaudit, pg_stat_kcache |
16 | pgl_ddl_deploy | pgaudit, pg_stat_kcache | |
17 | pgl_ddl_deploy, postgis, postgis_raster, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal | pgaudit, pg_stat_kcache, powa | |
15 | 16 | pgl_ddl_deploy | pgaudit |
17 | pgl_ddl_deploy, postgis, postgis_raster, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal | pgaudit, pg_stat_kcache, powa | |
16 | 17 | postgis, postgis_raster, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal | pgaudit, pg_stat_kcache, powa |
Данные, добавленные после завершения обновления, не будут автоматически синхронизированы с оригинальным экземпляром.
The default_transaction_read_only параметр управляет настройками read-only. Перед обновлением проверьте, были ли внесены изменения в этот параметр. Если да, данные, вставленные в instance во время переключения, будут потеряны после обновления.
Некоторые расширения (например, postgis) приведут к сбою задачи обновления. В этом случае удалите расширения перед выполнением обновления основной версии.
в верхнем левом углу и выберите регион и проект.
в верхнем левом углу страницы и выберите Базы данных > Relational Database Service.Во время обновления до новой мажорной версии статистика оптимизатора не синхронизируется автоматически. Статистику необходимо собрать после завершения обновления.
Если проверка обновления или само обновление завершились ошибкой, вы можете проанализировать причины на основе отчёта проверки обновления или отчёта об обновлении. Процедура выглядит следующим образом:
Этот pg_upgrade_internal.log файл является основным лог‑файлом отчёта проверки обновления или отчёта об обновлении. Если обновление завершилось ошибкой, проверьте наличие ошибок в этом файле. Распространённые ошибки перечислены ниже:
Это означает, что имеются расширения, несовместимые с целевой версией. Они перечислены в loadable_libraries.txt.
Это означает, что существуют таблицы, созданные с клаузулой WITH OIDS, и такие таблицы записываются в tables_with_oids.txt. Клауза WITH OIDS не поддерживается RDS для PostgreSQL 12 и новее.
Это означает, что целевая версия не запустилась во время проверки обновления, и вы можете проверить pg_upgrade_server.log на причины.
Это означает, что pg_dump не удалось создать резервную копию данных во время обновления, и вы можете проверить pg_upgrade_dump_xxxx.log на причины.
Этот элемент отображает несовместимые библиотеки, которые обычно соответствуют несовместимым расширениям. Проверьте расширения, перечисленные в loadable_libraries.txt и определите, следует ли их удалить. Удалите их перед обновлением, если вы уверены, что удаление не повлияет на нагрузки.
Этот элемент отображает таблицы, созданные с клаузулой WITH OIDS. Проверьте таблицы, перечисленные в tables_with_oids.txt и оцените, зависит ли код нагрузки от OID‑ов. Если удаление OID‑ов из таблиц не влияет на нагрузки, выполните следующий SQL‑запрос:
ALTER TABLE {table_name} SET WITHOUT OIDS;
Проверьте последние несколько строк pg_upgrade_server.log файла. Если появляется ошибка, похожая на следующую, расширение, указанное в этой ошибке, не существует в целевой версии. Удалите его из shared_preload_libraries по мере необходимости и затем выполните обновление.
FATAL: could not access file "xxx": No such file or directory.
Пример:
FATAL: could not access file "pg_pathman": No such file or directory.
pg_dump: error: query failed: ERROR: out of shared memoryHINT: You might need to increase max_locks_per_transaction.pg_dump:error: query was: LOCK TABLE "xxx"."xxx" IN ACCESSSHARE MODE
pg_restore: error: could not execute query: ERROR: could not find function "xxx" in file xxxCommand was: CREATE FUNCTION "pgl_ddl_deploy"."xxx"