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

Повышение основной версии экземпляра базы данных через консоль

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

Сценарии использования

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

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

Ограничения

  • Возможности повышения основных версий доступны для следующих версий:
    • RDS для PostgreSQL 9.5: 9.5.25 или новее
    • RDS для PostgreSQL 9.6: 9.6.24 или новее
    • RDS для PostgreSQL 10: 10.21 или новее
    • RDS для PostgreSQL 12: 12.7 или новее
    • RDS для PostgreSQL 13: 13.3 или новее
    • RDS для PostgreSQL 14: 14.4 или новее
    • RDS для PostgreSQL 15: 15.4 или новее
    • RDS для PostgreSQL 16 и RDS для PostgreSQL 17
  • Из-за ограничений ОС некоторые экземпляры баз данных не поддерживают повышение основной версии. Ознакомьтесь с поддерживаемыми опциями в консоли.
  • Перед повышением основной версии необходимо выполнить проверку возможности обновления. Если в течение срока действия отсутствует успешная проверка обновления, то повышение основной версии не допускается.

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

После того как предварительная проверка повышения основной версии пройдена, если какое-либо расширение, указанное в Таблице 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 для PostgreSQL 10 и 11 были выведены из эксплуатации. Функции, такие как резервное копирование и восстановление данных, изменение классов экземпляров, уменьшение объема хранилища, создание read-реплик и изменение типа экземпляра с одноузлового на первичный/резервный для существующих экземпляров этих двух версий больше недоступны. Рекомендуется как можно скорее обновить основные версии таких существующих экземпляров.
  • Если основное повышение версии завершено и рабочая нагрузка переведена на новый экземпляр, но она несовместима с новой версией, вам потребуется откатить обновление. Свяжитесь со службой поддержки клиентов, чтобы разблокировать исходный экземпляр из состояния «только чтение». Затем вы сможете продолжить использование исходного экземпляра.
    Notice

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

  • После успешного выполнения основного обновления создается новый экземпляр. Исходный экземпляр сохраняется и продолжает учитываться в биллинге. Когда рабочая нагрузка стабильно работает, вы можете освободить исходный экземпляр.
  • После обновления основной версии аудиты, журналы ошибок и медленных запросов исходного экземпляра остаются храниться в исходном экземпляре. На новом экземпляре можно просматривать только логи, созданные после завершения обновления.
  • Read-реплики не поддерживают обновление основных версий. Если экземпляр вашей базы данных имеет read-реплики, то эти реплики не будут обновляться вместе с вашим экземпляром базы данных. После основного обновления необходимо создать их заново. Подробности см. в разделеСоздание read-реплики.
  • Если ваш экземпляр базы данных имеет экземпляр аварийного восстановления (DR), он не будет синхронно обновлён, а связь DR будет прервана. После основного обновления создайте новый экземпляр DR той же версии, что и новый экземпляр, и настройте между ними связь DR.
  • Основное обновление оказывает следующее влияние:

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

    Notice

    Параметрdefault_transaction_read_onlyуправляет параметрами режима "только чтение". Перед обновлением проверьте, были ли внесены какие-либо изменения в этот параметр. Если да, то данные, вставленные в экземпляр во время миграции, будут потеряны после обновления.

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

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

Обновление без миграции

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

    Note

  8. После успешного прохождения проверки нажмитеДалее.
  9. На странице выберите шаблон параметров, установите для параметраCutoverзначениеНет, нажмите кнопкуАвтозаполнениедля вводаUPDATEи нажмитеОбновить сейчас.
  10. Подтвердите информацию об обновлении и нажмитеОтправить.
  11. По завершении обновления убедитесь, что имеется экземпляр целевой версии. Вы можете подключиться к новому экземпляру для тестирования совместимости рабочей нагрузки.

Обновление с миграцией

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

    Note
    • Если вы добавили расширения после успешного прохождения проверки обновления, они могут вызвать проблемы совместимости и привести к сбою обновления. Если это произойдет, выполните проверку снова. Для получения дополнительной информации см.Расширения, неподдерживаемые для основных обновлений версий.
    • Если проверка обновления завершается неудачей, вы можетепросмотреть отчет о проверкенажавПросмотр отчетана страницеПроверка обновленийвкладка и устранить несовместимость на основе отчета.

  8. После успешной проверки нажмитеДалее.
  9. На странице выберите шаблон параметров, установите флажокДадляМиграция нагрузкиукажитеСбор статистикищелкнитеАвтозаполнениечтобы ввестиОБНОВЛЕНИЕи нажмитеОбновить сейчас.

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

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

  10. Подтвердите информацию об обновлении и нажмитеОтправить.
  11. После завершения обновления проверьте наличие экземпляра целевой версии. Ваша рабочая нагрузка будет автоматически переключена на новый экземпляр.

Отчеты о проверках обновлений и отчеты об обновлениях

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

  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для выяснения причин.

    • Исходный кластер содержит роли, начинающиеся с "pg_"

      Пользователи, имена которых начинаются сpg_не допускаются в целевой версии. Удалите или переименуйте этих пользователей заранее.

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

      Существует тип параметра функцииanyarrayилиanyelementкоторый несовместим с целевой версией. Перед обновлением удалите определения функций. После завершения обновления восстановите функции и измените тип параметра (anyarrayнаanycompatiblearrayилиanyelementнаanycompatible). Объекты функций записываются в файлincompatible_polymorphics.txt.

  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: невозможно получить доступ к файлу "xxx": Нет такого файла или каталога.

      Пример:

      FATAL: невозможно получить доступ к файлу "pg_pathman": Нет такого файла или каталога.
    • pg_upgrade_dump_xxxx.log
      • Проверьте последние несколько строк pg_upgrade_dump_xxxx.log. Если отображается ошибка, аналогичная следующей, то в текущем экземпляре слишком много таблиц. В этом случае увеличьте значение параметра max_locks_per_transaction и снова выполните обновление.
        pg_dump: error: запрос завершился ошибкой: ОШИБКА: недостаточно общей памяти
        Подсказка: Возможно, вам потребуется увеличить параметр max_locks_per_transaction.
        pg_dump: error: запрос был следующим: LOCK TABLE "xxx"."xxx" IN ACCESSSHARE MODE
      • Проверьте последние несколько строк pg_upgrade_dump_xxxx.log. Если отображается ошибка, аналогичная следующей, то расширение pgl_ddl_deploy существует в текущем экземпляре. Это расширение несовместимо с целевой версией, поэтому обновление завершилось неудачей. На основании статьи Extensions Unsupported for Major Version Upgrades проверьте наличие других несовместимых сторонних расширений в экземпляре (некоторые несовместимые сторонние расширения нельзя определить с помощью проверки обновления). Удалите их при необходимости и повторите попытку обновления.
        pg_restore: error: невозможно выполнить запрос: ERROR: функция "xxx", описанная в файле xxx, не найдена
        Команда была такой: CREATE FUNCTION "pgl_ddl_deploy"."xxx"