Облачная платформаAdvanced

Обновление основной версии экземпляра DB в консоли

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарии

RDS for PostgreSQL позволяет обновить основную версию вашего DB экземпляра одним из следующих методов:

  • Обновление без переключения: Вы можете использовать его для тестирования совместимости службы новой версии. Обновление основной версии может вызвать проблемы совместимости службы. Настоятельно рекомендуется провести тест совместимости. После прохождения теста выполните обновление в режиме переключения. Обновление без переключения службы не повлияет на оригинальный экземпляр.
  • Обновление с переключением: во время обновления оригинальный экземпляр переводится в режим только для чтения, и службы прерываются на несколько минут. После завершения обновления оригинальный и новый экземпляры автоматически обмениваются своими виртуальными IP‑адресами, и подключение приложения будет переключено на новый экземпляр. Внесение изменений в приложение не требуется.

Ограничения

  • Обновления основной версии доступны для следующих версий:
    • RDS for PostgreSQL 9.5: 9.5.25 или позже
    • RDS for PostgreSQL 9.6: 9.6.24 или позже
    • RDS for PostgreSQL 10: 10.21 или позже
    • RDS for PostgreSQL 12: 12.7 или новее
    • RDS for PostgreSQL 13: 13.3 или новее
    • RDS for PostgreSQL 14: 14.4 или новее
    • Обновления основных версий недоступны для RDS for PostgreSQL 11.
  • Из‑за ограничений OS некоторые инстансы не поддерживают обновления основных версий. Чтобы узнать, до каких версий можно обновить ваш инстанс, см. список доступных версий на Обновление основной версии page.
  • DR‑инстансы не поддерживают обновления основных версий.
  • Перед обновлением основной версии выполните проверку обновления. Если в течение срока действия нет успешной проверки обновления, обновление основной версии не допускается.

Расширения, не поддерживаемые при обновлениях основных версий

Если какое‑либо расширение, указано в Таблица 1 обнаруживается в пути обновления во время предварительной проверки крупного обновления версии, удалите расширение перед выполнением обновления и переустановите его после завершения обновления. Если вы выполните обновление, не удалив это расширение, обновление завершится неудачей, или расширение нельзя будет использовать после обновления экземпляра.

Таблица 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

Меры предосторожности

  • RDS for PostgreSQL 10 и 11 переведены в режим офлайн. Функции, такие как Бэкап и восстановление данных, изменение классов экземпляров, уменьшение Объёма хранения, создание Read-реплик и изменение типа экземпляра с single-node на primary/standby для существующих DB instances этих двух версий больше недоступны. Рекомендуется как можно быстрее выполнить обновление основной версии таких существующих экземпляров.
  • Если обновление основной версии завершено и приложение переключено на новый экземпляр, но нагрузки несовместимы с новой версией, необходимо откатить обновление. Обратитесь в службу поддержки, чтобы отключить режим read-only оригинального экземпляра. Затем вы можете продолжать использовать оригинальный экземпляр.
    Notice

    Данные, добавленные после завершения обновления, не будут автоматически синхронизированы с оригинальным экземпляром.

  • После завершения обновления основной версии создаётся новый DB instance. Оригинальный DB instance по‑прежнему сохраняется и тарифицируется. Вы можете высвободить оригинальный экземпляр, когда нагрузки на новом экземпляре работают стабильно.
  • После обновления основной версии аудит Логи, error Логи и slow query Логи оригинального экземпляра по‑прежнему хранятся в оригинальном экземпляре. Вы можете просматривать только Логи, сгенерированные после обновления, на новом экземпляре.
  • Read-реплики не поддерживают обновление до мажорной версии. Если ваш DB instance имеет read replica, read replica не будет обновлена синхронно. Вам необходимо заново создать её после обновления до мажорной версии. Для подробностей см Создание Read-реплики.
  • Обновление до мажорной версии имеет следующие последствия:
    • Если вы обновляете ваш instance с переключением сервиса, instance будет установлен в режим read-only во время обновления и сервисы будут прерваны на несколько минут. Выполните обновление в часы низкой нагрузки. Если вы обновляете ваш instance без переключения сервиса, на ваши сервисы воздействия нет.
      Notice

      The default_transaction_read_only параметр управляет настройками read-only. Перед обновлением проверьте, были ли внесены изменения в этот параметр. Если да, данные, вставленные в instance во время переключения, будут потеряны после обновления.

    • После обновления до мажорной версии:
      • Изменения параметров в оригинальном instance автоматически синхронизируются с новым instance. Для параметров, которые не были изменены, используются значения по умолчанию новой версии.
      • Если оригинальный инстанс использует любой параметр, который не поддерживается новой версией, параметр будет автоматически удалён из нового инстанса.
      • Если значение любого параметра в оригинальном инстансе не находится в допустимом диапазоне, настроенном в новой версии, новый инстанс будет использовать значение по умолчанию, определённое в шаблоне параметров новой версии.
  • Обновление основной версии не обновит версии расширений. Для получения подробностей о поддерживаемых версиях расширений см Поддерживаемые расширения. Если новый инстанс поддерживает любое расширение более новой версии, вы можете выполнить ALTER EXTENSION extension_name UPDATE TO 'new_version'; чтобы обновить расширение, либо удалить и переустановить расширение последней версии.
    Notice

    Некоторые расширения (например, postgis) приведут к сбою задачи обновления. В этом случае удалите расширения перед выполнением обновления основной версии.

