数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记。
(1)分库备份脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#/bin/sh #version 0.1 MYUSER=root MYPASS=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN= "mysql -u$MYUSER -p$MYPASS "
MYDUMP= "mysqldump -u$MYUSER -p$MYPASS -B"
DATABASE= "$($MYLOGIN -e " show databases; "|egrep -vi " Data|_schema|mysql ")"
for dbname in $DATABASE
do
MYDIR= /server/backup/ $dbname
[ ! -d $MYDIR ] && mkdir -p $MYDIR
$MYDUMP $dbname| gzip >$MYDIR/${dbname}_$( date +%F).sql.gz
done
|
(2)分库分表备份脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#/bin/sh MYUSER=root PASSWD=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN= "mysql -u$USER -p$PASSWD "
MYDUMP= "mysqldump -u$USER -p$PASSWD "
DATEBASE= "$($MYLOGIN -e " show databases; "|egrep -vi " Data|_schema|mysql ")"
for dbname in $DATEBASE
do TABLE= "$($MYLOGIN -e " use $dbname;show tables; "|sed '1d')"
for tname in $TABLE
do
MYDIR= /server/backup/ $dbname/${dbname}_$( date +%F)
[ ! -d $MYDIR ] && mkdir -p $MYDIR
$MYDUMP $dbname $tname | gzip >$MYDIR/${dbname}_${tname}_$( date +%F).sql.gz
done
(3) 设置定时任务 crontab 语法:
* * * * * command
minute hour day month week command
其中: minute: 表示分钟,可以是从0到59之间的任何整数。 hour:表示小时,可以是从0到23之间的任何整数。 day:表示日期,可以是从1到31之间的任何整数。 month:表示月份,可以是从1到12之间的任何整数。 week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 command :要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
例如: 57 21 * * * /bin/sh /bash/script/back_mysql .s
|
本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1866520,如需转载请自行联系原作者