[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
如何实现对MySQL数据库进行分库加分表备份,请用脚本实现?
最新推荐文章于 2022-08-23 17:43:57 发布