数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的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,如需转载请自行联系原作者