मैंने हाल ही में एक एप्लिकेशन को विरासत में मिला है जो PostgreSQL का उपयोग करता है और मैं डेटाबेस में रिकॉर्ड सहेजने से संबंधित समस्याओं का निवारण कर रहा हूं।मैं PostgreSQL लॉग में लेनदेन कैसे ट्रैक करूं?
मुझे पता है कि PostgreSQL मुझे log_line_prefix
में %x
के विशेष मूल्य सहित लॉग में लेनदेन आईडी रिकॉर्ड करने की अनुमति देता है। मैंने जो देखा, वह यह है कि लेनदेन के भीतर होने वाला पहला बयान हमेशा शून्य से लॉग हो जाता है।
अगर मैं psql में निम्न कार्रवाई,
begin;
insert into numbers (1);
insert into numbers (2);
commit;
क्वेरी लॉग शामिल होंगे निम्नलिखित प्रविष्टियों:
2016-09-20 03:07:40 UTC 0 LOG: statement: begin;
2016-09-20 03:07:53 UTC 0 LOG: statement: insert into numbers values (1);
2016-09-20 03:07:58 UTC 689 LOG: statement: insert into numbers values (2);
2016-09-20 03:08:03 UTC 689 LOG: statement: commit;
मेरे लॉग प्रारूप %t %x
है और जैसा कि आप देख सकते हैं, लेन-देन आईडी पहले सम्मिलन कथन के लिए 0 है, लेकिन जब मैं दूसरा डालने निष्पादित करता हूं तो यह 68 9 में बदल जाता है।
कोई भी बता सकता है कि लेनदेन शुरू करने के बाद क्यों PostgreSQL पहले कथन पर सही लेनदेन आईडी लॉग नहीं करता है? या अगर मैं यह गलत कर रहा हूं, तो लॉग फ़ाइल को देखकर एक ही लेनदेन का हिस्सा कौन सा प्रश्न पहचानने का एक और विश्वसनीय तरीका है?