欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

linux中mysql增量備份與恢復

夏志豪1年前9瀏覽0評論

MySQL是一款常用的關系型數據庫管理系統,而Linux中則常常使用增量備份與恢復的方式來對數據庫進行備份。下面將介紹在Linux中使用MySQL增量備份與恢復的方法。

一、增量備份

#!/bin/bash
#每次增量備份前,將上次備份(也就是全量備份)拷貝到本地
cp -r /data/mysql/backup/full /data/mysql/backup/incremental
#統計需要備份的數據庫數量
num=`grep -cvE '^#|^$' /data/mysql/backup/conf.txt`
#逐個備份每個數據庫,并記錄備份的日志到指定目錄
for i in `seq $num`;do
db=`sed -n "${i}p" /data/mysql/backup/conf.txt`
innobackupex --user=root --password='passwd' --incremental /data/mysql/backup/incremental --incremental-basedir=/data/mysql/backup/incremental/$(ls -t /data/mysql/backup/incremental|head -n1) --databases "$db" >>/data/mysql/backup/incremental/backup.log 2>&1
done
#備份完成后記錄備份時間,用于后續恢復使用
date '+%F %T' > /data/mysql/backup/incremental/last_backup_time.txt

二、增量恢復

#!/bin/bash
#獲取最后一次備份的時間
last_backup_time=`cat /data/mysql/backup/incremental/last_backup_time.txt`
#如果從未備份過,則只還原全量備份版本
if [ -z "$last_backup_time" ];then
#獲取最后一個全量備份的目錄
full_backup=`ls -t /data/mysql/backup/full | grep '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}.*'| head -n1`
#使用全量備份還原數據庫
innobackupex --apply-log /data/mysql/backup/full/$full_backup >/dev/null 2>&1
innobackupex --copy-back /data/mysql/backup/full/$full_backup >/dev/null 2>&1
else
#獲取最近一次增量備份的目錄
incremental_backup=`ls -t /data/mysql/backup/incremental | grep '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}.*'| head -n1`
#獲取最后一個全量備份的目錄
full_backup=`ls -t /data/mysql/backup/full | grep '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}.*'|head -n1`
#恢復最近一次增量備份
innobackupex --apply-log /data/mysql/backup/full/$full_backup >/dev/null 2>&1
innobackupex --apply-log /data/mysql/backup/incremental/$incremental_backup --incremental-basedir=/data/mysql/backup/full/$full_backup >/dev/null 2>&1
innobackupex --copy-back /data/mysql/backup/full/$full_backup >/dev/null 2>&1
fi

以上兩個腳本實現了Linux中MySQL增量備份與恢復,通過使用增量備份可以有效減小備份文件的大小、降低備份時間,提高備份的效率,同時也能夠在恢復數據時以最近的一次備份為基礎,大大減小了數據恢復時間。大家在進行備份與恢復時可將以上腳本作為參考,簡化自己的操作。