<टेम्पलेट x-if=visible><टेम्पलेट x-if=$isMobile()> <टेम्पलेट x-if=!$isMobile()> <टेम्पलेट x-if=खुला>टेम्पलेट> टेम्पलेट>
MySQL औरMariaDB में डेटाबेस या डेटाबेस के सिस्टम का बैकअप बनाने की प्रक्रिया को सरल बनाने के लिए themysqldump उपयोगिता शामिल है। mysqldump
का उपयोग करना एक तार्किक बैकअप बनाता है . आप इस टूल का उपयोग केवल तभी कर सकते हैं जब आपकी डेटाबेस प्रक्रिया पहुंच योग्य हो और चल रही हो।
यदि आपका डेटाबेस किसी भी कारण से एक्सेस योग्य नहीं है, तो आप इसके बजाय एकभौतिक बैकअप . बना सकते हैं , जो फाइल सिस्टम संरचना की एक प्रति है जिसमें आपका डेटा होता है।
इस गाइड के निर्देश MySQL और MariaDB दोनों पर लागू होते हैं। सरलीकरण के लिए, MySQL नाम का उपयोग किसी एक पर लागू करने के लिए किया जाएगा।
शुरू करने से पहले
-
बैकअप चलाने के लिए आपको एक कार्यरत MySQL या MariaDB स्थापना और डेटाबेस उपयोगकर्ता की आवश्यकता होगी। स्थापना में सहायता के लिए, लाइनोड MySQL दस्तावेज़ देखें।
-
आपको सिस्टम तक रूट पहुंच की आवश्यकता होगी, या
sudo
. के साथ एक उपयोगकर्ता खाते की आवश्यकता होगी विशेषाधिकार।
डेटाबेस का बैकअप लें
mysqldump
कमांड का सामान्य सिंटैक्स है:
mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
mysqldump
बैकअप प्रक्रिया शुरू करने से पहले पासवर्ड के लिए संकेत देता है।- डेटाबेस के आकार के आधार पर, इसे पूरा होने में कुछ समय लग सकता है।
- डेटाबेस बैकअप उस निर्देशिका में बनाया जाएगा जिस पर कमांड चलाया जाता है।
-$(date +%F)
फ़ाइल नाम में टाइमस्टैम्प जोड़ता है।
उदाहरण के उपयोग के मामलों में शामिल हैं:
-
संपूर्ण डेटाबेस प्रबंधन प्रणाली (DBMS) का बैकअप बनाएँ:
mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
-
एक विशिष्ट डेटाबेस का बैकअप लें। बदलें
db1
उस डेटाबेस के नाम के साथ जिसका आप बैकअप लेना चाहते हैं:mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
-
किसी भी डेटाबेस से एकल तालिका का बैकअप लें। नीचे दिए गए उदाहरण में,
table1
डेटाबेस से निर्यात किया जाता हैdb1
:mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
यहां mysqldump
का विश्लेषण दिया गया है ऊपर इस्तेमाल किए गए कमांड विकल्प:
--single-transaction
:सर्वर से डेटा डंप करने से पहले एक BEGIN SQL स्टेटमेंट जारी करें।--quick
:डंपिंग टेबल को पंक्ति दर पंक्ति लागू करें। यह कम RAM और/या बड़े डेटाबेस वाले सिस्टम के लिए अतिरिक्त सुरक्षा प्रदान करता है जहां मेमोरी में तालिकाओं को संग्रहीत करना समस्याग्रस्त हो सकता है।--lock-tables=false
:बैकअप सत्र के लिए तालिकाओं को लॉक न करें।
क्रॉन के साथ स्वचालित बैकअप
प्रविष्टियां /etc/crontab
में जोड़ी जा सकती हैं डेटाबेस बैकअप को नियमित रूप से शेड्यूल करने के लिए।
-
बैकअप करने वाले MySQL रूट उपयोगकर्ता के लॉगिन क्रेडेंशियल रखने के लिए एक फ़ाइल बनाएँ। ध्यान दें कि जिस सिस्टम उपयोगकर्ता की होम निर्देशिका में यह फ़ाइल संग्रहीत है, वह किसी भी MySQL उपयोगकर्ता से असंबंधित हो सकता है।
- फाइल:/ होम/example_user/.mylogin.cnf
1 2 3
[client] user = root password = MySQL root user's password
-
क्रेडेंशियल फ़ाइल की अनुमतियों को प्रतिबंधित करें:
chmod 600 /home/example_user/.mylogin.cnf
-
क्रॉन जॉब फाइल बनाएं। नीचे एक उदाहरण क्रॉन जॉब है जो हर दिन 1 बजे संपूर्ण डेटाबेस प्रबंधन प्रणाली का बैकअप लेता है:
- फाइल:/ आदि/cron.daily/mysqldump
1
0 1 * * * /usr/bin/mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +\%F).sql
क्रॉन के बारे में अधिक जानकारी के लिए, thecron(8) andcron(5) मैनुअल पेज देखें।
बैकअप पुनर्स्थापित करें
रेस्टोरेशन कमांड का सामान्य सिंटैक्स है:
mysql -u [username] -p [databaseName] < [filename].sql
-
संपूर्ण DBMS बैकअप पुनर्स्थापित करें। आपको MySQL रूट उपयोगकर्ता के पासवर्ड के लिए संकेत दिया जाएगा:
यह MySQL डेटाबेस सिस्टम के सभी मौजूदा डेटा को अधिलेखित कर देगाmysql -u root -p < full-backup.sql
-
एकल डेटाबेस डंप को पुनर्स्थापित करें। डेटा को आयात करने के लिए एक खाली या पुराना गंतव्य डेटाबेस पहले से मौजूद होना चाहिए, और जिस MySQL उपयोगकर्ता को आप कमांड चला रहे हैं, उसके पास उस डेटाबेस तक लेखन पहुंच होनी चाहिए:
mysql -u [username] -p db1 < db1-backup.sql
-
एकल तालिका को पुनर्स्थापित करें, आपके पास डेटा प्राप्त करने के लिए एक गंतव्य डेटाबेस तैयार होना चाहिए:
mysql -u dbadmin -p db1 < db1-table1.sql
अधिक जानकारी
आप इस विषय पर अतिरिक्त जानकारी के लिए निम्नलिखित संसाधनों से परामर्श करना चाह सकते हैं। हालांकि ये इस उम्मीद में प्रदान किए जाते हैं कि वे उपयोगी होंगे, कृपया ध्यान दें कि हम बाहरी रूप से होस्ट की गई सामग्री की सटीकता या समयबद्धता की पुष्टि नहीं कर सकते।
- MySQL डेटाबेस बैकअप मेथड्स पेज
- mysqldump - एक डेटाबेस बैकअप प्रोग्राम, MySQL संदर्भ मैनुअल