MySQL डेटाबेस का बैकअप लेना और पुनर्स्थापित करना (Windows संस्करण)

पेज अद्यतन :
पेज निर्माण की तारीख :

ऑपरेटिंग वातावरण

MySQL
  • MySQL 8.0 सामुदायिक संस्करण
विंडोज़
  • विंडोज 11

आवश्यकताएँ

MySQL
  • MySQL 8.0
विंडोज़
  • विंडोज 11
  • विंडोज 10
विंडोज सर्वर
  • विंडोज सर्वर 2022
  • विंडोज सर्वर 2019
  • विंडोज सर्वर 2016
  • विंडोज सर्वर 2012 आर 2

पूर्व शर्त

  • MySQL के लिए एक डेटाबेस स्थापित किया गया है।
  • बैकअप लिया जाने वाला डेटाबेस पहले से मौजूद है.
  • आपने पर्यावरण चर सेट किए हैं ताकि आप कमांड प्रॉम्प्ट से mysql चला सकें।

बैकअप कितने प्रकार के होते हैं?

हालांकि यहां विस्तार से चर्चा नहीं की गई है, MySQL में निम्नलिखित प्रकार के बैकअप हैं:

बैकअप कमांडबैकअप डेटा प्रकारटिप्पणी
mysqldump तार्किक बैकअप एक सदियों पुरानी बैकअप विधि। जीयूआई भी इसका इस्तेमाल करता है
माईएसक्यूएलपंप तार्किक बैकअप Mysqldump का उन्नत संस्करण
MySQL शैल आवृत्ति डंप उपयोगिता और डंप लोडिंग उपयोगिता तार्किक बैकअप इस समय सबसे हालिया तार्किक बैकअप
Percona XtraBackup भौतिक बैकअप भौतिक बैकअप के लिए तृतीय-पक्ष समर्थन
क्लोन प्लगइन भौतिक बैकअप MySQL आधिकारिक भौतिक बैकअप। हालाँकि, आपको प्लग-इन जोड़ने की आवश्यकता है।

GUI (MySQL कार्यक्षेत्र) के साथ डेटाबेस का बैकअप लेना

यदि आप कमांड का उपयोग किए बिना जीयूआई में सुरक्षित रूप से काम करना चाहते हैं, तो आप MySQL वर्कबेंच के साथ बैकअप ले सकते हैं। MySQL कार्यक्षेत्र द्वारा निष्पादित बैकअप का प्रकार "mysqldump" होगा।

MySQL कार्यक्षेत्र प्रारंभ करें।

उस कनेक्शन का चयन करें जिसमें वह डेटाबेस है जिसका आप बैकअप लेना चाहते हैं.

डेटाबेस का बैकअप लेने के साथ, बाईं ओर नेविगेटर से व्यवस्थापन टैब का चयन करें और फिर डेटा निर्यात का चयन करें.

डेटा निर्यात स्क्रीन खुलती है। स्क्रीन यथोचित चौड़ी है, इसलिए विंडो का विस्तार तब तक करें जब तक आप नीचे दाईं ओर "स्टार्ट एक्सपोर्ट" बटन नहीं देख सकते।

पहले, उन डेटाबेस का चयन करें जिनका आप बैकअप लेना चाहते हैं. आप एक से अधिक का चयन भी कर सकते हैं।

"ऑब्जेक्ट्स टू एक्सपोर्ट" में, आप प्रक्रियाओं और ट्रिगर्स का बैकअप लेना भी चुन सकते हैं। यह फ़ील्ड वैकल्पिक है.

"निर्यात विकल्प" में, आप निम्नलिखित दो विकल्पों का चयन कर सकते हैं।

प्रकार विवरण
डंप प्रोजेक्ट फ़ोल्डर में निर्यात करें तालिका या प्रक्रिया फ़ाइल के रूप में निर्दिष्ट फ़ोल्डर में आउटपुट।
स्व-निहित फ़ाइल में निर्यात करें एक फ़ाइल और आउटपुट में सब कुछ एम्बेड करें।

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

