वह कार्य जो मेरे सामने खड़ा था:
Mysql रनिंग विंडो सर्वर 2008 R2 के साथ एक सर्वर है, जिस पर, अन्य बातों के अलावा, mysql दर्जनों डेटाबेस के साथ चल रहा है, जिसकी संख्या और संरचना समय-समय पर बदलती रहती है। Mysql सर्वर को रोके बिना इन डेटाबेस के दैनिक बैकअप को व्यवस्थित करना आवश्यक है, ताकि प्रत्येक डेटाबेस एक अलग संग्रह में आए। यह, पहली नज़र में, सबसे सरल कार्य (शायद यह जिस तरह से है) मेरे लिए काफी जटिल हो गया है।
Google हमें क्या बताता है?
कि वहाँ mysqlhotcopy और mysqldump हैं। पहला डेटाबेस फ़ाइलों के साथ सीधे काम करता है, दूसरा एक क्वेरी का उपयोग करके डंप करता है।
मुझे सरलतम मापदंडों के साथ भी काम करने के लिए mysqlhotcopy नहीं मिल सकी, और Google, मैं इस निष्कर्ष पर पहुंचा (मुझे गलत समझें तो सही करें) कि यह स्क्रिप्ट विंडोज़ के लिए उपयुक्त नहीं है।
मैंने mysqlhotcopy के साथ शुरुआत की, क्योंकि फाइलों के साथ सीधे काम करना मेरे मामले में आसान है - मैंने फाइलों को अपनी मांसपेशियों और काम करने के लिए खिसका दिया। डंप, हालांकि इसका वजन इंडेक्स की कमी के कारण कम है, फिर भी इसे आयात करने की आवश्यकता है। लेकिन, चूँकि मैंने
mysql को रोके बिना दूसरा रास्ता नहीं खोजा, हम डंप करेंगे।
यहां मुझे स्क्रिप्ट कीज़ के लिए एक बढ़िया गाइड मिली। इसलिए, वह सभी डेटाबेस के एक फ़ाइल (अत्यंत असुविधाजनक) में एक सामान्य डंप कर सकता है, या सूचीबद्ध डेटाबेस को डंप कर सकता है। चूंकि आधारों की संख्या और नाम बदल रहे हैं, लिस्ट लिखना कोई विकल्प नहीं है - हमें हर बार इसे संपादित करके पीड़ा दी जाती है। इसलिए आपको एक ऐसी स्क्रिप्ट की आवश्यकता है जो mysqldump के प्रत्येक डेटाबेस को एक-एक करके स्थानापन्न करेगी।
मैंने इसे इस तरह लागू किया - बैच फ़ाइल यह देखती है कि कौन से फ़ोल्डर mysql डेटा निर्देशिका में हैं और लूप में उनमें से प्रत्येक का नाम (जो डेटाबेस का नाम है) mysqldump पैरामीटर स्ट्रिंग में प्रतिस्थापित करता है।
SET SOURCEDIR=E:\xampp\mysql\data\ set hour=%TIME:~0,2% set minute=%TIME:~3,2% set second=%TIME:~6,2% set HHMMSS=%hour%-%minute% for /d %%i in (%SOURCEDIR%\*) do "E:\xampp\mysql\bin\mysqldump.exe" -uusername -hlocalhost -ppassword -c -n %%~ni | "c:\Program Files\7-Zip\7z.exe" a -tgzip -si"%%~ni_%DATE%_%HHMMSS%.sql" "D:\backups\data\%DATE%_%HHMMSS%\%%~ni.sql.gzip" eachfile.exe -purge -r -w -e -d 13 -l 0 -dir D:\backups\data\ exit
परिणामी डंप को तुरंत
7-ज़िप से gzip फॉर्मेट का उपयोग करके संग्रहीत किया जाता है (ताकि परिणामी फ़ाइल को अनपैकिंग के बिना एक मांसपेशी को खिलाया जा सके)। खैर, प्रत्येक उपयोगी उपयोगिता अप्रचलित बैकअप को हटा देगी।
गुग्लिंग की प्रक्रिया में, मैं
MySQL बैकअप टूल प्रोग्राम में भी आया, जिसे मैंने परीक्षण करने की हिम्मत नहीं की।