१. परिचय
MySQL धेरै वेबसाइटहरू र अनुप्रयोगहरूका लागि व्यापक रूपमा प्रयोग हुने डाटाबेस व्यवस्थापन प्रणाली हो। यसको उपकरणहरू मध्ये, mysqldump कमाण्ड डाटाबेस ब्याकअपहरू सिर्जना गर्न र माइग्रेशनहरू ह्यान्डल अत्यावश्यक छ। ठूलो डाटाबेसबाट केवल विशिष्ट तालिकाहरूको ब्याकअप लिनु पर्दा यो कमाण्ड विशेष रूपमा उपयोगी हुन्छ।
यस लेखमा, हामी विस्तृत रूपमा mysqldump कमाण्ड प्रयोग गरेर विशिष्ट तालिकाहरू कसरी डम्प गर्ने भन्ने कुरा व्याख्या गर्नेछौं। यो मार्गदर्शन शुरुआतीहरूका लागि अनुकूल छ, तर हामी मध्यवर्ती प्रयोगकर्ताहरूका लागि उन्नत विकल्पहरू र व्यावहारिक प्रयोग केसहरू पनि समेट्नेछौं।
२. 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: ब्याकअप प्रक्रियामा तालिका लक हुनबाट रोक्छ

३. विशिष्ट तालिकाहरू डम्प गर्ने
एकल तालिका डम्प गर्ने
केवल एकल तालिकाको ब्याकअप लिन, डाटाबेस नामपछि तालिका नाम निर्दिष्ट गर्नुहोस्। उदाहरणका लागि, तलको कमाण्डले केवल 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
यो विधिले तपाईंलाई विशिष्ट ढाँचासँग मिल्ने तालिकाहरू मात्र प्रभावकारी रूपमा ब्याकअप गर्न अनुमति दिन्छ।
४. विकल्पहरू र उन्नत प्रयोग
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 १०० भन्दा ठूलो हुने पङ्क्तिहरू मात्र डम्प गर्न:
mysqldump -u root -p my_database users --where="id > 100" > users_filtered_dump.sql
यो ठूलो तालिकाहरूबाट आवश्यक डेटा उपसमुह मात्र ब्याकअप गर्न उपयोगी हुन्छ।

५. व्यावहारिक उदाहरणहरू
केस १: एकल तालिका ब्याकअप गर्ने
उदाहरणका लागि, employees डाटाबेसबाट केवल salary तालिका ब्याकअप गर्न:
mysqldump -u root -p employees salary > salary_dump.sql
केस २: शर्तहरू सहित डेटा ब्याकअप गर्ने
केवल डेटा को एक उपसमुह डम्प गर्न, --where विकल्प प्रयोग गर्नुहोस्। उदाहरणका लागि, users तालिकाबाट id १०० भन्दा ठूलो हुनेङ्क्तिहरू मात्र ब्याकअप गर्न:
mysqldump -u root -p my_database users --where="id > 100" > users_partial_dump.sql
६. उत्तम अभ्यासहरू र विचारहरू
तालिका लक समस्याहरू टाल्ने
जब mysqldump प्रयोग गरिन्छ, तालिकाहरू लक हुन सक्छन्, जसले अन्य अपरेसनहरूलाई रोक्दछ। उत्पादन प्रणालीहरूमा, डाउनटाइम टाल्न --single-transaction विकल्प प्रयोग गर्न सिफारिस गरिन्छ। InnoDB तालिकाहरूको लागि, यसलाई --skip-lock-tables सँग मिलाएर प्रयोग गर्दा अझ सुरक्षित हुन्छ।
ठूलो डेटा मात्रा ह्यान्डल गर्ने
धेरै ठूलो डेटाबेसहरूका लागि, डम्प प्रक्रिया धेरै समय लिन सक्छ। सामान्य अभ्यास भनेको gzip प्रयोग गरेर आउटपुटलाई वास्तविक समयमा सङ्कुचन गर्नु हो:
mysqldump -u root -p my_database | gzip > backup_$(date +%Y%m%d).sql.gz
यो आदेशले डम्प सिर्जना हुँदै गर्दा सङ्कुचन गरेर डिस्क स्पेस बचत गर्दछ।

७ निष्कर्ष
यस लेखमा, हामीले mysqldump आदेश प्रयोग गरेर विशिष्ट तालिकाहरू कसरी डम्प गर्ने भन्ने बारे चर्चा गरेका छौं। आधारभूत सिन्ट्याक्सदेखि सर्तीय डम्प, संरचना‑केवल वा डेटा‑केवल निर्यात, र स्क्रिप्टहरूद्वारा स्वचालनसम्म, विभिन्न प्रयोग केसहरू अन्वेषण गरेका छौं। mysqldump आदेश एक शक्तिशाली उपकरण हो, जसलाई सही तरिकाले प्रयोग गर्दा डेटाबेस ब्याकअप र माइग्रेशन धेरै सजिलो बनाउँछ।
अर्को लेखमा, हामी अधिक उन्नत mysqldump विकल्पहरूमा गहिरो रूपमा जाँदैछौं र यसलाई अन्य डेटाबेस ब्याकअप उपकरणहरूसँग तुलना गर्नेछौं।


