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


Ограничения в Базе данных Azure для PostgreSQL (Гибкий сервер)

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

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

Максимальное количество соединений

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

Название продукта Количество виртуальных ядер Размер памяти Максимальное количество соединений Максимальное число пользовательских подключений
С увеличивающейся производительностью
B1ms 1 2 ГиБ 50 35
B2s 2 4 ГиБ 429 414
B20ms 2 8 ГиБ 859 844
B4 мс 4 16 ГиБ 1,718 1,703
B8ms 8 32 ГиБ 3437 3,422
B12ms 12 48 ГиБ 5,000 4,985
B16ms 16 64 ГиБ 5,000 4,985
B20ms 20 80 ГиБ 5,000 4,985
Общего назначения
D2s_v3 / D2ds_v4 / D2ds_v5 / D2ads_v5 2 8 ГиБ 859 844
D4s_v3 / D4ds_v4 / D4ds_v5 / D4ads_v5 4 16 ГиБ 1,718 1,703
D8s_v3 / D8ds_V4 / D8ds_v5 / D8ads_v5 8 32 ГиБ 3437 3,422
D16s_v3 / D16ds_v4 / D16ds_v5 / D16ads_v5 16 64 ГиБ 5,000 4,985
D32s_v3 / D32ds_v4 / D32ds_v5 / D32ads_v5 32 128 ГиБ 5,000 4,985
D48s_v3 / D48ds_v4 / D48ds_v5 / D48ads_v5 48 192 ГиБ 5,000 4,985
D64s_v3 / D64ds_v4 / D64ds_v5 / D64ads_v5 64 256 Гиб 5,000 4,985
D96ds_v5 / D96ads_v5 96 384 ГиБ 5,000 4,985
Оптимизировано для обработки в памяти
E2s_v3 / E2ds_v4 / E2ds_v5 / E2ads_v5 2 16 ГиБ 1,718 1,703
E4s_v3 / E4ds_v4 / E4ds_v5 / E4ads_v5 4 32 ГиБ 3437 3,422
E8s_v3 / E8ds_v4 / E8ds_v5 / E8ads_v5 8 64 ГиБ 5,000 4,985
E16s_v3 / E16ds_v4 / E16ds_v5 / E16ads_v5 16 128 ГиБ 5,000 4,985
E20ds_v4 / E20ds_v5 / E20ads_v5 20 160 ГиБ 5,000 4,985
E32s_v3 / E32ds_v4 / E32ds_v5 / E32ads_v5 32 256 Гиб 5,000 4,985
E48s_v3 / E48ds_v4 / E48ds_v5 / E48ads_v5 48 384 ГиБ 5,000 4,985
E64s_v3 / E64ds_v4 / E64ds_v5 / E64ads_v5 64 432 ГиБ 5,000 4,985
E96ds_v5 / E96ads_v5 96 672 Гиб 5,000 4,985

Зарезервированные слоты подключения, в настоящее время в 15, могут измениться. Мы регулярно проверяем общее зарезервированное подключение на сервере. Вычислите это число путем суммирования значений reserved_connections параметров сервера и superuser_reserved_connections параметров сервера. Максимальное количество доступных подключений пользователей — max_connections (reserved_connections + superuser_reserved_connections).

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

Изменение значения max_connections

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

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

Внимание

Хотя можно увеличить значение max_connections за пределами параметра по умолчанию, мы советуем против него.

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

Если вам нужны дополнительные подключения, мы рекомендуем вместо этого использовать PgBouncer, встроенное решение Azure для управления пулом подключений. Используйте его в режиме транзакции. Для начала рекомендуется использовать консервативные значения, умножая виртуальные ядра в диапазоне от 2 до 5. Затем тщательно отслеживайте использование ресурсов и производительность приложений, чтобы обеспечить беспроблемную работу. Подробные сведения о PgBouncer см. в статье PgBouncer в База данных Azure для PostgreSQL — гибкий сервер.

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

FATAL: sorry, too many clients already.

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

Помните, что каждое подключение в База данных Azure для PostgreSQL гибком сервере независимо от того, использует ли он простой или активный, потребляет значительное количество ресурсов из базы данных. Это потребление может привести к проблемам с производительностью за пределами высокой загрузки ЦП, таких как диск и блокировка конфликтов. Дополнительные сведения см. в статье "Количество подключений к базам данных" в вики-сайте PostgreSQL. Дополнительные сведения см. в статье "Определение и решение производительности подключения" в База данных Azure для PostgreSQL гибком сервере.

