स्वचालित बैकअप बैकअप


20

हर दिन लिनक्स पर पोस्टग्रेज डेटाबेस का स्वचालित रूप से बैकअप लेने का सबसे अच्छा तरीका क्या है?

जवाबों:


11

आप pg_dumpइस तरह का उपयोग कर सकते हैं :

$ pg_dump -h db_host -U user_name db_name > dump_file.sql

कृपया .pgpassफ़ाइल को सेट करने के लिए पहले सोचें , जिसमें पासवर्ड का उपयोग किया जाए यदि कनेक्शन के लिए पासवर्ड की आवश्यकता हो। इस फ़ाइल में निम्न प्रारूप की लाइनें होनी चाहिए:

hostname:port:database:username:password

और पहले चार क्षेत्रों में से प्रत्येक का शाब्दिक मूल्य हो सकता है, या *, जो किसी भी चीज से मेल खाता है। उदाहरण के लिए *:*:*:postgres:pg_password:।

इस .pgpassफ़ाइल को होम डायरेक्टरी में रहना चाहिए ~ / और इस पर अनुमति दुनिया या समूह के लिए किसी भी पहुँच को अस्वीकार करना चाहिए; आज्ञा द्वारा इसे प्राप्त करें chmod 0600 ~/.pgpass


यह स्वचालित रूप से हर रोज वापस करता है ??
अनुज पटेल

@ भारत: नहीं, आपको इसे क्रोन (या समान) से दैनिक चलाना होगा।
बिल वीस

12

Cg से pg_dumpall चलाएं।


7
pg_dumpall अन्य उत्तरों से बेहतर है क्योंकि यह आपके वैश्विक डेटाबेस ऑब्जेक्ट का बैकअप लेता है। (पूर्व: उपयोगकर्ता, आदि ..) आपको अपने डीबी को पूरी तरह से ठीक करने के लिए इनकी आवश्यकता होगी और यदि आपके पास इनमें से बड़ी संख्या है तो इसे फिर से बनाने के लिए गैर-तुच्छ हो सकता है। हालाँकि, pg_dumpall आपके लिए ओवरकिल हो सकता है यदि आप किसी एकल डेटाबेस इंस्टेंस को एक से अधिक डेटाबेस क्लस्टर में बैकअप करना चाहते हैं क्योंकि pg_dumpall हर आवृत्ति का बैकअप लेगा । इसलिए ... अधिकांश तकनीकी प्रश्नोत्तर के रूप में, यह निर्भर करता है।
केविनराए

1
मैं "डेटाबेस" और "डेटाबेस सर्वर" को भ्रमित करता हूं, यह एक अच्छा उदाहरण है। मुझे लगा कि पोस्टर पूरी बात को अच्छी बात कहना चाहेगा।
बिल वीस

6

AutoPostgreSQLBackup का प्रयास करें । यह एक एकल स्क्रिप्ट फ़ाइल है, इसे आसानी से अपनी आवश्यकताओं के लिए कॉन्फ़िगर किया जा सकता है, दैनिक, साप्ताहिक और मासिक शेड्यूलिंग, प्रति ईमेल लॉग, लॉग फ़ाइल या स्टडआउट, आदि।


मैं AutoPostgreSQLBackup का भी उपयोग करता हूं और यह मेरे लिए बहुत अच्छा काम कर रहा है ;-)
Matthieu

4

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


4

pg_rman एक नया उपकरण है, जो वृद्धिशील बैकअप की पेशकश करता है, जो PostgreSQL 8.4 या नए के लिए काम करता है।



1

pg_dump एक अच्छा समाधान है, लेकिन यदि आप बहुत सारे डेटा का बैकअप लेने की कोशिश कर रहे हैं, तो शायद यह मदद कर सकता है:

http://www.postgresql.org/docs/8.1/static/backup-online.html

जो वास्तव में 'रॉ' लॉगिंग का एक प्रकार है, लेकिन यह एक वृद्धिशील बैकअप विधि के रूप में उपयोगी हो सकता है ...


1

यह एक स्क्रिप्ट है जो प्रत्येक डेटाबेस को व्यक्तिगत रूप से बैकअप देगी और साथ ही साथ अक्सर भूल जाते हैं लेकिन महत्वपूर्ण पोस्टग्रेक्यूएल GLOBALS और उपयोगकर्ता लॉगिन जानकारी।

इसका महत्व संपीड़न का लाभ उठाना है जो pg_dumpall प्रदान नहीं करता है और pg_dump को अनदेखा करने वाले डेटा को भूल जाता है।

इसके लिए यहाँ एक pgpass या इसी तरह के सेटअप की आवश्यकता होगी जैसा कि यहाँ वर्णित है http://wiki.postgresql.org/wiki/Pgpass

यह OSX के लिए सेटअप है, लेकिन बस प्रोग्राम पथ को बदलें और यह ठीक काम करेगा।

/ Sqlbackups पर वापस जाता है। स्क्रिप्ट निर्देशिका आकार / निर्देशिका को वापस कर देगी और इसमें ब्रेकपॉइंट होते हैं जो विफल होने पर गैर शून्य स्थिति लौटाएगा। मैंने इसे दैनिक बैकअप करने के लिए pgAgent के संयोजन में उपयोग किया।

स्क्रिप्ट फिर से तैयार, खेद है कि :(


1

जब आप आसानी से बर्मन के साथ पॉइंट-इन-टाइम रिकवरी कर सकते हैं, तो एक दैनिक बैकअप के साथ क्यों निपटें ?


मैं मध्यस्थों को निर्णय लेने देता हूं, लेकिन मेरा मानना ​​है कि वाणिज्यिक उत्पादों को प्लग करने के लिए 5 साल पुराने प्रश्नों को फिर से जीवित करना यहां खराब रूप है।
अपराह्न

अहम्, यह खुला स्रोत है: sourceforge.net/projects/pgbarman/files
Giovanni Toraldo

आप सही कह रहे हैं, मैंने गलत काम किया। मेरी मुख्य चिंता यह नहीं थी कि, वैसे भी, यह एक जवाब देने के बारे में था जो वास्तव में उपयोगकर्ता ने 5 साल बाद नहीं पूछा था। हालांकि, अन्य उत्तरों को पढ़ने के बाद, वे भी इसी तरह के बैक अप समाधान का सुझाव देते हैं, इसलिए मुझे लगता है कि यह उतना बुरा नहीं है। मेरे ध्वज को संभवतः अस्वीकार कर दिया जाएगा और हम इसे एक दिन कहेंगे: D
gentent

0

जैसा कि दूसरों ने कहा है: pg_dumpall

इसके अलावा, लॉग शिपिंग पर एक नज़र डालें। फिर आप अधिक पॉइंट-इन-टाइम बैकअप प्राप्त कर सकते हैं, जिसे आप वापस खेल सकते हैं: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html

या मैनुअल में बैकअप पर अनुभाग के बारे में कैसे:

http://www.postgresql.org/docs/8.3/static/backup.html

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