1. परिचय
MySQL कई वेबसाइटों और अनुप्रयोगों के लिए व्यापक रूप से उपयोग किया जाने वाला डेटाबेस प्रबंधन प्रणाली है। इसके उपकरणों में से, mysqldump कमांड डेटाबेस बैकअप बनाने और माइग्रेशन संभालने के लिए आवश्यक है। यह कमांड विशेष रूप से उपयोगी होती है जब आपको एक बड़े डेटाबेस से केवल विशिष्ट तालिकाओं का बैकअप लेना हो।
इस लेख में, हम विस्तार से समझाएंगे mysqldump कमांड का उपयोग करके विशिष्ट तालिकाओं को डंप कैसे करें। यह गाइड शुरुआती उपयोगकर्ताओं के अनुकूल है, लेकिन हम मध्यवर्ती उपयोगकर्ताओं के लिए उन्नत विकल्पों और व्यावहारिक उपयोग मामलों को भी कवर करेंगे।
2. mysqldump कमांड की मूल सिंटैक्स
सबसे पहले, mysqldump कमांड के मूल उपयोग की समीक्षा करते हैं। यह कमांड पूरे डेटाबेस या चयनित तालिकाओं की संरचना और डेटा को डंप (बैकअप) करने के लिए उपयोग की जाती है।
मूल सिंटैक्स
उपयोगकर्ता नाम, पासवर्ड, डेटाबेस नाम और तालिका नाम निर्दिष्ट करके, आप नीचे दिखाए अनुसार एक विशिष्ट तालिका का बैकअप ले सकते हैं:
mysqldump -u username -p database_name table_name > output_file.sql
-u: डेटाबेस उपयोगकर्ता नाम निर्दिष्ट करता है-p: डेटाबेस पासवर्ड के लिए प्रॉम्प्ट करता हैdatabase_name: डंप करने के लिए डेटाबेस का नामtable_name: डंप करने के लिए विशिष्ट तालिका का नाम> output_file.sql: डंप को सहेजने वाली आउटपुट फाइल
सामान्यतः उपयोग किए जाने वाले विकल्प
--single-transaction: InnoDB तालिकाओं का बैकअप लेते समय लेनदेन की स्थिरता सुनिश्चित करता है--skip-lock-tables: बैकअप प्रक्रिया के दौरान तालिका लॉकिंग को रोकता है

3. विशिष्ट तालिकाओं को डंप करना
एकल तालिका को डंप करना
केवल एकल तालिका का बैकअप लेने के लिए, डेटाबेस नाम के बाद तालिका नाम निर्दिष्ट करें। उदाहरण के लिए, निम्नलिखित कमांड केवल users तालिका को डंप करता है:
mysqldump -u root -p my_database users > users_dump.sql
यह कमांड my_database डेटाबेस से users तालिका की संरचना और डेटा को users_dump.sql में सहेजता है।
कई तालिकाओं को डंप करना
यदि आप एक साथ कई तालिकाओं का बैकअप लेना चाहते हैं, तो तालिका नामों को स्पेस से अलग करके सूचीबद्ध करें:
mysqldump -u root -p my_database users orders products > multiple_tables_dump.sql
यह कमांड users, orders, और products तालिकाओं को एक साथ डंप करता है।
तालिका सूची का उपयोग करना
जब बड़ी संख्या में तालिकाओं के साथ काम कर रहे हों, तो सभी तालिका नामों को मैन्युअल रूप से टाइप करना कष्टप्रद हो सकता है। उस स्थिति में, आप SHOW TABLES कमांड या एक स्क्रिप्ट का उपयोग करके स्वचालित रूप से डंप के लिए तालिका सूची उत्पन्न कर सकते हैं:
mysql -u root -p my_database -N -e "SHOW TABLES LIKE 'hoge%'" > table_list.txt
mysqldump -u root -p my_database `cat table_list.txt` > partial_dump.sql
यह विधि आपको विशिष्ट पैटर्न से मेल खाने वाली केवल तालिकाओं का कुशलतापूर्वक बैकअप लेने की अनुमति देती है।
4. विकल्प और उन्नत उपयोग
mysqldump कमांड में विभिन्न विकल्प शामिल हैं जो आपको अपनी आवश्यकताओं के अनुसार बैकअप को अनुकूलित करने की अनुमति देते हैं। नीचे कुछ उपयोगी मामले दिए गए हैं।
केवल संरचना को डंप करना
यदि आपको केवल तालिका संरचना की आवश्यकता है बिना डेटा के, तो --no-data विकल्प का उपयोग करें:
mysqldump -u root -p my_database --no-data users > users_structure.sql
यह कमांड users तालिका की केवल संरचना को डंप करता है।
केवल डेटा को डंप करना
यदि आपको केवल डेटा चाहिए बिना तालिका संरचना के, तो --no-create-info विकल्प का उपयोग करें:
mysqldump -u root -p my_database --no-create-info users > users_data.sql
यह कमांड users तालिका के केवल डेटा को डंप करता है।
सशर्त डंप
आप --where विकल्प का उपयोग करके केवल विशिष्ट शर्तों से मेल खाने वाली पंक्तियों को डंप कर सकते हैं। उदाहरण के लिए, केवल उन पंक्तियों को डंप करने के लिए जहां id 100 से अधिक हो:
mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql
यह बड़े तालिकाओं से केवल आवश्यक डेटा उपसमूह का बैकअप लेने के लिए उपयोगी है।

