增量式备份
This commit is contained in:
parent
15a0030b96
commit
ffc46adc8b
38
backUpIncremental.sh
Normal file
38
backUpIncremental.sh
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
currentTime=$(date +"%Y-%m-%d-%H")
|
||||||
|
userName=$1
|
||||||
|
password=$2
|
||||||
|
dbName=$3
|
||||||
|
host=$4
|
||||||
|
# 定义备份文件存放目录
|
||||||
|
backUpPath=$5
|
||||||
|
ossPath=$6
|
||||||
|
|
||||||
|
|
||||||
|
# 获取上次备份的binlog文件名和位置
|
||||||
|
LAST_BACKUP=$(cat "$backUpPath/last_backup.txt")
|
||||||
|
LAST_BINLOG=$(echo "$LAST_BACKUP" | awk '{print $1}')
|
||||||
|
LAST_POSITION=$(echo "$LAST_BACKUP" | awk '{print $2}')
|
||||||
|
|
||||||
|
# 获取当前binlog文件名和位置
|
||||||
|
CURRENT_BINLOG=$(mysql -N -e "SHOW MASTER STATUS" | awk '{print $1}')
|
||||||
|
CURRENT_POSITION=$(mysql -N -e "SHOW MASTER STATUS" | awk '{print $2}')
|
||||||
|
|
||||||
|
# 备份增量变更到文件
|
||||||
|
# 如果上次备份的binlog文件名和位置为空,则进行全量备份
|
||||||
|
cd $backUpPath
|
||||||
|
#if [ -z "$LAST_BINLOG" ]; then
|
||||||
|
# mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD -h $MYSQL_HOST $MYSQL_DATABASE > "$BACKUP_DIR/full_backup.sql"
|
||||||
|
#else
|
||||||
|
mysqlbinlog --start-position=$LAST_POSITION --stop-position=$CURRENT_POSITION --result-file="$backUpPath/$dbName-$currentTime.sql" $LAST_BINLOG
|
||||||
|
#fi
|
||||||
|
# 更新上次备份的binlog文件名和位置
|
||||||
|
echo "$CURRENT_BINLOG $CURRENT_POSITION" > "last_backup.txt"
|
||||||
|
|
||||||
|
# 获取备份文件列表
|
||||||
|
backup_files=($(find "$backUpPath" -name "$dbName-*.sql" -type f -printf "%f\n"))
|
||||||
|
|
||||||
|
# 打印备份文件列表
|
||||||
|
for file in "${backup_files[@]}"; do
|
||||||
|
echo "$file"
|
||||||
|
done
|
Loading…
x
Reference in New Issue
Block a user