PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak rejestrować zapytania w PostgreSQL

  • Lokalizowanie pliku konfiguracyjnego
    • Znajdź ścieżkę katalogu danych
  • Konfigurowanie PostgreSQL do generowania danych wyjściowych dziennika
    • Uruchom ponownie usługę PostgreSQL
  • Weryfikacja generowania dziennika

Włączenie logowania w PostgreSQL jest dość łatwe poprzez zmianę kilku ustawień konfiguracyjnych, a następnie ponowne uruchomienie serwera. Chociaż te ustawienia można zmienić „w pamięci”, umożliwiając w ten sposób tymczasowe rejestrowanie tylko dla tej konkretnej sesji klienta, w tym samouczku omówimy, jak skonfigurować postgres, aby na stałe tworzyć iteracyjne pliki dziennika dla wszystkich sesji i połączeń.

Lokalizowanie pliku konfiguracyjnego

Jeśli nie masz pewności, gdzie postgresql.conf znajduje się plik konfiguracyjny, najprostszą metodą znalezienia lokalizacji jest połączenie z klientem postgres (psql ) i wydaj SHOW config_file; polecenie:

postgres=# SHOW config_file;
               config_file
------------------------------------------
 /etc/postgresql/9.3/main/postgresql.conf

W tym przypadku możemy zobaczyć ścieżkę do postgresql.conf plik dla tego serwera to /etc/postgresql/9.3/main/postgresql.conf . Teraz po prostu otwórz ten plik w swoim ulubionym edytorze tekstu i możemy zacząć zmieniać ustawienia:

$ nano /etc/postgresql/9.3/main/postgresql.conf

Znajdź ścieżkę katalogu danych

Dobrym pomysłem jest również potwierdzenie ścieżki data katalog dla twojej instalacji postgres. Przyda się to później, a pobranie ścieżki to kwestia innego prostego SHOW oświadczenie:

postgres=# SHOW data_directory;
        data_directory
------------------------------
 /var/lib/postgresql/9.3/main

W niektórych instalacjach plik konfiguracyjny i data katalog będzie miał tę samą ścieżkę, podczas gdy w innych (takich jak ten przykład) będą się różnić. Tak czy inaczej, skopiuj te data ścieżka katalogu do późniejszego wykorzystania.

Konfigurowanie PostgreSQL do generowania danych wyjściowych dziennika

Z postgresql.conf otwórz plik, przewiń w dół do ERROR REPORTING AND LOGGING sekcji i prawdopodobnie zobaczysz wiele opcji konfiguracji zakomentowanych. Najbardziej krytyczne z tych ustawień to log_destination i logging_collector . Poniżej znajdują się zalecane ustawienia, ale możesz je zmienić, aby dopasować je do własnych potrzeb:

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'csvlog'              # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
                                        # can include strftime() escapes

Tutaj mówimy postgresowi, aby generował logi w pliku CSV formatować i wyprowadzać je do pg_log katalog (w data informator). Odkomentowaliśmy także log_filename ustawienie, aby utworzyć odpowiednią nazwę, w tym znaczniki czasu dla plików dziennika.

Szczegółowe informacje na temat wszystkich tych ustawień znajdziesz w official documentation .

Ponownie uruchom usługę PostgreSQL

Ostatnim krokiem jest ponowne uruchomienie usługi PostgreSQL, aby te ustawienia, w szczególności logging_collector , zacznie obowiązywać. Wykonanie restartu postgres będzie się różnić w zależności od systemu, ale zazwyczaj w systemie uniksowym polecenie będzie wyglądać mniej więcej tak:

$ service postgresql restart
 * Restarting PostgreSQL 9.3 database server                               [ OK ]

Weryfikowanie generowania logów

Po ponownym uruchomieniu systemu rejestrowanie powinno rozpocząć się natychmiast. Aby upewnić się, że tak jest, przejdź do data/pg_log katalog twojej instalacji postgres. Pamiętaj, że zdobyliśmy data ścieżka do katalogu wcześniej, więc po prostu przejdź do tego katalogu, dodając /pg_log do końca, aby dostać się do katalogu logów:

$ cd /var/lib/postgresql/9.3/main/pg_log

Teraz wypisz pliki i powinieneś zobaczyć, że plik dziennika został utworzony po poprzednim ponownym uruchomieniu usługi:

$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv

Mamy to; automatycznie generowane pliki dziennika są włączane w PostgreSQL poprzez zmianę zaledwie kilku ustawień konfiguracyjnych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:wybierz sumę wartości, a następnie zsumuj ją ponownie

  2. Instalacje PostgreSQL High Availability

  3. Jak UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) w PostgreSQL?

  4. Jak zaimportować istniejące pliki *.sql w PostgreSQL 8.4?

  5. Wbudowany Postgres do wiosennych testów rozruchowych