PostgreSQL डाटाबेस डाटा फाइल इंटीग्रिटी चेक


12

PostgreSQL डेटाबेस सिस्टम को चलाने के दौरान मुझे कैसे पता चलेगा कि मेरा डेटाबेस पूरे 100% अखंडता का है? मूल रूप से मुझे कैसे पता चलेगा कि मेरी डेटा फ़ाइलें और पृष्ठ सभी 100% अच्छे हैं, जिनमें कोई भ्रष्टाचार नहीं है?

Microsoft SQL सर्वर की दुनिया में एक आदेश है जिसे आप DBCC CHECKDB निष्पादित कर सकते हैं जो आपको बताएगा कि क्या समस्याएँ हैं। यहाँ एक लिंक है यदि आपका कमांड पर अधिक सीखने में घुसपैठ करता है। DBCC CHECKDB (लेनदेन-एसक्यूएल)

मैं एक पैरानॉइड डेटाबेस अखंडता दिमाग वाला व्यक्ति हूं (जो कोई भी व्यक्ति जो डीबीए प्रकार की भूमिका में डेटाबेस के साथ काम करता है) होना चाहिए और इस प्रकार का सामान मेरे लिए रात में अच्छी तरह से सोना मुश्किल बनाता है। इस तरह की एक उपयोगिता एक जरूरी है! Google पर खोजों को इस तरह से और मेरी राय में कुछ प्रयासों का पता चला है जब तक कि यह PostgreSQL परियोजना द्वारा एक आधिकारिक स्वीकृत उपकरण नहीं है, मैं इसे इस महत्वपूर्ण चीज के लिए भरोसा नहीं करूंगा।

यहां कुछ लोगों से ऐसे ही सवाल पूछे जा रहे हैं, जिनके साथ मैं कोई वास्तविक निश्चित जवाब नहीं मानता हूं। और मेरी राय से पता चलता है कि PostgreSQL के पास कुछ उपकरण होने चाहिए जो कि Oracle और Microsoft SQL Server के पास हैं।

पहला लिंक इस विषय पर मुझे मिला सबसे दिलचस्प है। मुझे लगता है कि इस लेख में एक टिप्पणी है जो संभवतः इसे बताती है: "डेटाबेस भ्रष्टाचार की पहचान करने और इसे सुधारने की बात आने पर पोस्टग्रेट्स बहुत लंगड़ा होता है। इसका पता लगाने का एकमात्र तरीका डेटाबेस को डंप करके या डेटाबेस में प्रत्येक तालिका से * का चयन करना है। । "

PostgreSQL आंशिक पेज लिखने और डेटा भ्रष्टाचार के खिलाफ कैसे सुरक्षा करता है

डेटा और सूचकांक फ़ाइल भ्रष्टाचार की जाँच - देव शेड

मदद: मेरी मेज भ्रष्ट है!

PostgreSQL: भ्रष्ट प्राथमिक कुंजी, असंगत तालिका

मेरा मानना ​​है कि एक मौका है 9.3 में कुछ भ्रष्टाचार जांचने की विशेषताएं हो सकती हैं। ऐसा प्रतीत होता है कि यदि कोई चुनता है तो पृष्ठ फ़ाइलों की जांच करने की उम्मीद की जा सकती है। यदि आप ZFS और / या पेज चेक समिट के साथ पोस्टग्रेज के भविष्य के संस्करण का उपयोग करने पर विचार करते हैं तो चीजें उज्ज्वल दिख रही हैं। https://commitfest.postgresql.org/action/patch_view?id=759

UPDATE: 14-JAN-2012 - ऐसा लगता है कि ZFS पर आधारित एक फाइल सिस्टम का उपयोग करके डेटा के प्रत्येक ब्लॉक की जांच करके भ्रष्टाचार का पता लगाया जा सकता है। मुझे आगे इस पर गौर करना होगा और देखना होगा कि क्या यह एक ऐसा काम है जो रात में अच्छी तरह से सोने की अनुमति देता है, यह जानते हुए कि उनका डेटाबेस डेटा चुपचाप भ्रष्ट नहीं हो रहा है।

अद्यतन: 17-JAN-2012 - कैसे खोजने के लिए ZFS के साथ फ़ाइलें भ्रष्ट हैं। http://docs.oracle.com/cd/E18752_01/html/819-5461/gbbwl.html#gbcuz

अद्यतन: 14-APR-2014 9.3 को डेटा चेकसमेट्स मिले। https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.3


2
सत्यनिष्ठा से मेरा अभिप्राय पृष्ठ फ़ाइलों और ऐसी की अखंडता से था। सामान का प्रकार जो आप केवल सामान्य रूप से देखते हैं यदि आप क्वेरी लिखते हैं जो उस पृष्ठ को हिट करने के लिए होता है जिसमें भ्रष्टाचार है। उदाहरण के लिए एक डिस्क ड्राइव के रूप में विफल करने के लिए शुरू होता है पर कुछ डेटा खराब हो सकता है। आप इसे कैसे देखेंगे?
कुबेरचौं

जवाबों:


8

9.3 से पहले के PostgreSQL में ब्लॉक चेकसम नहीं थे। यह सुविधा 9.3 में जोड़ी गई थी (इस सवाल के पोस्ट होने के लंबे समय बाद)।

आपकी आवश्यकताओं का उत्तर देने के लिए, मैं शायद अपने स्वयं के चेकसमिंग (ट्रिगर्स?) का विकास करूंगा - विशेषता मानों पर काम करना, न कि डेटा पेज।


4
जोड़ने योग्य हो सकता है कि पोस्टग्रेज 9.3 के बाद से आप वैकल्पिक रूप से चेकसम को
a_horse_with_no_name
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.