mysql备份脚本
为什么需要数据库备份
1.保证数据的安全与完整
企业的数据安全应该来说是企业的命脉。一旦丢失或造成损坏,轻则损失客户与金钱,重则倒闭
备份的目的:为了保证数据在被人为失误、操作不当、蓄意等情况下删除或损坏后,能及时有效的进行恢复并不会很大程度上影响到业务运行。
2、为业务提供不间断服务
实际生产环境对数据库的要求,首先就是具备7×24×365不间断服务的能力,这也是一定要备份数据库的其中原因之一。
常用的备份方式包括以下:
1.逻辑备份–mysqldump,mydumper
逻辑备份其实就是利用MySQL数据库自带的mysqldump命令,或者使用第三方的工具,然后把数据库里的数据**以SQL语句的方式导出成文件的形式。**在需要恢复数据时,通过使用相关的命令(如:source )将备份文件里的SQL语句提取出来重新在数据库中执行一遍,从而达到恢复数据的目的。
逻辑备份的优点与使用场景
优点:简单,易操作,自带工具方便、可靠。
使用场景:数据库数据量不大的情况可以使用,数据量比较大(超过20G左右)时备份速度比较慢,一定程度上还会影响数据库本身的性能。
备份数据库脚本
vim /opt/scripts/mysqlbackup.sh
#!/bin/bash
#数据库用户和密码
user=root
passwd=123456
#要备份的数据库名,多个数据库用空格分开
databases=(db1 db2 db3)
#备份文件要保存的目录
basepath=’/backup/mysql/’
if [ ! -d “
b
a
s
e
p
a
t
h
"
]
;
t
h
e
n
m
k
d
i
r
−
p
"
basepath" ]; then mkdir -p "
basepath"];thenmkdir−p"basepath”
fi
#循环databases数组
for db in KaTeX parse error: Expected 'EOF', got '#' at position 25: …s[*]} do #̲ 备份数据库生成SQL压缩文件…user -p$passwd -B $db |gzip>
b
a
s
e
p
a
t
h
basepath
basepathdb-$(date +%Y%m%d).sql.gz
done
#删除7天之前的备份数据
find $basepath -mtime +7 -name “*.sql.gz”|xargs rm -f