Процедура

  1. Войдите в консоль управления.
  2. Нажмите в верхнем левом углу и выберите регион и проект.
  3. Нажмите в верхнем левом углу страницы и выберите Базы данных > Relational Database Service.
  4. На Экземпляры страница, нажмите имя экземпляра.
  5. В навигационной панели выберите Обновление основной версии.
  6. На отображаемой странице выберите целевую версию, нажмите Проверить сейчас, и подождите несколько минут.

    Note
    • Если расширения установлены на экземпляре после успешной проверки обновления, обновление может завершиться неудачей из‑за проблем совместимости. Если это произойдёт, выполните проверку ещё раз.
    • Если проверка обновления не удалась, вы можете просмотреть отчет проверки нажатием Просмотр отчета на Проверки обновления вкладку и исправить несовместимость на основе отчета.

  7. После успешного выполнения проверки нажмите Далее. Выберите "I understand Precautions for the Upgrade." и нажмите Обновить сейчас.
  8. Укажите Переключение и Сбор статистики.

    Note

    Во время обновления до новой мажорной версии статистика оптимизатора не синхронизируется автоматически. Статистику необходимо собрать после завершения обновления.

    • Перед переключением: Стабильность сервиса обеспечена. Если у вашего экземпляра большой объём данных, обновление может занять больше времени.
    • After cutover: Обеспечено более быстрое обновление. После обновления доступ к таблицам, для которых не были сгенерированы статистические данные, может вызвать неточные планы выполнения и даже сбои экземпляра в часы пика.

Upgrade Check Reports and Upgrade Reports

Если проверка обновления или само обновление завершились ошибкой, вы можете проанализировать причины на основе отчёта проверки обновления или отчёта об обновлении. Процедура выглядит следующим образом:

  1. Просмотрите pg_upgrade_internal.log файл.

    Этот pg_upgrade_internal.log файл является основным лог‑файлом отчёта проверки обновления или отчёта об обновлении. Если обновление завершилось ошибкой, проверьте наличие ошибок в этом файле. Распространённые ошибки перечислены ниже:

    • Список проблемных библиотек находится в файле: loadable_libraries.txt

      Это означает, что имеются расширения, несовместимые с целевой версией. Они перечислены в loadable_libraries.txt.

    • Список таблиц с проблемой находится в файле: tables_with_oids.txt

      Это означает, что существуют таблицы, созданные с клаузулой WITH OIDS, и такие таблицы записываются в tables_with_oids.txt. Клауза WITH OIDS не поддерживается RDS для PostgreSQL 12 и новее.

    • Обратитесь к последним строкам "pg_upgrade_server.log" для вероятной причины сбоя.

      Это означает, что целевая версия не запустилась во время проверки обновления, и вы можете проверить pg_upgrade_server.log на причины.

    • Обратитесь к последним строкам "pg_upgrade_dump_xxxx.log" для вероятной причины сбоя.

      Это означает, что pg_dump не удалось создать резервную копию данных во время обновления, и вы можете проверить pg_upgrade_dump_xxxx.log на причины.

  2. Анализируйте причины на основе пунктов отчёта.
    • loadable_libraries.txt

      Этот элемент отображает несовместимые библиотеки, которые обычно соответствуют несовместимым расширениям. Проверьте расширения, перечисленные в loadable_libraries.txt и определите, следует ли их удалить. Удалите их перед обновлением, если вы уверены, что удаление не повлияет на нагрузки.

    • tables_with_oids.txt

      Этот элемент отображает таблицы, созданные с клаузулой WITH OIDS. Проверьте таблицы, перечисленные в tables_with_oids.txt и оцените, зависит ли код нагрузки от OID‑ов. Если удаление OID‑ов из таблиц не влияет на нагрузки, выполните следующий SQL‑запрос:

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

      Проверьте последние несколько строк 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_upgrade_dump_xxxx.log
      • Проверьте последние несколько строк pg_upgrade_dump_xxxx.log. Если отображается ошибка, похожая на приведённую ниже, в текущем экземпляре слишком много таблиц. В этом случае увеличьте значение max_locks_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 ACCESSSHARE 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
        Command was: CREATE FUNCTION "pgl_ddl_deploy"."xxx"