172 похожих чатов

Ребята, а есть для postgresql какой-нибудь трассировщик как в MSSQL?

16 ответов

16 просмотров

Вкратце — нет. Но в принципе, логирование тоже достаточно гибкое (особенно, если Вы superuser PostgreSQL с доступом к серверу), так что получается примерно то же самое.

А чем так замечателен трассировщик в MS SQL? Что он такого позволяет, что не может pl/pgsql debugger: https://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary

Den-KP Автор вопроса
Михаил Шурутов
А чем так замечателен трассировщик в MS SQL? Что о...

Дело не в крутизне, а в его наличии там. Интересная тулза, спасибо, пошел копать

Михаил Шурутов
А чем так замечателен трассировщик в MS SQL? Что о...

Подождите, это же совсем не о том? Трассировщик в MS SQL — это, грубо говоря, аналог "set log_statement=all;", но который включается / выключается в произвольный момент времени, пишет не в лог, а в отдельное выбранное место (в т.ч. можно писать и сразу в таблицу в базе), и может фильтровать запросы по разным критериям ещё до записи их туда.

Yaroslav Schekin
Подождите, это же совсем не о том? Трассировщик в ...

Ну я не в курсе, что делает трассировщик именно в MS SQL.

Михаил Шурутов
Ну я не в курсе, что делает трассировщик именно в ...

Вы спросили "чем так замечателен трассировщик в MS SQL? Что он такого позволяет?" — я ответил. ;)

Den KP
в точку

Да, про 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 (параметров) в активных сессиях, если не страшно, кстати. ;)

Den-KP Автор вопроса
Yaroslav Schekin
Да, про hack с SIGHUP (если Вам нужно "трассироват...

мать моя, крутяк. У меня тревиальнее задача, мне наоборот нужно выследить процесс который делает изменения в БД, а все процессы ходят из под одной учетки

Den KP
мать моя, крутяк. У меня тревиальнее задача, мне н...

А, ну это как раз просто, ALTER SYSTEM, reload и готово. :)

Den-KP Автор вопроса
Yaroslav Schekin
А, ну это как раз просто, ALTER SYSTEM, reload и г...

но через Логирование тогда делать, потом вырубить когда закончу

Den KP
но через Логирование тогда делать, потом вырубить ...

Да. Т.е. для включения ALTER SYSTEM SET ..., SELECT pg_reload_conf(); для выключения ALTER SYSTEM RESET ..., SELECT pg_reload_conf();

Den-KP Автор вопроса
Yaroslav Schekin
Да. Т.е. для включения ALTER SYSTEM SET ..., SELEC...

Благодарю, отличный вариант. Случайно по постгре экспортеру не имеете знаний? ТАм тоже 1 интересный вопрос

Den KP
Благодарю, отличный вариант. Случайно по постгре э...

А "экспортер" — это, вообще, что? И даже СУБД называется постгрес, между прочим. ;)

Den KP
https://github.com/wrouesnel

Нет, ничего не помню конкретного. Да Вы лучше конкретные вопросы здесь задавайте — кто-то знает, скорее всего.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта