2011-11-21 6 views
32

Mam PostgreSQL DB na moim komputerze i mam aplikację, która uruchamia kwerendy na nim.PostgreSQL jak sprawdzić, które zapytania zostały uruchomione

Jak mogę sprawdzić, które zapytania zostały uruchomione w moim DB?

Używam komputera z systemem Linux i pgadmin.

+0

wszelkie informacje o tym, jak wygląda twoja aplikacja i jak uzyskuje dostęp do bazy danych? –

Odpowiedz

39

Włącz dzienniku serwera:

log_statement = all 

To będzie rejestrować każde połączenie z serwerem bazy danych.

Nie używałbym log_statement = all na wydajnym serwerze. Tworzy ogromne pliki dziennika.
The manual about logging-parameters:

log_statement (enum)

Kontrole który SQL są rejestrowane. Poprawne wartości to none (wyłączone), ddl, mod i all (wszystkie instrukcje). [...]

Resetowanie parametru log_statement wymaga przeładowania serwera (SIGHUP). Ponowne uruchomienie jest konieczne: , a nie. Przeczytaj the manual on how to set parameters.

Nie należy mylić rejestru serwera z dziennikiem pgAdmin. Dwie różne rzeczy!

Możesz również przejrzeć pliki dziennika serwera w pgAdmin, jeśli masz dostęp do plików (może nie być to miejsce w przypadku serwera zdalnego) i poprawnie je skonfigurować. Spójrz na: Tools -> Server status. Przeczytaj więcej o oknie stanu serwera w manual for pgAdmin III.

Wolę czytać pliki dziennika serwera za pomocą vim (lub wybranego edytora/czytnika).

+0

Brandstetter Po prostu zobaczę logi i wyłączę. Czy wystarczy log_statement = all? Otworzyłem stan serwera zapytał mnie o coś na temat instalacji pakietu, ale otworzyło okno i pisze: Dzienniki nie są dostępne dla tego serwera. Czy powinienem zrestartować mój postgresql? – kamaci

+2

@kamaci: Poprawiłem moją odpowiedź dodatkowymi informacjami. Postępuj zgodnie z podanymi przeze mnie linkami. –

30

PostgreSQL jest bardzo zaawansowany, gdy związane są z technikami rejestrowania

Logi są przechowywane w Installationfolder/data/folderu pg_log. Podczas gdy ustawienia dziennika są umieszczane w pliku postgresql.conf.

Format dziennika jest zwykle ustawiony jako stderr. Zalecany jest jednak format dziennika CSV. W celu umożliwienia zmiany formatu CSV w

  • log_destination = 'stderr, csvlog'
  • logging_collector = on

w celu zalogowania wszystkie zapytania, bardzo przydatne dla nowych instalacji, należy ustawić min.czas realizacji zapytania

  • log_min_duration_statement = 0

Aby zobaczyć aktywne zapytania na bazie danych, należy

  • SELECT * FROM pg_stat_activity

Aby zalogować specyficzny zestaw zapytań typ zapytań

  • log_statement = 'all' # none, ddl, mod, wszystkie

To jest dobry link Aby uzyskać więcej informacji na temat logowania odpytuje

2

znalazłem dziennik plik w /usr/local/var/log/postgres.log na instalacji mac z naparu.