用批處理實現自動備份和清理mysql資料庫

來源:互聯網
上載者:User

有網友問我在win2003下如何自動備份MySQL資料庫,既然是自動備份,那肯定得寫指令碼。我想了想,這個並不是很困難,是很容易實現的,備份可以用指令碼實現,那自動又該如何?呢?也很簡單,就用windows內建的“任務計劃”功能,設定一個時間,讓系統定時跑指令碼,不就實現了自動備份資料庫的功能了嗎?首先把指令碼代碼貼出來:

 

{
dp.sh.Toolbar.Command('ViewSource',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">view plain{
dp.sh.Toolbar.Command('CopyToClipboard',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">copy to clipboard{
dp.sh.Toolbar.Command('PrintSource',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">print{
dp.sh.Toolbar.Command('About',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">?
  1. @echo on  
  2.   
  3. REM------------------------backup bugdb which is InnoDB-----------------------------    
  4. del C:/backup/website/bugdb_*.sql    
  5. cd F:/usr/wamp/mysql/bin    
  6. set year=%date:~0,4%    
  7. set month=%date:~5,2%    
  8. set day=%date:~8,2%    
  9. set filename=bugdb_%year%%month%%day%.sql    
  10. mysqldump.exe bugdb -uroot -p123456 > F:/backup/website/%filename%    
  11.    
  12. @echo off   

 

第9行  也可以換成     set filename=bugdb%date:~0,10%.sql

依次解釋一下每句代碼的意思:

  • 第四行:刪除指定目錄下的檔案名稱包含有“bugdb_”字樣的sql檔案。因為這個代碼是我先前寫的,在公司的伺服器上每天晚上跑一次。所以每次備份之前,先刪除頭天已備份成功的檔案。
  • 第五行:進入MySQL的bin目錄,因為在此目錄下有個mysqldump.exe的檔案,該檔案時MySQL資料庫內建的備份和恢複MySQL資料庫的工具,這個指令檔正是用到該工具。
  • 第六行:取當前系統日期的年份,以四位元字表示,如2010。
  • 第七行:取當前系統日期的月份,以兩位元字表示,如03。
  • 第八行:取當前系統日期的日期,以兩位元字表示,如12。
  • 第九行:定義備份檔案名,最終的檔案名稱以bugdb_20100312.sql形式存在,即檔案名稱加日期的形式。
  • 第十行:執行備份。

再來解釋一下mysqldump的文法格式。格式為:

 
  1. mysqldump.exe "要備份的資料庫名" -u(接使用者名稱) -p(接密碼) > "備份檔案存放的路徑及檔案名稱" 

其中“>”的作用是輸出重新導向,即把mysqldump.exe備份的資料輸出到一個檔案裡並儲存。

將以上指令碼複製到一個文字檔裡,並另存新檔*.bat,如backup.bat的批次檔,接下來會要用到該檔案,我把它存在D:/scripts/backup_bugdb.bat。

開啟“控制台”裡的“任務計劃”,建立一個計劃任務:

  

在“運行”裡面通過瀏覽按鈕找到剛儲存的backup.bat批次檔,在“計劃”選項卡和“設定”選項卡雷根據自己的實際需要進行設定,設定完畢後點“確定”進行儲存該任務。接下來系統會在指定的時間裡周期性地運行此指令碼,從而達到自動備份資料庫的目的。

  

注意: 當設定的時候  提示你“沒有許可權”的時候,就勾選上面的 :僅在登入後運行

另外附上還原資料庫的命令:

 

{
dp.sh.Toolbar.Command('ViewSource',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">view plain{
dp.sh.Toolbar.Command('CopyToClipboard',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">copy to clipboard{
dp.sh.Toolbar.Command('PrintSource',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">print{
dp.sh.Toolbar.Command('About',this);return false;
}" href="http://blog.csdn.net/lifesounds/archive/2010/06/23/5688695.aspx#">?
  1. D:/html/wamp/mysql/bin/mysql.exe -uroot -p123456 --default-character-set=utf8 bugdb < F:/bugdb_20100312.sql  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.