Xtrabackup定時備份mysql資料庫指令碼

2021-08-31 21:31:29 字數 3031 閱讀 3756

定時備份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...