Поделиться через


Обновления основных версий в База данных Azure для PostgreSQL — гибкий сервер

Область применения: гибкий сервер Базы данных Azure для PostgreSQL

гибкий сервер База данных Azure для PostgreSQL поддерживает PostgreSQL версии 16, 15, 14, 13, 12 и 11. Сообщество Postgres выпускает новую основную версию, содержащую новые функции примерно один раз в год. Кроме того, каждая основная версия получает периодические исправления ошибок в виде дополнительных выпусков. Дополнительные обновления версий включают изменения, которые являются обратно совместимыми с существующими приложениями. База данных Azure для PostgreSQL гибкий сервер периодически обновляет дополнительные версии во время периода обслуживания клиента.

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

База данных Azure для PostgreSQL гибкий сервер имеет функцию, которая выполняет обновление основной версии на месте сервера с щелчком мыши. Эта функция упрощает процесс обновления, минимизируя нарушения работы пользователей и приложений, обращаюющихся к серверу.

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

Обработка

Ниже приведены некоторые важные рекомендации по обновлению основных версий на месте:

  • Во время обновления основной версии на месте База данных Azure для PostgreSQL гибкий сервер выполняет процедуру предварительной проверки, чтобы определить возможные проблемы, которые могут привести к сбою обновления.

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

    Если предварительная проверка выполнена успешно, База данных Azure для PostgreSQL гибкий сервер останавливает службу и выполняет неявную резервную копию непосредственно перед началом обновления. Служба может использовать эту резервную копию для восстановления экземпляра базы данных до предыдущей версии, если возникла ошибка обновления.

  • База данных Azure для PostgreSQL гибкий сервер использует средство pg_upgrade для выполнения обновлений основных версий на месте. Служба обеспечивает гибкость пропуска версий и обновления непосредственно до более поздних версий.

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

  • Большинство расширений автоматически обновляются до более поздних версий во время обновления основной версии на месте с некоторыми исключениями.

  • Процесс обновления основной версии на месте для База данных Azure для PostgreSQL гибкий сервер автоматически развертывает последнюю поддерживаемую дополнительную версию.

  • Обновление основной версии на месте — это автономная операция, которая приводит к краткому периоду простоя. Время простоя обычно меньше 15 минут. Длительность может отличаться в зависимости от количества системных таблиц.

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

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

После обновления или миграции

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

postgres=> analyze;
ANALYZE

Журналы обновления основных версий

Журналы обновления основных версий (PG_Upgrade_Logs) предоставляют прямой доступ к подробным журналам сервера. Интеграция PG_Upgrade_Logs в процесс обновления может помочь обеспечить более плавный и более прозрачный переход на новые версии PostgreSQL.

Журналы обновления основной версии можно настроить так же, как журналы сервера, используя следующие параметры сервера:

  • Чтобы включить функцию, установите для logfiles.download_enable нее значение ON.
  • Чтобы определить хранение файлов журнала в днях, используйте logfiles.retention_days.

Настройка журналов обновления

Чтобы начать использованиеPG_Upgrade_Logs, можно настроить журналы с помощью портал Azure или Azure CLI. Выберите метод, который лучше всего подходит для рабочего процесса.

Журналы обновления можно получить через пользовательский интерфейс для журналов сервера. Там вы можете отслеживать ход выполнения и подробные сведения об обновлениях основных версий PostgreSQL в режиме реального времени. Этот пользовательский интерфейс предоставляет централизованное расположение для просмотра журналов, чтобы упростить отслеживание и устранение неполадок процесса обновления.

Преимущества использования журналов обновления

  • Аналитические диагностика: PG_Upgrade_Logs предоставляет ценные сведения о процессе обновления. Он записывает подробные сведения о выполненных операциях и выделяет все ошибки или предупреждения, возникающие. Этот уровень детализации играет важную роль в диагностике и устранении проблем, которые могут возникнуть во время обновления, для более плавного перехода.
  • Упрощенное устранение неполадок. С прямым доступом к этим журналам можно быстро определить и устранить потенциальные препятствия на обновление, сократить время простоя и свести к минимуму влияние на операции. Журналы служат важным средством устранения неполадок, обеспечивая более эффективное и эффективное решение проблем.

Ограничения

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

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

  • База данных Azure для PostgreSQL . Гибкий сервер требует возможности отправлять и получать трафик в конечные порты 5432 и 6432 в виртуальной сети, где развернут гибкий сервер, и служба хранилища Azure для архивации журналов.

    Если вы настраиваете группы безопасности сети (NSG) для ограничения трафика на гибкий сервер в развернутой подсети, обязательно разрешите трафик конечным портам 5432 и 6432 в подсети. Разрешить трафик служба хранилища Azure с помощью тега службы служба хранилища Azure в качестве назначения.

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

  • Обновления основной версии на месте не поддерживают определенные расширения, и существуют некоторые ограничения для обновления определенных расширений. Следующие расширения не поддерживаются для всех версий PostgreSQL: Timescaledb, pgaudit, dblink, orafce, . pg_partmanpostgres_fdw

  • При обновлении серверов с установленным расширением PostGIS задайте search_path для параметра сервера явное включение:

    • Схемы расширения PostGIS.
    • Расширения, зависящие от PostGIS.
    • Расширения, которые служат зависимостями для следующих расширений: postgis, postgis_raster, postgis_sfcgal, postgis_tiger_geocoder, postgis_topologyaddress_standardizer, , address_standardizer_data_usfuzzystrmatch (требуется дляpostgis_tiger_geocoder).
  • Серверы, на которых настроены слоты логической репликации, не поддерживаются.

Следующие шаги