Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных 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
предоставляет ценную информацию о процессе обновления. Он записывает подробные сведения о выполненных операциях и выделяет все ошибки или предупреждения, возникающие. Этот уровень детализации играет важную роль в диагностике и устранении проблем, которые могут возникнуть во время обновления, для более плавного перехода. - Упрощенное устранение неполадок. С прямым доступом к этим журналам можно быстро определить и устранить потенциальные препятствия на обновление, сократить время простоя и свести к минимуму влияние на операции. Журналы служат важным средством устранения неполадок, обеспечивая более эффективное и эффективное решение проблем.
Рекомендации по обновлению и ограничения
Если операция предварительной проверки завершается ошибкой во время обновления основной версии на месте, обновление блокируется с подробным сообщением об ошибке. Ниже приведены известные ограничения, которые могут привести к сбою обновления или непредвиденному поведении:
Неподдерживаемые конфигурации сервера
- Реплики чтения не поддерживаются во время обновления на месте. Перед обновлением основного сервера необходимо удалить реплику для чтения. После обновления реплику можно создать повторно.
- Правила сетевого трафика могут блокировать операции обновления.
- Убедитесь, что гибкий сервер может отправлять и получать трафик через порты 5432 и 6432 в виртуальной сети и в службу хранилища Azure (для архивации журналов).
- Если группы безопасности сети (NSG) ограничивают этот трафик, высокая доступность не будет автоматически включена после обновления. Возможно, потребуется вручную обновить правила NSG и повторно включить высокий уровень доступности.
- Слоты логической репликации не поддерживаются во время обновления основной версии на месте.
- Серверы, использующие хранилище SSDv2, не имеют права на обновление основных версий.
- Представления, зависящие от
pg_stat_activity
, не поддерживаются во время обновления основных версий.
Ограничения расширения
Обновления основной версии на месте не поддерживают все расширения PostgreSQL. Обновление завершится ошибкой во время предварительной проверки, если обнаружены неподдерживаемые расширения.
- Следующие расширения не поддерживаются в любых версиях PostgreSQL:
timescaledb
, , ,pgaudit
dblink
orafce
pg_partman
postgres_fdw
- Следующие расширения не поддерживаются, если целевой объект обновления — PostgreSQL 16 или более поздней версии:
pgrouting
- Следующие расширения не поддерживаются при обновлении до PostgreSQL 17:
pgrouting
,age
, ,azure_ai
hll
pg_diskann
Эти расширения необходимо удалить из параметра сервера azure.extensions перед обновлением. При наличии обновление будет заблокировано.
Соображения PostGIS-Specific
Если вы используете PostGIS или любые зависимые расширения, необходимо настроить параметр сервера search_path для включения:
- Схемы, связанные с PostGIS
- Зависимые расширения, включая:
postgis
,postgis_raster
postgis_sfcgal
,postgis_tiger_geocoder
,postgis_topology
,address_standardizer
address_standardizer_data_us
fuzzystrmatch
Ошибка правильной настройки search_path может привести к сбоям обновления или сбою объектов после обновления.
Замечание
Обновления основной версии на месте поддерживаются на автоматически управляемых серверах. После успешного обновления основной версии на автомигрированном сервере формат имени пользователя username@servername больше не будет поддерживаться. Вместо этого необходимо использовать стандартный формат: имя пользователя. Чтобы избежать проблем с проверкой подлинности, внимательно просмотрите и обновите все строки подключения в приложениях и сценариях, чтобы они использовали обновленный формат имени пользователя после обновления.