PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में क्वेरी कैसे लॉग करें

  • कॉन्फ़िगरेशन फ़ाइल का पता लगाना
    • डेटा निर्देशिका पथ का पता लगाएँ
  • लॉग आउटपुट उत्पन्न करने के लिए PostgreSQL को कॉन्फ़िगर करना
    • PostgreSQL सेवा को पुनरारंभ करें
  • लॉग जनरेशन सत्यापित करना

मुट्ठी भर कॉन्फ़िगरेशन सेटिंग्स को बदलकर और फिर सर्वर को पुनरारंभ करके PostgreSQL के भीतर लॉगिंग को सक्षम करना काफी आसान बना दिया गया है। हालांकि इन सेटिंग्स को "मेमोरी में" बदला जा सकता है, जिससे केवल उस विशेष क्लाइंट सत्र के लिए अस्थायी लॉगिंग को सक्षम किया जा सकता है, इस ट्यूटोरियल में हम सभी सत्रों और कनेक्शनों के लिए स्थायी रूप से पुनरावृत्त लॉग फ़ाइलों को बनाने के लिए पोस्टग्रेज़ को कॉन्फ़िगर करने के तरीके को कवर करेंगे।

कॉन्फ़िगरेशन फ़ाइल का पता लगाना

यदि आप सुनिश्चित नहीं हैं कि postgresql.conf . कहां है config फ़ाइल स्थित है, तो स्थान खोजने का सबसे सरल तरीका पोस्टग्रेज़ क्लाइंट से कनेक्ट करना है (psql ) और SHOW config_file; . जारी करें आदेश:

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

इस मामले में, हम postgresql.conf . का पथ देख सकते हैं इस सर्वर के लिए फ़ाइल है /etc/postgresql/9.3/main/postgresql.conf . अब बस उस फ़ाइल को अपने पसंदीदा टेक्स्ट एडिटर के साथ खोलें और हम सेटिंग बदलना शुरू कर सकते हैं:

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

डेटा निर्देशिका पथ का पता लगाएँ

data . के पथ की पुष्टि करना भी एक अच्छा विचार है आपके पोस्टग्रेज इंस्टालेशन के लिए निर्देशिका। यह बाद में उपयोगी होगा, और पथ को पुनः प्राप्त करना एक और आसान SHOW का मामला है कथन:

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

कुछ स्थापनाओं पर, कॉन्फ़िगरेशन फ़ाइल और data निर्देशिका एक ही पथ के साथ होगी, जबकि अन्य में (इस उदाहरण की तरह), वे अलग हैं। किसी भी तरह से, इस data को कॉपी करें बाद में उपयोग के लिए निर्देशिका पथ।

PostgreSQL को लॉग आउटपुट जेनरेट करने के लिए कॉन्फ़िगर करना

postgresql.conf . के साथ फ़ाइल खुली, नीचे स्क्रॉल करके ERROR REPORTING AND LOGGING . पर जाएं अनुभाग और आप संभावित रूप से टिप्पणी किए गए कई कॉन्फ़िगरेशन विकल्पों को देखेंगे। इन सेटिंग्स में सबसे महत्वपूर्ण हैं log_destination और logging_collector . नीचे अनुशंसित सेटिंग्स दी गई हैं, हालांकि अपनी आवश्यकताओं के अनुरूप इन्हें बदलने में संकोच न करें:

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

यहां हम पोस्टग्रेज को CSV . में लॉग जेनरेट करने के लिए कह रहे हैं प्रारूप और उन्हें pg_log . पर आउटपुट करने के लिए निर्देशिका (data के भीतर) निर्देशिका)। हमने log_filename . पर भी टिप्पणी नहीं की है लॉग फ़ाइलों के लिए टाइमस्टैम्प सहित कुछ उचित नाम बनाने के लिए सेटिंग।

आप इन सभी सेटिंग्स के बारे में विस्तृत जानकारी official documentation . में पा सकते हैं ।

PostgreSQL सेवा को पुनरारंभ करें

अंतिम चरण पोस्टग्रेएसक्यूएल सेवा को फिर से शुरू करना है ताकि ये सेटिंग्स, विशेष रूप से logging_collector , प्रभावी होगा। एक पोस्टग्रेज पुनरारंभ करना सिस्टम से सिस्टम में भिन्न होगा, लेकिन आम तौर पर एक यूनिक्स सिस्टम के लिए कमांड कुछ इस तरह दिखाई देगा:

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

लॉग जनरेशन सत्यापित करना

एक बार सिस्टम के पुनरारंभ होने के बाद लॉगिंग तुरंत शुरू होनी चाहिए। यह सुनिश्चित करने के लिए, data/pg_log . पर नेविगेट करें आपके पोस्टग्रेज इंस्टॉलेशन की निर्देशिका। याद रखें कि हमने data को पकड़ लिया है निर्देशिका पथ पहले, इसलिए बस /pg_log . जोड़कर उस निर्देशिका में नेविगेट करें लॉग डायरेक्टरी में जाने के लिए अंत तक:

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

अब फाइलों को सूचीबद्ध करें और आप देखेंगे कि पिछली सेवा के पुनरारंभ होने के बाद एक लॉग फ़ाइल बनाई गई है:

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

वहाँ हमारे पास है; स्वचालित रूप से जेनरेट की गई लॉग फ़ाइलें केवल कुछ कॉन्फ़िगरेशन सेटिंग्स को बदलकर PostgreSQL के साथ सक्षम होती हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज उबंटू के लिए पीडीओ स्थापित करें

  2. पीजी ::डुप्लीकेटटेबल:त्रुटि:संबंध पोस्ट पहले से मौजूद हैं

  3. रेल में, {adapter=>postgresql के लिए डेटाबेस नहीं बना सका,

  4. जांचें कि पोस्टग्रेस सरणी में मान मौजूद है या नहीं

  5. postgresql डुप्लीकेट कुंजी अद्वितीय बाधा का उल्लंघन करती है