Назад | Перейти на главную страницу

странные записи журнала postgresql

Я пытаюсь понять, почему у меня в журнале postgresql появляются странные записи после перезапуска:

2010-05-14 11:30:25 EEST LOG:  database system was shut down at 2010-05-14 11:30:22 EEST
2010-05-14 11:30:25 EEST LOG:  autovacuum launcher started
2010-05-14 11:30:25 EEST LOG:  database system is ready to accept connections
2010-05-14 11:30:25 EEST LOG:  incomplete startup packet
2010-05-14 11:30:40 EEST WARNING:  there is already a transaction in progress
2010-05-14 11:30:40 EEST LOG:  could not receive data from client: Connection reset by peer
2010-05-14 11:30:40 EEST LOG:  unexpected EOF on client connection

Во-первых, есть 2010-05-14 11:30:25 EEST LOG: incomplete startup packet что меня беспокоит. Кто-нибудь знает, почему это происходит?

А еще это очень странно: 2010-05-14 11:30:40 EEST WARNING: there is already a transaction in progress ...

incomplete startup packet означает, что соединение было установлено, но сервер Postgres не получил ожидаемого рукопожатия (я получаю тонну этого, поскольку моя система мониторинга проверяет, открыт ли порт 5432, но недостаточно умен, чтобы войти в систему и запросить БД).
Независимо от того, является ли это проблемой, зависит от того, ожидаете ли вы, что что-то будет подключаться, а не рукопожатие: для меня это не проблема, если вы этого не ожидаете, но если вы этого не ожидаете, это сообщение может быть признаком того, что вы Сканируем порт.

WARNING: there is already a transaction in progress означает именно то, что он говорит: кто-то пытался начать транзакцию, уже находясь в транзакции (BEGIN ... BEGIN).
Если вы часто это видите, кто-то написал плохой SQL в программе, и вы должны найти / исправить его, потому что соответствующий COMMIT и ROLLBACK утверждения могут не делать то, что вы ожидаете. Если вы видите это один раз и больше никогда, кто-то, вероятно, натолкнулся на транзакцию в psql.

В нашей среде неполный стартовый пакет вызван тем, что haproxy отправляет контрольный сигнал с программируемым интервалом (для нас каждые 600000 миллисекунд). Мы используем haproxy в режиме TCP для ретрансляции запросов бизнес-пользователей на повторный запуск отчетов postgres.