如何实现对MySQL数据库进行分库加分表备份,请用脚本实现?


[root@qls /service/scripts]# cat for-6.sh
#!/bin/bash
#引用函数
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
#定义变量
Date=$(date +%F)
Db_User=root
Db_Pass=qls.123
#编写循环
for Db_Name in $(mysql -u$Db_User -p$Db_Pass  -e "show databases;" | sed 1d | grep -v '.*_schema')
do
    #准备备份目录
    Db_Dir=/data/backup/$Db_Name
    [ -d $Db_Dir ] || mkdir -p $Db_Dir
    #备份数据库
    mysqldump -u$Db_User -p$Db_Pass --single-transaction -R -B $Db_Name  >$Db_Dir/${Date}_${Db_Name}.sql 
    if [ $? -eq 0 ];then
        action "数据库${Db_Name}备份成功...." /bin/true
    else
        action "数据库${Db_Name}备份失败...." /bin/false
    fi
    #备份数据库中的表
    for Table_Name in $(mysql -u$Db_User -p$Db_Pass  -e "use $Db_Name;show tables;" | sed 1d)
    do
        #备份表
        mysqldump -u$Db_User -p$Db_Pass --single-transaction -R $Db_Name $Table_Name >$Db_Dir/${Date}_${Db_Name}_${Table_Name}.sql
        if [ $? -eq 0 ];then
            action "数据库${Db_Name}中的${Table_Name}表备份成功...." /bin/true
        else
            action "数据库${Db_Name}中的${Table_Name}表备份失败...." /bin/false
        fi
    done
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值