windows計劃任務實現mysql資料庫自動備份批處理命令

來源:互聯網
上載者:User

方法一

具體代碼
備份

 代碼如下 複製代碼

@echo off & setlocal ENABLEEXTENSIONS

:: ---------- 配置項 ----------

:: 備份放置的路徑,加
set BACKUP_PATH=D:Backup

:: 要備份的資料庫名稱,多個用空格分隔
set DATABASES=database1 database2 database3

:: MySQL 使用者名稱
set USERNAME=root

:: MySQL 密碼
set PASSWORD=123456

:: MySQL Bin 目錄,加
:: 如果可以直接使用 mysqldump(安裝時添加 MySQL Bin 目錄到了環境變數),此處留空即可
set MYSQL=D:SERVERMySQLbin

:: WinRAR 內建命令列工具的可執行檔路徑,長檔名注意用 Dos 長檔名書寫方式
set WINRAR=C:Progra~1WinRARRar.exe

:: ---------- 以下請勿修改 ----------

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 如果在 dos 下輸入 time 返回的不是 24 小時制(沒有 0 填充),請自行修改此處
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

set DIR=%BACKUP_PATH%%YEAR%%MONTH%%DAY%
set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%

:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%

:: backup
echo Start dump databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul
del /F /S /Q %%D.%ADDON%.sql 2>nul
)
)
echo Done

:exit

增加計劃任務

 代碼如下 複製代碼

@echo off

:: ------- 配置項 -------

:: 要執行的檔案名稱
set FILE=D:croncron_backup.bat

:: 計劃頻率類型
set FREQUENCY=DAILY

:: 頻率,與上面的計劃頻率類型對應
set MODIFIER=1

:: 該計劃執行的時間(24 小時制)
set DATETIME=00:30:00

:: 計劃的名字
set NAME="Backup Cron Job"

:: 計劃執行使用者,不建議修改
set USER="System"

:: ------- 以下請勿修改 -------

schtasks /Create /RU %USER% /SC %FREQUENCY% /MO %MODIFIER% /ST %DATETIME% /TN %NAME% /TR %FILE%
pause

方法二

下面我們個更簡單快捷的方法

建一個記事本,然後重新命名為: mysql_backup.bat 然後單擊右鍵選擇編輯,把下面的部分粘貼進來然後修改儲存,比如我要備份taobao這個資料庫,指令碼如下:

 代碼如下 複製代碼

net stop mysql

xcopy D:mysqldatataobao*.* D:db_backup%date:~0,10% /y

net start mysql

 


上面的D盤和db_backup等目錄大家都可以自行修改,指令碼的意思就是複製taobao 這個目錄到D盤的db_backup這個目錄裡面的以當天為名稱的目錄裡面,比如: d:backup2010-05-23 ,請大家注意,網上很多人轉載的說以%date:~4,10%這個來作為當天目錄是錯誤的。

然後建立一個計劃任務,把mysql_backup.bat加入進去,設定為每天淩晨幾點運行下就行了,此部分不再詳述,


方法三

假想環境:
MySQL 安裝位置:C:MySQL
論壇資料庫名稱為:bbs
Database Backup目的地:C:db_bak
============================
建立db_bak.bat,寫入以下代碼

 

 代碼如下 複製代碼
net stop mysql
xcopy c:mysqldatabbs*.* c:db_bakbbs%date:~0,3% /y
net start mysql

然後使用Windows的“計劃任務”定時執行該批處理指令碼即可。(例如:每天淩晨3點執行back_db.bat)
解釋:備份和恢複的操作都比較簡單,完整性比較高,控製備份周期比較靈活,例如,儲存一周的資料,用%date:~0,3%,儲存每天的資料, 用%date:~4,10%。此方法適合有外掛式主控件但對mysql沒有管理經驗的使用者。缺點是佔用空間比較多,備份期間mysql會短時間斷開(例如:針 對30M左右的資料庫耗時5s左右)。


==============
假想環境:
MySQL 安裝位置:C:MySQL
論壇資料庫名稱為:bbs
MySQL root 密碼:123456
Database Backup目的地:D:db_backup

指令碼:

 代碼如下 複製代碼

@echo off
C:MySQLbinmysqladmin -u root --password=123456 shutdown
C:MySQLbinmysqldump --opt -u root --password=123456 bbs > D:db_backupbbs.sql
C:MySQLbinmysqld-nt

將以上代碼儲存為backup_db.bat
然後使用Windows的“計劃任務”定時執行該指令碼即可。(例如:每天淩晨5點執行back_db.bat)

----------------------------------------------------------------------------------------------------------------
利用WinRAR對MySQL資料庫進行定時備份。
對於MySQL的備份,最好的方法就是直接備份MySQL資料庫的Data目錄。下面提供了一個利用WinRAR來對Data目錄進行定時備份的方法。

首先當然要把WinRAR安裝到電腦上。

將下面的命令寫入到一個文字檔裡

 代碼如下 複製代碼

net stop mysql

del d:mysqldata /q

c:progra~1winrarwinrar a -ag -k -r -s d:mysql.rar d:mysqldata

net start mysql

儲存,然後將文字檔的副檔名修改成CMD。

 

進入控制面版,開啟計劃任務,雙擊“添加計劃任務”。在計劃任務嚮導中找到剛才的CMD檔案,接著為這個任務指定一個已耗用時間和運行時使用的帳號密碼就可以了

在windows下要實現定時備份我們需要藉助於windows計劃任務現實現了,大家可以以這個實現想到更多的東西哦。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.