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


12

मेरे पास एक उबंटू सर्वर है जिसमें एक मैसकल डाटबेस है। मैं इस डेटाबेस का रात के दौरान एक अन्य सर्वर (उदाहरण के लिए ओवह) पर एक स्वचालित बैकअप स्थापित करना चाहूंगा।

मुझे नहीं पता कि उसके लिए सबसे अच्छा उपकरण क्या होगा। अगर किसी को कुछ सलाह है ...

अग्रिम में धन्यवाद।

जवाबों:


29

इस कार्य को स्वचालित करने का सबसे आसान तरीका MySQL डंप और क्रोनजॉब का संयोजन होगा। आप इस विषय पर और अन्य इंटरनेट साइटों पर बहुत सारी जानकारी पा सकते हैं, लेकिन पूरा होने के लिए:

एक mysqldump.sh फ़ाइल बनाएँ

जिसमें mysql डंप कमांड होगा, हम एक क्रॉन जॉब में शेड्यूल करेंगे (अपने पर्यावरण से मेल खाने के लिए उपयोगकर्ता, पासवर्ड और पथ बदलें):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

संपादित करें: यदि आप स्क्रिप्ट को बैकअप को दूरस्थ स्थान पर संग्रहीत करना चाहते हैं, तो बस संबंधित डिवाइस को माउंट करें या स्क्रिप्ट में माउंट पथ का उपयोग करें।

स्क्रिप्ट का परीक्षण करें

सुनिश्चित करें कि स्क्रिप्ट में निष्पादन की अनुमति है:

chmod +x /path/to/mysqldump.sh

स्क्रिप्ट निष्पादित करें:

sh /path/to/mysqldump.sh

और यह सही ढंग से काम कर रहा है (निर्दिष्ट बैकअप फ़ोल्डर में बैकअप फ़ाइल बनाई जाएगी)।

नया क्रॉन जॉब बनाएं और शेड्यूल करें

एक कमांड प्रॉम्प्ट प्रकार में

sudo crontab -e

और फ़ाइल के नीचे निम्नलिखित पंक्ति जोड़ें:

30 23 * * * /path/to/mysqldump.sh

यह 23:30 पर हर दिन स्क्रिप्ट निष्पादित करेगा।

इस सरल स्क्रिप्ट का विस्तार करें

इस सरल बैकअप पद्धति को बेहतर बनाने के लिए आप उन चीजों का भार उठा सकते हैं जो आप कर सकते हैं:

  • एक और प्रणाली का समर्थन
  • डिस्क स्थान की निगरानी करें
  • ईमेल रिपोर्टिंग
  • ...

तो यहाँ समाप्त न करें और प्रयोग करें! :-)

बैकअप-टूल या क्लाउड-आधारित बैकअप-सेवाओं का उपयोग करें

यद्यपि उपरोक्त विधि सबसे आसान में से एक है और इसे आपकी विशिष्ट आवश्यकताओं के अनुरूप बढ़ाया जा सकता है, यह ध्यान देने योग्य है कि अन्य विकल्प हैं:

  • बैकअप उपकरण जैसे कि AutoMySQLBackup, एक ओपन-सोर्स एप्लिकेशन जो आपके बैकअप की ईमेल-अधिसूचना, संपीड़न, एन्क्रिप्शन, रोटेशन और टाइप (जैसे वृद्धिशील) को कॉन्फ़िगर करने की प्रक्रिया को आसान कर सकता है। माई 2018 के लिए, यह एपीटी के माध्यम से उबंटू सर्वर के लिए उपलब्ध है।
  • क्लाउड-आधारित बैकअप-सेवाएं जैसे कि बैकअपबर्ड, मायरिपोनो, बिटकॉन, आदि जो कई डेटाबेस-सर्वरों का प्रबंधन करते हैं और उनके सभी बैकअपों का केंद्रीय प्रबंधन करना चाहते हैं, तो यह दिलचस्प हो सकता है।

कृपया ध्यान रखें कि मैं उपरोक्त किसी भी समाधान और सेवाओं से किसी भी तरह से संबंधित नहीं हूं और मैं उन्हें केवल संदर्भ के लिए सूचीबद्ध कर रहा हूं, इसलिए उन्हें अपने जोखिम पर उपयोग करें।

उपयोगी लिंक / संदर्भ:

क्रोन -> https://en.wikipedia.org/wiki/Cron

MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


4
उपयोग date +%F- जो स्वचालित रूप से उपयोगकर्ता के स्थान (उदाहरण के लिए, मुझे मिल जाएगा YYYY-MM-DD) के अनुकूल वर्ष + माह + की तारीख का एक संयोजन चुन लेगा ।
मूरू

अरे हाँ, बहुत बेहतर है। मैं उत्तर को संपादित करूँगा :-)
एडुआर्डो लोपेज़

+1 अच्छा जवाब: वास्तव में यहाँ क्या आवश्यक है, अधिक नहीं, कम नहीं।
22

2
यदि आपको इस ऑपरेशन (a) कॉल को करने के लिए sudo का उपयोग करना है sudo crontab -eऔर स्क्रिप्ट को निष्पादन योग्य बनाना न भूलें:chmod +x /path/to/mysqldump.sh
zinon

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