mysqldump结合脚本的备份方案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

1、备份脚本的简介

脚本分为两个部分,主控脚本与备份子脚本。

1.1、备份子脚本

-完成mysql基本的备份功能

-自动日期时间命名备份文件(不产生重复名称的备份)

-提供压缩(节省大量的空间)

1.2、主控脚本

-调用备份子脚本(代码复用)

-清理mysql旧的备份文档(可定义多少天内的保留)

2、生成备份脚本

2.1、创建脚本目录

1
mkdir  ~ /script/

2.2、备份子脚本代码

vim编辑~/script/dbBack.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
user=$1
passwd =$2
dbName=$3
bkDir=$4
 
dt=$( date  + "%Y-%m-%d_%H%M%S" )
dbBkName=$dbName-$dt.sql
if  [ $dbName ==  '--all-databases'  ];  then
  dbBkName= "all-databases-" $dt.sql
fi
 
#echo $user
#echo $passwd
#echo $dbBkName
 
if  [ $dbName ==  '--all-databases'  ];  then
  mysqldump -u$user -p$ passwd  --all-databases > $bkDir$dbBkName
else
  mysqldump -u$user -p$ passwd  $dbName > $bkDir$dbBkName
fi
 
tar  -zcvf $bkDir$dbBkName. tar .gz $bkDir$dbBkName
rm  -rf $bkDir$dbBkName

2.3、主控脚本代码

2.3.1 单库备份

vim编辑~/script/dbMan.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
bkDir= /var/lib/backup/
wkDir=~ /script/
user=mysql_user  #数据库的用户名
passwd =mysql_password  #数据库的密码
saveTime=7  #多少天之内的保留,7天之外的删除
 
if  [ ! -d $bkDir ];  then
  mkdir  -p $bkDir
fi
 
cd  $wkDir
sh dbBack.sh $user $ passwd  db1 $bkDir
sh dbBack.sh $user $ passwd  db2 $bkDir
cd  $bkDir
#find -name "*.gz" -ctime +$saveTime -exec ls {} \;
find  -name  "*.gz"  -ctime +$saveTime - exec  rm  -rf {} \;

注:修改13-14行备份数据库db1、db2

2.3.2 备份所有的库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
bkDir= /var/lib/backup/
wkDir=~ /script/
user=mysql_user  #数据库的用户名
passwd =mysql_password  #数据库的密码
saveTime=7  #多少天之内的保留,7天之外的删除
 
if  [ ! -d $bkDir ];  then
  mkdir  -p $bkDir
fi
 
cd  $wkDir
sh dbBack.sh $user $ passwd  --all-databases $bkDir
cd  $bkDir
#find -name "*.gz" -ctime +$saveTime -exec ls {} \;
find  -name  "*.gz"  -ctime +$saveTime - exec  rm  -rf {} \;

注:13行备份所有的数据库

3、使用脚本

编辑计划任务:

1
  crontab  -e

加入如下内容:

1
0 * /1  * * * sh  ~ /script/dbMan .sh

以上1个小时产生一个备份









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1713247,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
关系型数据库 MySQL Shell
分享一篇mysql数据库备份脚本
分享一篇mysql数据库备份脚本
38 0
|
SQL 缓存 关系型数据库
MYSQL增量备份和全量备份脚本
MYSQL增量备份和全量备份脚本
|
关系型数据库 MySQL Shell
mysqldump工具备份数据
mysqldump工具备份数据
mysqldump工具备份数据
|
关系型数据库 Shell 数据库