Управление соединениями в PostgreSQL происходит с помощью менеджера подключений, который размещается перед кластером СУБД. 2 Он позволяет подключиться к базе данных большому числу клиентов без деградации производительности. 2
Менеджер подключений поддерживает три режима управления соединениями: 2
- Сессионный (по умолчанию). 2 Клиентское соединение устанавливается при первом запросе к базе данных и поддерживается до тех пор, пока клиент не разорвёт сессию. 2 Затем это соединение может быть использовано другим или этим же клиентом. 2
- Транзакционный. 2 Клиентское соединение устанавливается при первом запросе к базе данных и поддерживается до завершения транзакции. 2 Затем это соединение может быть использовано другим или этим же клиентом. 2
- Режим запроса. 2 Клиентское соединение поддерживается только при выполнении запроса к базе данных. 2 Затем это соединение может быть использовано другим или этим же клиентом. 2 За раз выполняется только один запрос. 2
Для прекращения работы сервера PostgreSQL позволяет контролировать тип завершения работы, отправляя различные сигналы процессу postgres: 1
- SIGTERM — режим интеллектуального завершения работы. 1 После получения SIGTERM сервер запрещает новые подключения, но позволяет существующим сеансам завершить свою работу в обычном режиме. 1 Он завершает работу только после завершения всех сеансов. 1
- SIGINT — режим быстрого завершения работы. 1 Сервер запрещает новые подключения и отправляет всем существующим серверным процессам SIGTERM, что приведёт к тому, что они прервут свои текущие транзакции и быстро завершат работу. 1 Затем он ожидает завершения всех серверных процессов и, наконец, завершает работу. 1
- SIGQUIT — режим немедленного завершения работы. 1 Сервер отправит SIGQUIT всем дочерним процессам и будет ждать их завершения. 1 Если какой-либо из них не завершится в течение 5 секунд, им будет отправлен SIGKILL. 1 Процесс сервера-супервизора завершается, как только завершаются все дочерние процессы, без выполнения обычной обработки завершения работы базы данных. 1