PostgreSQL PITR पुनर्स्थापित करें


9

मेरे पास एक PostgreSQL 9.1 सर्वर है जो एक CentOS 5.8 32bit OS पर चल रहा है और मैंने WAL संग्रह को सक्षम किया है। इस सर्वर पर, तीन डेटाबेस हैं: डेटाबेसए, डेटाबेसबी और डेटाबेससी। कोई व्यक्ति डेटाबेस बी पर 12 बजे एक तालिका को हटाता है और मैं उस समय से पहले डेटाबेसबी को पुनर्स्थापित करना चाहता हूं जिस समय तालिका हटा दी गई थी। समय अब ​​3 बजे है।

मैं अन्य दो डेटाबेस में तीन घंटे के डेटा को खोए बिना सिर्फ डेटाबेस बी को 12 बजे तक कैसे पुनर्स्थापित कर सकता हूं?

postgresql.conf

wal_level = archive             
archive_mode = on               
archive_command = 'test ! -f /opt/pgsql/logs/%f && cp %p /opt/pgsql/logs/%f'
max_wal_senders = 100

recovery.conf

restore_command = 'cp /opt/pgsql/logs/%f %p'
recovery_target_time = '2012-06-29 11:59:59 CEST'

मैंने सुबह 9 बजे अपना आधार बैकअप चलाया

pg_basebackup -h 127.0.0.1 -D /opt/pgsql/backup

PostgreSQL सेवा दोपहर 3 बजे बंद हो गई थी।

जवाबों:


6

मैं एक अलग स्थान पर समय की वसूली के लिए एक बिंदु करना चाहता हूं, वांछित समय पर पुनर्स्थापित कर रहा हूं, और समस्या डेटाबेस को pg_dump करता हूं। मैं एक डेटाबेस को सामान्य स्थान पर छोड़ता हूँ, इसे फिर से बनाता हूँ, और pg_dump आउटपुट लोड करता हूँ।

सुनिश्चित करें कि आप ऐसा कुछ भी शुरू करने से पहले क्लस्टर के डेटा डायरेक्टरी ट्री की फाइल-सिस्टम स्तरीय प्रतिलिपि बना लें और सहेज लें।


उत्तर के लिए धन्यवाद, +1। क्या आप कृपया अलग स्थान पर पुनर्प्राप्त करने के लिए आवश्यक कदम जोड़ सकते हैं और फिर pg_restore का उपयोग करके पुनर्स्थापित कर सकते हैं? आपके उत्तर के साथ, मैं PITR करने के लिए वास्तविक आधार बैकअप स्थान का उपयोग करने के बारे में सोच रहा हूं।
क्रेग एफ्रेइन

0

क्रिगिटन के उत्तर पर विस्तार करने के लिए, आप pg_dumpकेवल एक तालिका भी कर सकते हैं जिसे गिरा दिया गया था और इसे मौजूदा डेटाबेसबी में फिर से बनाया गया है, इसलिए आपको अन्य तालिकाओं में 6 घंटे का डेटा खोने की आवश्यकता नहीं है।


आपके उत्तर के लिए धन्यवाद, लेकिन तालिकाओं के बीच विभिन्न बाधाओं और संबंधों के सभी मुझे सिर्फ एक को बहाल करने से रोकेंगे।
क्रेग एफ्रेइन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.