सेटिंग्स सेट करने के बाद, निर्यात शुरू करने के लिए निचले दाएं कोने में "निर्यात प्रारंभ करें" बटन पर क्लिक करें।

निर्यात प्रारंभ होता है और पूर्ण होता है.

यदि आप इसे एकल फ़ाइल के रूप में आउटपुट करते हैं, तो यह इस तरह दिखाई देगा:

यदि आप किसी फ़ोल्डर में निर्यात करते हैं, तो यह इस तरह दिखाई देगा:

GUI (MySQL कार्यक्षेत्र) के साथ डेटाबेस पुनर्स्थापित करना

MySQL कार्यक्षेत्र खोलें, एक कनेक्शन का चयन करें, बाईं ओर नेविगेटर से प्रशासन टैब का चयन करें, और डेटा आयात / पुनर्स्थापना का चयन करें। जैसा कि यह कहता है "आयात / पुनर्स्थापना", आप निर्यात की गई फ़ाइल से एक नया डेटाबेस बना सकते हैं या मूल डेटाबेस को अधिलेखित कर सकते हैं।

विंडो का विस्तार तब तक करें जब तक आपको निचले दाएं कोने में "आयात प्रारंभ करें" बटन दिखाई न दे।

निर्यात किए गए फ़ाइल स्वरूप के अनुसार "आयात विकल्प" चुनें। चूंकि मैंने इस बार एक फ़ाइल के रूप में निर्यात किया है, इसलिए मैंने नीचे "स्व-निहित फ़ाइल से आयात करें" का चयन किया और निर्यात की गई फ़ाइल निर्दिष्ट की।

उस स्कीमा (डेटाबेस) का चयन करें जिसमें आप पुनर्स्थापित करना चाहते हैं. आप किसी मौजूदा डेटाबेस को पुनर्स्थापित कर सकते हैं या इसे दाईं ओर "नया" बटन से एक नए डेटाबेस के रूप में पुनर्स्थापित कर सकते हैं।

विनिर्देशों को निर्दिष्ट करने के बाद, बहाली शुरू करने के लिए नीचे दाईं ओर "आयात प्रारंभ करें" बटन पर क्लिक करें।

एक बार बहाली पूरी हो जाने के बाद, सुनिश्चित करें कि आपका डेटा वापस आ गया है।

आदेश द्वारा डेटाबेस बैकअप के लिए एक खाता बनाएँ

यदि आप एक कमांड निष्पादित करते हैं और उसका बैकअप लेते हैं तो कोई समस्या नहीं है, लेकिन उदाहरण के लिए, यदि आप कमांड को पहले से फ़ाइल के रूप में तैयार करते हैं और इसे निष्पादित करते हैं, तो आपको सादे पाठ में पासवर्ड लिखना होगा, इसलिए बैकअप निष्पादन के लिए एक अलग खाता बनाना सुरक्षित है।

बैकअप के लिए आवश्यक कुछ अनुमतियाँ आवश्यक जानकारी के आधार पर बढ़ या घट सकती हैं।

  • घटना
  • तालिकाएँ लॉक करें
  • चुनना
  • दृश्य दिखाएँ

यदि आप इसे कमांड के साथ बनाते हैं, तो यह इस तरह दिखाई देगा। MySQL कमांड-लाइन टूल का उपयोग करें।

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

उदाहरण

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

बैकअप गंतव्य के लिए फ़ोल्डर अनुमतियाँ

फ़ोल्डर की अनुमतियाँ जहाँ बैकअप फ़ाइल सहेजी गई है आदेश निष्पादित करने के लिए अनुमतियों के रूप में उसी तरह सेट किया जाना चाहिए। यदि आप व्यवस्थापक विशेषाधिकारों के साथ आदेश चलाते हैं, तो आपको फ़ोल्डर पर कोई अतिरिक्त अनुमतियाँ सेट करने की आवश्यकता नहीं है.

कमांड के साथ डेटाबेस का बैकअप लेना (mysqldump)

कमांड द्वारा कई बैकअप हैं, लेकिन इस बार हम "mysqldump" के साथ बैकअप लेंगे, जिसका उपयोग लंबे समय से किया जा रहा है और स्थिर है।

