Вкратце — нет. Но в принципе, логирование тоже достаточно гибкое (особенно, если Вы superuser PostgreSQL с доступом к серверу), так что получается примерно то же самое.
А чем так замечателен трассировщик в MS SQL? Что он такого позволяет, что не может pl/pgsql debugger: https://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary
Дело не в крутизне, а в его наличии там. Интересная тулза, спасибо, пошел копать
Подождите, это же совсем не о том? Трассировщик в MS SQL — это, грубо говоря, аналог "set log_statement=all;", но который включается / выключается в произвольный момент времени, пишет не в лог, а в отдельное выбранное место (в т.ч. можно писать и сразу в таблицу в базе), и может фильтровать запросы по разным критериям ещё до записи их туда.
Ну я не в курсе, что делает трассировщик именно в MS SQL.
Вы спросили "чем так замечателен трассировщик в MS SQL? Что он такого позволяет?" — я ответил. ;)
Да, про hack с SIGHUP (если Вам нужно "трассировать" конкретный, уже работающий процесс) — это делается примерно так: 0. Настраиваете логирование адекватно (чтобы были видны pid, xid и т.п.), см. документацию. 1. Находите нужный pid. 2. Быстро (скриптом, желательно) выполняете следующее: ALTER SYSTEM SET log_statement=all; В shell: kill -SIGHUP <pid> # Ну или pg_ctl kill ... Опять в SQL: ALTER SYSTEM RESET log_statement; Теперь (до очередной посылки SIGHUP) запросы этого pid будут логироваться. Это hack потому, что стартующие во время выполнения этого скрипта backend-ы могут "подхватывать" эту настройку log_statement. Так же можно "на лету" менять и значения других GUC (параметров) в активных сессиях, если не страшно, кстати. ;)
мать моя, крутяк. У меня тревиальнее задача, мне наоборот нужно выследить процесс который делает изменения в БД, а все процессы ходят из под одной учетки
А, ну это как раз просто, ALTER SYSTEM, reload и готово. :)
но через Логирование тогда делать, потом вырубить когда закончу
Да. Т.е. для включения ALTER SYSTEM SET ..., SELECT pg_reload_conf(); для выключения ALTER SYSTEM RESET ..., SELECT pg_reload_conf();
Благодарю, отличный вариант. Случайно по постгре экспортеру не имеете знаний? ТАм тоже 1 интересный вопрос
А "экспортер" — это, вообще, что? И даже СУБД называется постгрес, между прочим. ;)
https://github.com/wrouesnel
Нет, ничего не помню конкретного. Да Вы лучше конкретные вопросы здесь задавайте — кто-то знает, скорее всего.
Обсуждают сегодня