pg_xlog को हटाने डेबियन खरखरा, Postgresql 9.3Postgres फ़ाइलों
मेरे डेटाबेस नीचे चला गया है क्योंकि विभाजन जहां वॉल फ़ाइलें रखता है पूरा हो गया का उपयोग करने के बाद शुरू नहीं करेंगे। तो, मैंने ./pg_xlog/
के अंदर सब कुछ हटा दिया, क्योंकि मुझे नहीं पता था कि वे क्या थे (हाँ, अविश्वसनीय रूप से बेवकूफ)। अब Postgres सेवा शुरू कर देंगे नहीं है, हालांकि समस्या, syslog के अनुसार:
00000: could not open tablespace directory "pg_tblspc/16386/PG_9.3_201306121": File or directory not found
LOCAL: RelationCacheInitFileRemoveInDir, relcache.c:4895
00000: Primary checkpoint record is invalid
LOCAL: ReadCheckpointRecord, xlog.c:6543
00000: Secondary checkpoint record is invalid
LOCAL: ReadCheckpointRecord, xlog.c:6547
PANIC: XX000: could not locate a valid checkpoint record
LOCAL: StartupXLOG, xlog.c:5228
मैं पूरी तरह यकीन नहीं है कि समस्या यह है कि यह उचित pg_tblspc या चौकी वाल की कुल कमी नहीं मिल सकता है नहीं कर रहा हूँ फ़ाइलें। डेटाबेस को संग्रहीत करने के लिए वास्तविक पथ /dados/PG_9.3_201306121
है। सेवा को फिर से शुरू करने के लिए मैं क्या कर सकता हूं?
EDIT1: ठीक है, मैं चीज़ वापस ऑनलाइन प्राप्त करने में कामयाब रहा हूं। कुछ डेटाबेस भ्रष्ट हो गए। मैंने उनमें से दो को DROPDB
प्रबंधित किया है (बिना सेवा पुनरारंभ करने के लिए उनसे कनेक्ट भी हो सकता है)। मैंने इसे किसी अन्य व्यक्ति को भ्रष्ट करने की कोशिश की, लेकिन त्रुटि फिर से xlog से संबंधित थी। मैंने उस पर एक साफ बहाली करने की कोशिश की है, लेकिन बहाली अपूर्ण थी। फिर, मैंने एक नया डेटाबेस बनाया है और इस डेटाबेस के पुराने बैकअप को पुनर्स्थापित करने का प्रयास किया है। यह अधूरा भी आया।
अब मैं किसी भी डेटाबेस को नहीं छोड़ सकता, न ही नए बना सकता हूं, मुझे हमेशा xlog flush request not satisfied
त्रुटि मिलती है। मैंने pg_resetxlog
चलाने का प्रयास किया है, लेकिन ऐसा कुछ नहीं लगता है। एक और चीज त्रुटि दिखाती है cannot write to block 1 of pg_tblspc/16385/PG_9.3_201306121/36596452/11773
, write error may be permanent
।
EDIT2: ऊपर की समस्या का हिस्सा उस 11773 फ़ाइल के साथ था। मैंने इसे बदलकर 11773.corrupt कर दिया है और अब डेटाबेस मुझे फिर से बनाने और ड्रॉप करने की अनुमति देता है।
Nonono, इसका उपयोग न करें! इसे वापस ले जाएं, इसे बंद करें, पुरानी डेटा निर्देशिका का नाम बदलें, 'initdb' एक नया (या अपने पैकेज के रैपर का उपयोग करें, हालांकि आप इसे पहले सेट अप करते हैं) और फिर अपने डंप को नए PostgreSQL इंस्टेंस में पुनर्स्थापित करें। –