2013-02-02 14 views
26

क्या नामित सर्वर के लिए दिन के कुछ समय पर स्वचालित रूप से MySQL डेटाबेस का बैकअप लेने या अनुलग्नक के साथ एक ईमेल भेजने का कोई तरीका है .. जो भी आपको लगता है कि सबसे अच्छा और सुरक्षित तरीका है इसे पाने के लिये?विंडोज सर्वर पर स्वचालित रूप से MySQL डेटाबेस बैकअप

+1

आप MySQLBackupFTP का उपयोग अपने MySQL डेटाबेस बैकअप के लिए कर सकते हैं और आपको आवश्यकतानुसार शेड्यूल सेट कर सकते हैं। साथ ही, यह टूल नौकरी की सफलता या विफलता पर ईमेल पुष्टिकरण भेज सकता है। http://mysqlbackupftp.com/mysql-blog/how-to-backup-mysql- डेटाबेस/ –

उत्तर

18

मैं विंडोज टास्क सेसहुलर/क्रॉन (आपके सिस्टम के आधार पर) और mysqldump का उपयोग करूंगा। लिंक में नीचे स्क्रॉल करें, इसमें कुछ अंतर्दृष्टि शामिल हैं जो आप चाहते हैं कि कैसे प्राप्त करें।

+0

हां ऐसा लगता है कि इस लिंक में ऐसी सभी जानकारी है जो मुझे उम्मीद है कि मैं इसे एक साथ रख सकता हूं। मार्टिन बहुत बहुत धन्यवाद।और आप सर्वर में विंडोज़ टास्क शेड्यूलर का उपयोग कैसे करते हैं? – Coderwannabe

+0

विंडोज सर्वर पर कार्य शेड्यूलर वर्कस्टेशन के समान ही है। यदि आप इसके बारे में सहज महसूस नहीं करते हैं, तो आपको http://superuser.com/ या http://serverfault.com/ पर बेहतर उत्तर मिल सकते हैं। अगर आपको लगता है कि मेरे जवाब ने आपको अपनी समस्या का समाधान करने में मदद की है, तो आप इसे स्वीकार करना चाहेंगे। – martin

6

आप इन आदेशों में से एक में जोड़ सकते हैं Windows task scheduler रहे हैं:

mysqldump –-user [username] –-password=[password] [database name] > [dump file] 

या एक कॉम्पैक्ट तरह से:

mysqldump –u[username] –p[password] [database name] > [dump file] 

या:

mysqldump -u[user] -p[password] --result-file="c:\<path>\backup.%DATE:~0,3%.sql" [database] 
16

सबसे अच्छा तरीका है करने के लिए इस होगा

mysqldump.exe --user=YourUserName --password=YourPassword --host=localhost --port=3306 --result-file="Path\dump.sql" --databases "DatabaseName1" "Database2" 


mysqldump.exe --user=root --password=root --host=localhost --port=3306 --result-file="c:\www\db\backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql" --default-character-set=utf8 --single-transaction=TRUE --databases "dbtest1" "dbtest2" 

पैटर्न backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql एक अनूठा नाम (backup20131010.sql) हर बार चलेंगे

अब तुम सिर्फ अपने कार्य अनुसूचक में इस आदेश को कॉल करने की आवश्यकता पैदा करेगा। बस। :)

+0

धन्यवाद @ टारुन तिथि प्रारूप पठनीय नहीं है YYYY-MM_DD प्रारूप के साथ यह कैसे बदल सकता है? –

+1

बैकअप।% दिनांक: ~ 10,4 %% - दिनांक: ~ 4,2% _ दिनांक: ~ 7,2 %%। एसक्यूएल @ मोहम्मदफैजानखान उम्मीद है कि इससे मदद मिलेगी। –

+0

धन्यवाद! अच्छा मैं पहले से ही पाया गया था लेकिन फिर से धन्यवाद –

2

databaseW.2016,06,29-22,31,48-15.sql

@echo off 
rem Backup Database (Daily,via Task Scheduler) 
rem databaseW 
set filename="c:\xampp\dbk\databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql" 
c:\xampp\mysql\bin\mysqldump.exe --user=root [email protected] --host=localhost --port=3306 --result-file=%filename% --default-character-set=utf8 --single-transaction=TRUE --databases "databaseW" 

फ़ाइल जिसका नाम की तारीख और समय पर आधारित है बनाने के लिए, %date% और %time% का उपयोग करें। ध्यान दें कि 2 चर स्थान और cmd खोल संस्करण के आधार पर कर रहे हैं

  • खोलने cmd खिड़कियों
  • इनपुट echo %time% और echo %date% मेरा 22:11:16.80 है, 06/29/2016 Wed
  • substr %variable:~startpos,length% के माध्यम से चर मैं समय चाहते हैं अल्पविराम से सीमित, इसलिए cmd echo %time:~0,2%,%time:~3,2%,%time:~6,2%,%time:~9,2%
  • databaseW.2016,06,29-22,31,48-15.sqlजैसे फ़ाइल नाम प्राप्त करने के लिए चला जाता है 63,210 उपयोग set filename="databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
  • जांच date और time पहले से
  • > के बजाय --result-file विकल्प का उपयोग करें; Mysql मैनुअल के अनुसार, फ़ाइल का चारसेट जबकि --result-file इस प्रकार --default-character-set
  • दायर करने के लिए BackpDay-databaseW.cmd
  • एक नया कार्य Action में जोड़कर एक ट्रिगर सेट बचाने के लिए, का उपयोग करते हुए ">" UTF-16 है बचाया (Windows कार्य शेड्यूलर)
संबंधित मुद्दे