Функциональные ограничения

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

Операции масштабирования

  • В настоящее время для масштабирования хранилища сервера требуется перезапуск сервера.
  • Хранилище сервера можно масштабировать только в 2x приращения, см . сведения о хранилище .
  • Уменьшение размера хранилища сервера в настоящее время не поддерживается. Единственным способом является дампа и восстановление его в новом База данных Azure для PostgreSQL гибком экземпляре сервера.

Хранилище

  • После настройки размера хранилища его нельзя уменьшить. Необходимо создать новый сервер с требуемым размером хранилища, выполнить операцию дампа вручную и восстановления и перенести базы данных на новый сервер.
  • Когда использование хранилища достигает 95 % или если доступной емкости меньше 5 ГиБ (в зависимости от того, что больше), сервер автоматически переключается в режим только для чтения, чтобы избежать ошибок, связанных с ситуациями с полным диском. В редких случаях, если скорость роста данных опережает время, необходимое для перехода в режим только для чтения, сервер может по-прежнему выйти из хранилища. Вы можете включить автоматическое увеличение хранилища, чтобы избежать этих проблем и автоматически масштабировать хранилище на основе требований рабочей нагрузки.
  • Рекомендуется задать правила генерации оповещений или storage used storage percent превышение определенных пороговых значений, чтобы можно было заранее принять меры, такие как увеличение размера хранилища. Например, можно задать оповещение, если процент хранения превышает 80 % использования.
  • Если вы используете логическую репликацию, необходимо удалить слот логической репликации на основном сервере, если соответствующий подписчик больше не существует. В противном случае файлы журнала накануне записи накапливаются в основном и заполняют хранилище. Если хранилище превышает определенное пороговое значение и если слот логической репликации не используется (из-за недоступного подписчика), База данных Azure для PostgreSQL гибкий сервер автоматически удаляет неиспользуемый логический слот репликации. Это действие освобождает накопленные файлы WAL и предотвращает недоступность сервера, так как хранилище заполнено.
  • Мы не поддерживаем создание пространств таблиц. Если вы создаете базу данных, не укажите имя пространства таблиц. База данных Azure для PostgreSQL гибкий сервер использует сервер по умолчанию, унаследованный от базы данных шаблона. Это небезопасно для предоставления пространства таблиц, например временного, потому что мы не можем гарантировать, что такие объекты будут оставаться постоянными после событий, таких как перезапуск сервера и отработка отказа высокой доступности (HA).

Сеть

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

Высокая доступность

Зоны доступности

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

Подсистема Postgres, расширения и PgBouncer

  • Postgres 10 и более ранних версий не поддерживаются, так как сообщество с открытым исходным кодом отставили их. Если вы должны использовать одну из этих версий, необходимо использовать параметр База данных Azure для PostgreSQL отдельный сервер, который поддерживает старые основные версии 9.5, 9.6 и 10.
  • База данных Azure для PostgreSQL гибкий сервер поддерживает все contrib расширения и многое другое. (дополнительные сведения см. в статье Использование расширений PostgreSQL в базе данных Azure для PostgreSQL).
  • Встроенный пул подключений PgBouncer в настоящее время недоступен для серверов с возможностью ускорения.

Операции остановки и запуска

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

Запланированное обслуживание

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

Резервные копии сервера

  • Система управляет резервными копиями. В настоящее время нет способа запускать резервные копии вручную. Вместо этого рекомендуется использовать pg_dump.

  • Первый моментальный снимок — это полная резервная копия, а последовательные моментальные снимки — разностные резервные копии. Разностные резервные копии резервирует только измененные данные с момента последнего резервного копирования моментальных снимков.

    Например, если размер базы данных составляет 40 ГБ, а подготовленное хранилище составляет 64 ГБ, первая резервная копия моментальных снимков будет составлять 40 ГБ. Теперь, если изменить 4 ГБ данных, следующий размер резервного копирования разностного моментального снимка будет только 4 ГБ. Журналы транзакций (журналы для записи) отделены от полной и разностной резервной копии, и они архивируются непрерывно.

Восстановление сервера

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

Безопасность

  • Хэширование MD5 отключено из Postgres 14 и более поздних версий и собственных паролей Postgres будет хэшировано только с помощью метода SCRAM-SHA-256.