MySQL数据库备份【2】

背景:
之前介绍了mysql数据库在本机备份之后通过rsync软件将备份数据同步到其他机器,但这种备份方式占用数据存储。现在用单独的文件服务器作为备份的客户端,在文件服务器上连接mysql进行数据备份,从而实现了“异地容灾”备份。在数据库服务器完全宕机的情况下,能够根据异机保存的备份数据实现数据恢复,从而降低对用户影响。
使用方法:
将tar包解压到某个目录下(建议直接解压到/home目录下)。
tar -zxvf mysql-backup-beliver.tar.gz -C /home
cd /home/mysql-backup
#第一次备份需要执行,之后会自动每天凌晨0点备份
sh mysql-back.sh
压缩包
mysql-backup-beleiver.tar.gz

脚本说明:

#!/bin/bash
#author by believer 2020-11-20
#discription: This script use to backup mysql data.
source /etc/profile > /dev/null 2>&1
DIR=`pwd`
BACKUP_TIME=`date "+%Y%m%d%H%M%S"`
#数据库IP
MySql_IP=192.168.1.100
#数据存放路径
BACKUP_DIR='/data/YWdataback/backupdata'
#日志路径
BACKUP_LOG='/data/YWdataback/log'
ROOT_PASSWORD='123456'
#第一次执行备份脚本,将备份加到定时任务中
grep $DIR /etc/crontab  > /dev/null 2>&1
if [ $? -ne '0' ];
then
   #每天凌晨备份
  echo "00 00 */1 * * root sh $DIR/mysql-back.sh 1" >> /etc/crontab
  systemctl restart crond
fi
export MYSQL_PWD="$ROOT_PASSWORD"
#开始备份所有数据库
for database in app busy storm summer sky
#需要备份的数据库名
do
 echo "mysqldump -uroot -h $MySql_IP  $database > ${BACKUP_DIR}/${database}_${BACKUP_TIME}_backup.sql" >> ${BACKUP_LOG}/${database}_${BACKUP_TIME}_dump.log
 mysqldump -uroot -h $MySql_IP $database > ${BACKUP_DIR}/${database}_${BACKUP_TIME}_backup.sql 2>> ${BACKUP_LOG}/${database}_${BACKUP_TIME}_dump.log
 if [ $? -eq '0' ];
 then
    echo "backup $database successful !" >> ${BACKUP_LOG}/${database}_${BACKUP_TIME}_dump.log
 else
    echo "backup $database fail !!!" >> ${BACKUP_LOG}/${database}_${BACKUP_TIME}_dump.log
 fi
done
#定时清理旧的备份文件,保存三十天的备份数据
cd ${BACKUP_DIR}/
find ${BACKUP_DIR}/ -type f -mtime +30 -exec rm -f {} \;
#定时清理日志
cd ${BACKUP_LOG}/
find ${BACKUP_LOG}/ -type f -mtime +30 -exec rm -f {} \;

你可能感兴趣的:(数据库,运维)