定時備份mysql資料庫
指令碼內容:
#!/bin/bash
## 備份計畫任務
## ## 每天凌晨1:30一次全量備份
## 每天間隔1小時一次增量備份
## 30 1 * * * backup.sh full
## 00 * * * * backup.sh inc
#### 恢復資料步驟:
## (1)、檢視備份日誌,找到全量備份和增量備份的關係(注意增量備份的順序)
#### cat $/$
## (2)、全量備份
#### (3)、第乙個增量
## --incremental-dir=$/one_inc_dir
#### (4)、第二個增量
## --incremental-dir=$/two_inc_dir
#### (5)、恢復資料
## innobackupex --defaults-file=/etc/my.cnf --copy-back $/full_dir
path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
backup_base_dir="/backup/xtrabackup"
inc_base_list="$/inc_list.txt"
xtrabackup_path="/usr/local/xtrabackup/bin/innobackupex"
mysql_cnf="/etc/my.cnf"
mysql_hostname=127.0.0.1
mysql_username=root
mysql_password=w7tq5nnwwrk
lock_file=/tmp/innobackupex.lock
thread=3
mkdir -p $
current_backup_path="$/$(date +%f_%h-%m)"
[[ -d $ ]] && current_backup_path="$/$(date +%f_%h-%m-%s)"
print_help()
[[ $# -lt 1 || "$1" == "help" ]] && print_help
[[ -f "$lock_file" ]] && echo -e "usage: rm -f $lock_file\nusage: chattr -i $lock_file && rm -f $lock_file" && exit 1
fullbackup() \
--defaults-file=$ \
--user=$ \
--password=$ \
--host=$ \
--parallel=$ \
--no-timestamp $ > $_full.log 2>&1
grep ".*\ completed\ ok\!" $_full.log > /dev/null 2>&1
if [ $? -ne 0 ];then
rc=1
[[ -d $ && $(pwd) != "/" ]] && rm -rf $
else
echo "null|$|full" >> $
[[ -d $ && $(pwd) != "/" ]] && chattr +i $ || rc=1
fichattr -i $
rm -f $lock_file
chattr +a $
return $rc
}incbackup() | tail -1 | awk -f '|' '')
$ \--defaults-file=$ \
--user=$ \
--password=$ \
--host=$ \
--no-timestamp --incremental $ \
--incremental-basedir=$ > $_inc.log 2>&1
grep ".*\ completed\ ok\!" $_inc.log > /dev/null 2>&1
if [ $? -ne 0 ];then
rc=1
[[ -d $ && $(pwd) != "/" ]] && rm -rf $
else
echo "$|$|inc" >> $
[[ -d $ && $(pwd) != "/" ]] && chattr +i $ || rc=1
fichattr -i $
rm -f $lock_file
chattr +a $
return $rc
}## 全量備份
if [ "$1" == "full" ];then
fullbackup
fi## 增量備份
if [ "$1" == "inc" ];then
## 判斷上一次備份是否存在,無則進行全量備份
if [[ ! -f $ || $(sed '/^$/d' $ | wc -l) -eq 0 ]];then
fullbackup
else
incbackup
fifi## 刪除14天前的備份
if [[ -d $ && $(pwd) != "/" ]];then
find $ -name "$(date -d '14 days ago' +'%f')_*" | xargs chattr -i
find $ -name "$(date -d '14 days ago' +'%f')_*" | xargs rm -rf
fi
加入計畫任務
crontab -e
30 1 * * * /home/sh/backup.sh full
00 */6 * * * /home/sh/backup.sh inc
# mysql
xtrabackup備份說明
通過最簡單的備份事例,說明備份所包含的內容等資訊 xtrabackup backup target dir tmp backup指定用於備份,預設全備 target dir指定備份檔案目錄 生成備份目錄xtrabackup backupfiles cd xtrabackup backupfiles ...
xtrabackup 備份問題
個人認為percona 對mysql最大的貢獻就是它提供了mysql 的熱備份工具xtrabackup.對於v2版本中有乙個問題是 從備份檔案中恢復資料時,對於備份前新建立的表,是無法完全利用工具恢復.frm 式檔案。不過這並不影響使用 貌似網上有人已經做了修改 由於我們預設的儲存引擎是innodb...
xtrabackup 增量備份
xtrabackup 增量備份 1.完全備份準備資料夾 xtrabackup backup target dir backup base 2.進入mysql 修改資料 centos mysql mariadb hellodb use hellodb 修改資料庫 mariadb hellodb ins...