下面是逻辑备份脚本:
1.首先通过information_schema.tables获取所有数据库名称
2.然后根据日期创建临时备份目录,根据数据库名进行循环,获取每个数据库下面的表名集合
3.然后进行循环备份.按照表级备份完成后
4.然后进行压缩和删除.
5.最后进行写日志操作,方便出错预警和定位问题
6.注意事项:一定要谨记,备份命令加上–single-transaction参数可以不锁定表导出!
#!/bin/sh
#set -x
#-----------------------------------------------------------
# Usage: This script is used to backup the mysql database
# which using for the mail of the
# ChinaMobile's Online Application Store Development
# Name: mysqldump_backup.sh
# Autor: xianyezhao
# modify:
# Create_date: 28/04/2019
# sript location:/data/backup/mysql/table.192.168.1.200.mysqldump
#chmod mysqldump_backup.sh to 711
# crontab info 0 1 * * * /data/backup/mysql/table.192.168.1.200.mysqldump/scripts/mysqldump_backup.sh
#-----------------------------------------------------------
set -x
# configure the environment variables
. ~/.bash_profile
export TMPDIR=/tmp
# configure the work directory
GZIP_BIN=/usr/bin/gzip
#WORKPATH mesns the workpath
WORKPATH=/data/backup/mysql/table.192.168.1.200.mysqldump
WORKDATE=`date +%Y%m%d`
# BASEDIR means the filesystem mounted
BASEDIR="/data"
SPACE_RATE=85 #space rate 85
SPACE_ROOM=10485760 #10GB
BACKUP_FILE_NAME="mysqldump_backup"
MYSQLDUMP="/data/software/mysql/product/bin/mysqldump"
MYSQL="/d