mysql数据库分表备份脚本_MySQL分库分表备份脚本

此脚本主要是使用两个for循环把每个库的每个表列出来,然后使用mysqldump进行备份。

#!/bin/bash

cat << dump

***********************************************

mysql分库分表备份脚本

***********************************************

dump

user=root

host=127.0.0.1

passwd=123

socket=/var/lib/mysql/mysql.sock

db_bak_dir=/mysql_bak

dump_log=/tmp/mysql_dump.log

[ -e /etc/init.d/functions ] && . /etc/init.d/functions || exit

for dbname in `mysql -u$user -h$host -p$passwd -S $socket -e "show databases"|sed '1,2d'`

do

echo -e "\033[32m----------正在备份数据库 ${dbname}---------- \033[0m"

for tablename in `mysql -u$user -p$passwd -S $socket -e "show tables from $dbname;"|sed '1d'`

do

mkdir -p $db_bak_dir/$(date +%F)/$dbname

mysqldump -u$user -p$passwd --lock-all-tables ${dbname} ${tablename} | gzip > /$db_bak_dir/$(date +%F)/${dbname}/${dbname}_${tablename}_$(date +%F).sql.gz >> $dump_log

[ $? -eq 0 ] && action " 备份 ${dbname}.${tablename} " /bin/true || action "备份 ${dbname}.${tablename} " /bin/false

done

echo -e "\033[32m----------数据库 ${dbname} 备份完成---------- \033[0m"

done

执行结果如下所示:

d3293983c8ee052600237d5d9a143f1a.png

DevOps-田飞雨 》》转载请注明源地址

喜欢 (3)or分享 (0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值