टर्मिनल (कमांड प्रॉम्प्ट) लॉन्च करने के लिए स्टार्ट मेनू पर राइट-क्लिक करें। ध्यान दें कि यह "MySQL 8.0 कमांड लाइन क्लाइंट" नहीं है।

आप इसे निम्न कमांड के साथ वापस कर सकते हैं:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

उदाहरण

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 यदि आप जीयूआई में बैकअप लेते समय एक ही वर्ण कोड निर्दिष्ट करते हैं, तो यह जीयूआई में बैकअप लेते समय समान होगा। इस तरह, आप इसे जीयूआई में भी आयात कर सकते हैं।
  • पासवर्ड फ़ील्ड और -p पासवर्ड के बीच रिक्ति शामिल न करें.
  • यदि आप टेबलस्पेस जानकारी को आउटपुट करना चाहते हैं, --no-tablespaces तो हटा दें। उस स्थिति में, चल रहे उपयोगकर्ता की अनुमतियाँ होनी चाहिए . PROCESS

निर्दिष्ट स्थान पर एक बैकअप फ़ाइल बनाई जाएगी.

कमांड के साथ डेटाबेस को पुनर्स्थापित करना (mysqldump)

mysqldump द्वारा समर्थित फाइलें एक प्रारूप में हैं जिन्हें SQL में निष्पादित किया जा सकता है, इसलिए आपको केवल लक्ष्य SQL निष्पादित करना है। मुझे लगता है कि अधिकांश पुनर्स्थापना मैन्युअल रूप से किए जाते हैं, इसलिए यदि आप इसे रूट खाते के रूप में चलाते हैं तो कोई समस्या नहीं है।

यदि आप इसे कमांड से चलाना चाहते हैं, तो इसे PowerShell के बजाय कमांड प्रॉम्प्ट पर चलाएं। ऐसा इसलिए है क्योंकि प्रतीक PowerShell में < उपयोग नहीं किया जा सकता है।

निम्न आदेश चलाएँ:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

उदाहरण

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

स्वचालित डेटाबेस बैकअप

विंडोज के लिए, टास्क शेड्यूलर का उपयोग करना आम है। सबसे पहले, एक बैच फ़ाइल बनाएं। एक बैट फ़ाइल बनाएं, सामग्री दर्ज करें क्योंकि वे कमांड द्वारा समर्थित थे, और इसे सहेजें। वर्ण एन्कोडिंग Shift-JIS के साथ सहेजी गई है। बैच फ़ाइल का स्थान और फ़ाइल नाम मनमाना है।

टास्क शेड्यूलर के साथ रजिस्टर करें। स्टार्ट मेन्यू पर राइट-क्लिक करें और कंप्यूटर मैनेजमेंट चुनें।

बाईं ओर के मेनू से, कंप्यूटर प्रबंधन > सिस्टम टूल्स > टास्क शेड्यूलर > टास्क शेड्यूलर लाइब्रेरी का चयन करें। दाईं ओर मेनू से "कार्य बनाएं ..." चुनें।

सामान्य टैब कॉन्फ़िगर करें। कार्यों की सूची में "नाम" दिखाई देगा, इसलिए ऐसा नाम दर्ज करें जिसे समझना आसान हो। सुरक्षा विकल्पों में, "रन की परवाह किए बिना कि उपयोगकर्ता लॉग ऑन है या नहीं" की जांच करें।

"ट्रिगर" टैब में, आप सेट कर सकते हैं कि बैकअप कब करना है। इस सेटिंग को अपने ऑपरेशन के अनुसार सेट करें।

"ऑपरेशन" टैब में, इसे आपके द्वारा अभी बनाई गई बैच फ़ाइल लॉन्च करने के लिए सेट करें।

प्रत्येक को सेट करने के बाद, ओके बटन से पुष्टि करें।

निर्दिष्ट खाते के तहत चलाने के लिए पंजीकरण करने के लिए अपना पासवर्ड दर्ज करें।

उसके बाद, जांचें कि क्या बैकअप निर्दिष्ट समय पर निष्पादित किया जाएगा।