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


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер

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

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

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

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

Процедура

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

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

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

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

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

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

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

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

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

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

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

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

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

После обновления

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

postgres=> analyze;
ANALYZE

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

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

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

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

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

Чтобы начать работу с PG_Upgrade_Logs, можно настроить запись журналов сервера PostgreSQL и журналов обновления основных версий.

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

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

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

Ограничения

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

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

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

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

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

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

    • Расширение pgrouting не поддерживается, если целевой объект обновления — Postgres 16 и выше.

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

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

  • Серверы, использующие хранилище SSDv2, не поддерживают обновления основных версий.

  • Сервер, использующий представления, зависящие от pg_stat_activity не поддерживается.

Замечание

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