PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Mencatat Kueri di PostgreSQL

  • Menemukan File Konfigurasi
    • Temukan Jalur Direktori Data
  • Mengonfigurasi PostgreSQL untuk Menghasilkan Keluaran Log
    • Mulai ulang Layanan PostgreSQL
  • Memverifikasi Pembuatan Log

Mengaktifkan logging dalam PostgreSQL dibuat cukup mudah dengan mengubah beberapa pengaturan konfigurasi dan kemudian memulai ulang server. Meskipun pengaturan ini dapat diubah “di memori”, sehingga memungkinkan pencatatan log sementara hanya untuk sesi klien tertentu, dalam tutorial ini kita akan membahas cara mengonfigurasi postgres untuk membuat file log iteratif secara permanen untuk semua sesi dan koneksi.

Menemukan File Konfigurasi

Jika Anda tidak yakin di mana postgresql.conf config file berada, metode paling sederhana untuk menemukan lokasi adalah dengan menghubungkan ke klien postgres (psql ) dan keluarkan SHOW config_file; perintah:

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

Dalam hal ini, kita dapat melihat path ke postgresql.conf file untuk server ini adalah /etc/postgresql/9.3/main/postgresql.conf . Sekarang buka saja file itu dengan editor teks favorit Anda dan kita dapat mulai mengubah pengaturan:

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

Temukan Jalur Direktori Data

Sebaiknya konfirmasi juga jalur data direktori untuk instalasi postgres Anda. Ini akan berguna di kemudian hari, dan mengambil jalur adalah masalah SHOW sederhana lainnya pernyataan:

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

Pada beberapa instalasi, file konfigurasi dan data direktori akan berada di jalur yang sama, sementara di direktori lain (seperti contoh ini), mereka berbeda. Apa pun itu, salin data ini ke bawah jalur direktori untuk digunakan nanti.

Mengonfigurasi PostgreSQL untuk Menghasilkan Keluaran Log

Dengan postgresql.conf file terbuka, gulir ke bawah ke ERROR REPORTING AND LOGGING bagian dan Anda mungkin akan melihat sejumlah opsi konfigurasi dikomentari. Yang paling penting dari pengaturan ini adalah log_destination dan logging_collector . Di bawah ini adalah pengaturan yang disarankan, meskipun Anda bebas mengubahnya agar sesuai dengan kebutuhan Anda:

#------------------------------------------------------------------------------
# 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

Di sini kami memberi tahu postgres untuk membuat log di CSV memformat dan menampilkannya ke pg_log direktori (dalam data direktori). Kami juga telah membatalkan komentar pada log_filename pengaturan untuk menghasilkan beberapa nama yang tepat termasuk cap waktu untuk file log.

Anda dapat menemukan informasi rinci tentang semua pengaturan ini dalam official documentation .

Mulai ulang Layanan PostgreSQL

Langkah terakhir adalah me-restart layanan PostgreSQL agar pengaturan ini, khususnya logging_collector , akan berlaku. Melakukan restart postgres akan berbeda dari satu sistem ke sistem lainnya, tetapi biasanya untuk sistem unix perintahnya akan terlihat seperti ini:

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

Memverifikasi Pembuatan Log

Setelah sistem dimulai ulang, pencatatan harus segera dimulai. Untuk memastikan hal ini terjadi, navigasikan ke data/pg_log direktori instalasi postgres Anda. Ingat bahwa kami mengambil data jalur direktori sebelumnya, jadi cukup navigasikan ke direktori itu dengan menambahkan /pg_log sampai akhir untuk masuk ke direktori log:

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

Sekarang daftar file dan Anda akan melihat file log telah dibuat setelah restart layanan sebelumnya:

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

Di sana kita memilikinya; file log yang dibuat secara otomatis diaktifkan dengan PostgreSQL dengan mengubah hanya beberapa pengaturan konfigurasi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri rekursif yang digunakan untuk penutupan transitif

  2. Apa yang Harus Diperhatikan jika Replikasi PostgreSQL Anda Lagging

  3. MySQL vs PostgreSQL? Mana yang harus saya pilih untuk proyek Django saya?

  4. Tidak dapat menginstal permata pg di Mavericks dengan Postgres.app

  5. Di mana log PostgreSQL di macOS?