Mysql 多实例自动备份脚本

source ~/.bash_profile

IFS=$'\n'
Back_dir=/data/db_backup
for line in `cat /data/shell/conn_info.txt`
do
        User=`echo $line | awk '{print $2}'`
        Pass=`echo $line | awk '{print $3}'`
        Host=`echo $line | awk '{print $1}'`
        #Port=`echo $line | awk '{print $5}'`
        Database=`echo $line | awk '{print $4}'`

        for i in $Database
        do
        mkdir -p $Back_dir/$Database

        /usr/bin/mysqldump -h $Host -u$User -p$Pass  -E -R --triggers --master-data=2 --single-transaction --max_allowed_packet=128M $Database | gzip -9 >$Back_dir/$Database/${Database}_full_`date +%F`.sql.gz

        done
done

find $Back_dir/ -mtime +6 -type f -name "*.gz" >> $Back_dir/delete_list.log
RN=`cat $Back_dir/delete_list.log |wc -l `

if [ $RN -gt 0 ]; then
        find $Back_dir/ -name "*.gz" -type f -mtime +6 -exec rm -f {} \;
else
        exit
fi

rm -f $Back_dir/delete_list.log

然后机器的登录信息 写成如下:

cat /scripts/conn_info.txt:

IP  用户 密码 数据库名 

xx.xxx.xxx.xx root Parav1ew! escdb
rm-x.mysql.rds.aliyuncs.com esba cY5mD6jJd0m esapp_prod

最后备注下 mysqldump后面的参数说明:

-E:  备份指定库的事件调度器

-R:备份存储过程和存储函数

--master-data=2:

mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1

当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。

gzip -9:

压缩等级,1~9级,-1最快但压缩比最低,-9最慢但压缩比最高,默认为-6

gzip 压缩和解压:

gzip -c 保留原文件

gzip -c escdb_full_2022-09-08.sql  > escdb_full_2022-09-08.sql.gz
gzip -dc escdb_full_2022-09-08.sql.gz  >escdb_full_2022-09-08.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-phantom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值