.
1. Introduction
MySQL डेटाबेस का बैकअप और रिस्टोर करना सिस्टम सुरक्षा और स्थिरता बनाए रखने के लिए एक आवश्यक कार्य है। डेटा हानि या सर्वर विफलता की स्थिति में तेज़ी से पुनर्प्राप्ति के लिए तैयार रहना आवश्यक है। mysqldump कमांड MySQL डेटाबेस के बैकअप के लिए सामान्यतः उपयोग किया जाने वाला टूल है। यह अपनी सरल सिंटैक्स और विभिन्न विकल्पों के माध्यम से लचीलापन प्रदान करता है।
इस लेख में हम mysqldump कमांड की बुनियादी जानकारी से लेकर उन्नत विकल्पों के उपयोग तक, तथा बैकअप से रिस्टोर करने की प्रक्रियाओं को विस्तार से समझाएंगे।
2. Basic mysqldump Syntax
mysqldump वह कमांड है जिसका उपयोग MySQL डेटा और संरचना को डंप (एक्सपोर्ट) करने के लिए किया जाता है। पहले, बुनियादी सिंटैक्स को देखें।
mysqldump -u [username] -p [database_name] > [output_file_name.sql]
Parameter Description
- -u [username] : MySQL से कनेक्ट करने के लिए उपयोगकर्ता नाम निर्दिष्ट करता है।
- -p : पासवर्ड निर्दिष्ट करता है (यदि छोड़ा गया तो इंटरैक्टिव रूप से पूछा जाएगा)।
- [database_name] : वह डेटाबेस का नाम निर्दिष्ट करता है जिसे आप बैकअप करना चाहते हैं।
- > [output_file_name] : आउटपुट डंप फ़ाइल का पाथ निर्दिष्ट करता है।
इस बुनियादी सिंटैक्स में विकल्प जोड़कर आप विभिन्न परिस्थितियों के अनुसार डंप फ़ाइल बना सकते हैं।
Sample Command
mysqldump -u root -p my_database > my_database_backup.sql
यह कमांड my_database नामक डेटाबेस को my_database_backup.sql नामक फ़ाइल में बैकअप करता है।
3. Common Options and Their Usage
3.1 –all-databases
--all-databases विकल्प का उपयोग करके आप MySQL सर्वर पर सभी डेटाबेस को एक साथ बैकअप कर सकते हैं। यह विकल्प कई डेटाबेस को एक साथ प्रबंधित करने के समय उपयोगी होता है।
mysqldump -u root -p --all-databases > all_databases_backup.sql
3.2 –no-data
--no-data विकल्प केवल डेटाबेस की संरचना को डंप करता है और वास्तविक डेटा को आउटपुट नहीं करता। यह तब उपयोगी होता है जब आप केवल टेबल परिभाषाएँ ही प्रतिलिपि करना चाहते हैं।
mysqldump -u root -p --no-data my_database > my_database_schema.sql
3.3 –add-drop-table
जब आप --add-drop-table विकल्प का उपयोग करते हैं, तो बैकअप फ़ाइल में DROP TABLE स्टेटमेंट शामिल होते हैं। यह रिस्टोर के दौरान डुप्लिकेट टेबल को रोकने और मौजूदा टेबल को ओवरराइट करने में आसानी प्रदान करता है।
mysqldump -u root -p --add-drop-table my_database > my_database_backup.sql
3.4 –lock-tables
--lock-tables विकल्प बैकअप प्रक्रिया के दौरान टेबल को लॉक कर देता है ताकि डंपिंग के समय डेटा में परिवर्तन न हो सके। यह लाइव डेटाबेस के साथ काम करते समय प्रभावी होता है।
mysqldump -u root -p --lock-tables my_database > locked_backup.sql
4. Advanced Options
4.1 Conditional Dump Using the –where Option
आप --where विकल्प का उपयोग करके विशिष्ट शर्तों के आधार पर डेटा डंप कर सकते हैं। उदाहरण के लिए, यदि आप केवल किसी निश्चित तिथि के बाद बनाए गए डेटा को बैकअप करना चाहते हैं, तो यह विकल्प प्रभावी है।
mysqldump -u root -p my_database --where="created_at >= '2023-01-01'" > filtered_data_backup.sql
इस उदाहरण में, केवल वह डेटा बैकअप किया जाता है जहाँ created_at फ़ील्ड 1 जनवरी, 2023 या उसके बाद की है।
4.2 –xml Option
--xml विकल्प डेटा को XML फ़ॉर्मेट में एक्सपोर्ट करता है। जब आप डेटा को ऐसे सिस्टम या एप्लिकेशन को प्रदान करना चाहते हैं जिन्हें XML फ़ॉर्मेट की आवश्यकता होती है, तब इस विकल्प का उपयोग करें।
mysqldump -u root -p --xml my_database > database_backup.xml

5. Restoring Data Using mysqldump
mysqldump से निर्मित बैकअप फ़ाइल से डेटाबेस को रिस्टोर करने के लिए mysql कमांड का उपयोग करें।
mysql -u [username] -p [database_name] < [backup_file.sql]
5.1 Restore Example
निम्नलिखित कमांड my_database_backup.sql फ़ाइल से my_database को रिस्टोर करता है।
mysql -u root -p my_database < my_database_backup.sql
Important Notes
- Overwrite Risk : रिस्टोर के दौरान मौजूदा डेटा ओवरराइट हो सकता है। सावधानी से आगे बढ़ें।
- Check Encoding : मल्टीबाइट कैरेक्टर को संभालते समय, असंगत कैरेक्टर एन्कोडिंग रिस्टोर को सही ढंग से काम करने से रोक सकती है।
6. Backup Strategy Tips
6.1 Automating Regular Backups
क्योंकि डेटाबेस सामग्री लगातार बदल रही है, नियमित बैकअप को स्वचालित करना महत्वपूर्ण है। आप बैकअप को दैनिक रूप से चलाने के लिए एक cron जॉब का उपयोग कर सकते हैं।
0 2 * * * mysqldump -u root -p my_database > /path/to/backup/my_database_$(date +\%F).sql
इस उदाहरण में, बैकअप हर दिन सुबह 2:00 बजे चलता है, और तिथि फाइल नाम में शामिल की जाती है।
6.2 क्रमिक बैकअप
हर बार सभी डेटा का बैकअप लेने के बजाय, क्रमिक बैकअप आपको केवल संशोधित डेटा का बैकअप लेने की अनुमति देते हैं। --where विकल्प का उपयोग करके केवल हाल ही में बदले गए डेटा को डंप करके, आप दक्षता में सुधार कर सकते हैं।
7. सारांश
mysqldump टूल MySQL बैकअप के लिए अत्यंत उपयोगी है। यह सरल लेकिन शक्तिशाली है। बुनियादी उपयोग और उन्नत विकल्पों को समझकर और एक बैकअप रणनीति विकसित करके, आप सिस्टम सुरक्षा और डेटा संरक्षण को बढ़ा सकते हैं। नियमित बैकअप को स्वचालित करना और क्रमिक बैकअप का उपयोग करना कुशल डेटा प्रबंधन की कुंजी है।
अपने mysqldump-आधारित बैकअप संचालन को अनुकूलित करने और अपनी डेटाबेस प्रबंधन प्रथाओं को सुधारने के लिए इस लेख का संदर्भ के रूप में उपयोग करें।


