1. 程式人生 > >Linux/Windows 下MySQL定時按日期備份資料

Linux/Windows 下MySQL定時按日期備份資料

一、使用mysql內建命令 mysqldump

Usage:
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]

可以看到能備份全部的資料庫,指定的資料庫,指定資料庫中的表

mysqldump -uUsername -pPassword Database > /var/backup/mysql/database.sql

二、按日期備份

mysqldump -uUsername -pPassword Database > /var/backup/mysql/database-`date +%Y%m%d`.sql

`date +%Y%m%d` 利用了shell的知識,先執行,得到格式化的日期

vim /var/backup/backup-mysql.sh

把上面的內容存到檔案中

chmod +x backup-mysql.sh

加上可執行許可權

三、定時備份

使用系統的crontab

crontab -e

# m h  dom mon dow   command
0 3 * * * /var/backup/backup-mysql.sh

時間的格式是

分 時 日 月 周

上面的例子是指定每天3點備份一次資料庫

提高:

當然,還可以加上一些更好的功能,如

備份後的檔案壓縮一下,這個很簡單

只保留最近xx天的備份檔案,這個要稍微複雜一點點

使用mysql二進位制增量備份……

2012/03/15日更新

以下是shell指令碼:

JIRA_FILE_NAME=jira-`date +%Y%m%d`;
BBS_FILE_NAME=bbs-`date +%Y%m%d`;
MANTIS_FILE_NAME=mantis-`date +%Y%m%d`;

cd /var/backup/mysql/
mysqldump -ujira -pjira jira > ${JIRA_FILE_NAME}.sql
tar -zcvf ${JIRA_FILE_NAME}.sql.tar.gz ${JIRA_FILE_NAME}.sql
rm -rf ${JIRA_FILE_NAME}.sql

mysqldump -ubbs -pbbs bbs > ${BBS_FILE_NAME}.sql
tar -zcvf ${BBS_FILE_NAME}.sql.tar.gz ${BBS_FILE_NAME}.sql
rm -rf ${BBS_FILE_NAME}.sql

mysqldump -umantis -pmantis mantis > ${MANTIS_FILE_NAME}.sql
tar -zcvf ${MANTIS_FILE_NAME}.sql.tar.gz ${MANTIS_FILE_NAME}.sql
rm -rf ${MANTIS_FILE_NAME}.sql


2016/09/23更新

Windows下備份非常帥的版本:關鍵看日期

set DATE=%date:~0,4%_%date:~5,2%_%date:~8,2%
d:\mysql-5.7.13-winx64\bin\mysqldump -ufeibiao -pfeibiao feibiao > e:\backup\feibiao_%DATE%.sql