5. व्यावहारिक उदाहरण
उपयोग मामला 1: एकल तालिका का बैकअप लेना
उदाहरण के लिए, employees डेटाबेस से केवल salary तालिका का बैकअप लेने के लिए:
mysqldump -u root -p employees salary > salary_dump.sql
उपयोग मामला 2: शर्तों के साथ डेटा का बैकअप लेना
डेटा के केवल एक उपसमुच्चय को डंप करने के लिए, --where विकल्प का उपयोग करें। उदाहरण के लिए, users तालिका से केवल उन पंक्तियों को बैकअप करने के लिए जहाँ id 100 से बड़ा है:
mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql
6. सर्वोत्तम प्रथाएँ और विचार
तालिका लॉक समस्याओं से बचना
mysqldump का उपयोग करते समय तालिकाएँ लॉक हो सकती हैं, जिससे अन्य ऑपरेशनों को रोक दिया जाता है। प्रोडक्शन सिस्टम पर, डाउनटाइम से बचने के लिए --single-transaction विकल्प का उपयोग करने की सलाह दी जाती है। InnoDB तालिकाओं के लिए, इसे --skip-lock-tables के साथ मिलाना और भी सुरक्षित है।
बड़े डेटा वॉल्यूम को संभालना
बहुत बड़े डेटाबेस के लिए, डंप प्रक्रिया में काफी समय लग सकता है। एक सामान्य प्रथा है कि आउटपुट को रीयल‑टाइम में gzip का उपयोग करके संकुचित किया जाए:
mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz
यह कमांड डंप बनते समय ही उसे संकुचित करके डिस्क स्पेस बचाता है।

7. निष्कर्ष
इस लेख में, हमने mysqldump कमांड का उपयोग करके विशिष्ट तालिकाओं को डंप करने के विभिन्न तरीकों को कवर किया। बुनियादी सिंटैक्स से लेकर शर्तीय डंप, केवल संरचना या केवल डेटा निर्यात, और स्क्रिप्ट के साथ स्वचालन तक, हमने कई उपयोग मामलों को समझा। mysqldump एक शक्तिशाली उपकरण है जो सही तरीके से उपयोग किया जाए तो डेटाबेस बैकअप और माइग्रेशन को बहुत आसान बना देता है।
अगले लेख में, हम अधिक उन्नत mysqldump विकल्पों में गहराई से जाएंगे और इसे अन्य डेटाबेस बैकअप टूल्स के साथ तुलना करेंगे।


