基本要求:
1,周日全备
2,周一至周六增量备份
3,备份使用backup用户
grant SELECT,RELOAD,SHOW DATABASES,LOCK TABLES,SUPER,REPLICATION CLIENT on *.* to backup@'localhost' identified by '123456';
4,结合计划任务,备份时间为每天02:00:00
#!/bin/bash
bak_dir='/bakup'
day=$(date +%u)
bak_cmd='innobackupex --user=backup --password=123456 --no-timestamp'
full_bak()
{
[ -d ${bac_dir}/full ] || mkdir -p ${bak_dir}/full
${bak_cmd} ${bak_dir}/full/full_$(date +%F) &> /tmp/bakCheck
}
incr_bak()
{
[ -d ${bak_dir}/incr ] || mkdir -p ${bak_dir}/incr
${bak_cmd} --incremental ${bak_dir}/incr/incr_$(date +%F) --incremental-basedir=$1 &> /tmp/bakCheck
}
check_bak()
{
if grep 'completed OK!' /tmp/bakCheck &> /dev/null
then
echo "bak

该文章描述了一个用于MySQL数据库的备份策略,包括每周日进行全备,周一至周六进行增量备份。备份操作由名为backup的用户执行,具备特定权限。备份脚本使用innobackupex工具,并结合计划任务在每天凌晨2点运行。脚本还包括了备份成功与否的检查以及历史备份文件的清理机制。
最低0.47元/天 解锁文章
697

被折叠的 条评论
为什么被折叠?



