Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL या MariaDB का बैकअप लेने के लिए mysqldump का उपयोग करें

<टेम्पलेट 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 में जोड़ी जा सकती हैं डेटाबेस बैकअप को नियमित रूप से शेड्यूल करने के लिए।

  1. बैकअप करने वाले MySQL रूट उपयोगकर्ता के लॉगिन क्रेडेंशियल रखने के लिए एक फ़ाइल बनाएँ। ध्यान दें कि जिस सिस्टम उपयोगकर्ता की होम निर्देशिका में यह फ़ाइल संग्रहीत है, वह किसी भी MySQL उपयोगकर्ता से असंबंधित हो सकता है।

    फाइल:/ होम/example_user/.mylogin.cnf
    1
    2
    3
    
    [client]
    user = root
    password = MySQL root user's password
  2. क्रेडेंशियल फ़ाइल की अनुमतियों को प्रतिबंधित करें:

    chmod 600 /home/example_user/.mylogin.cnf
    
  3. क्रॉन जॉब फाइल बनाएं। नीचे एक उदाहरण क्रॉन जॉब है जो हर दिन 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 संदर्भ मैनुअल

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql एक क्रमबद्ध सरणी के भीतर क्वेरी का चयन करें

  2. 15 मिनट के अंतराल से समूह mysql क्वेरी

  3. mysql में किसी तालिका से डुप्लिकेट पंक्तियों को कैसे हटाएं?

  4. SQLite - रैंड द्वारा ऑर्डर ()

  5. Ubuntu 14.04 पर MySQL 5.5 से 5.6 में अपग्रेड कैसे करें