Xtrabackup的安裝使用,自動化備份指令碼
#!/bin/bash
#innobackupex 增量備份指令碼
##################################################################################
BACKUP_DATE=$(date +%Y-%m-%d_%H_%M_%S)
BACKUP_DIR=/data/mysql/backup
FULLBACKUP_PATH=$BACKUP_DIR/full
INCRBACKUP_PATH=$BACKUP_DIR/incr
BACKUP_LOG_PATH=$BACKUP_DIR/logs
BACKUP_KEEP_DAY=7
MYSQL_CONF=/etc/my.cnf
INNOBACKUPEX=/usr/local/xtrabackup/bin/innobackupex
MYSQL_CMD=/usr/bin/mysql
MYSQL_CONNECT="--host=****--user=**** --password=**** --port=3306"
MAIL_FROM="[email protected]`hostname`"
MAIL_TO="[email protected]"
MAIL_TO_ERROR="[email protected]"
error()
{
echo "$1" 1>&2
exit 1
}
#before the backup, check the system enviroment setting and mysql status and so on
mysql_backup_check()
{
if [ ! -d $FULLBACKUP_PATH ];then
mkdir -p $FULLBACKUP_PATH
fi
if [ ! -d $INCRBACKUP_PATH ];then
mkdir -p $INCRBACKUP_PATH
fi
if [ ! -d $BACKUP_LOG_PATH ];then
mkdir -p $BACKUP_LOG_PATH
fi
if [ ! -x $INNOBACKUPEX ];then
error "$INNOBACKUPEX did not exists"
fi
if [ ! -x $MYSQL_CMD ];then
error "mysql client did not exists!"
fi
mysql_status=`netstat -nl | awk 'NR>2{if ($4 ~ /.*:3306/) {print "Yes";exit 0}}'`
if [ "$mysql_status" != "Yes" ];then
error "MySQL did not start. please check it"
fi
if ! `echo 'exit' | $MYSQL_CMD -s $MYSQL_CONNECT` ; then
error "please check the user and password is correct!"
fi
}
xtra_backup()
{
if [ $# = 2 ];then
$INNOBACKUPEX --defaults-file=$MYSQL_CONF $MYSQL_CONNECT --compress --compress-threads=8 --databases="yjk yjk_mall_2_0" --no-timestamp $1/full_$BACKUP_DATE>$2 2>&1
elif [ $# = 3 ];then
$INNOBACKUPEX --defaults-file=$MYSQL_CONF $MYSQL_CONNECT --compress --compress-threads=8 --databases="yjk yjk_mall_2_0" --no-timestamp --incremental $1/incr_$BACKUP_DATE --incremental-basedir $2 >$3 2>&1
else
error "the parameter is not correct"
fi
}
lastest_fullback_dir()
{
if [ -d $1 ]; then
path=`ls -t $1 |head -n 1`
if [ $path ]; then
echo $path
else
error "lastest_fullback_dir(): 目錄為空,沒有最新目錄"
fi
else
error "lastest_fullback_dir(): 目錄不存在或者不是目錄"
fi
}
mysql_full_backup()
{
xtra_backup $FULLBACKUP_PATH $BACKUP_LOG_PATH/full_$BACKUP_DATE.log
if [ "${PIPESTATUS[0]}" -ne 0 ]; then
(echo "Subject: MySQL Backup Failed: MySQL Backup failed on `hostname`";
cat ${BACKUP_LOG_PATH}/full_${BACKUP_DATE}.log;
) | /usr/sbin/sendmail -O NoRecipientAction=add-to -f${MAIL_FROM} ${MAIL_TO}
else
(echo "Subject: MySQL Backup Success: MySQL Backup Succeed on `hostname`";
cat ${BACKUP_LOG_PATH}/full_${BACKUP_DATE}.log;
) | /usr/sbin/sendmail -O NoRecipientAction=add-to -f${MAIL_FROM} ${MAIL_TO}
fi
#cd $FULLBACKUP_PATH
#ls -t | tail -n +$BACKUP_KEEP_DAY | xargs rm -rf
find ${FULLBACKUP_PATH} -mtime +$BACKUP_KEEP_DAY -name "*" -exec rm -rf {} \;
}
mysql_incr_backup()
{
LATEST_FULL_BACKUP=`find $FULLBACKUP_PATH -mindepth 1 -maxdepth 1 -type d -printf "%P\n" | sort -nr | head -1`
LATEST_FULL_BACKUP_TIME=`stat -c %Y $FULLBACKUP_PATH/$LATEST_FULL_BACKUP`
if [ $LATEST_FULL_BACKUP ];then
#不是第一次增量備份,以最新的增量備份目錄為base_dir
xtra_backup $INCRBACKUP_PATH $FULLBACKUP_PATH/`lastest_fullback_dir $FULLBACKUP_PATH` $BACKUP_LOG_PATH/incr_$BACKUP_DATE.log
else
# the first incremental backup need do full backup first
xtra_backup $FULLBACKUP_PATH $BACKUP_LOG_PATH/full_$BACKUP_DATE.log
if [ "${PIPESTATUS[0]}" -ne 0 ]; then
(echo "Subject: MySQL Backup Failed: MySQL Backup failed on `hostname`";
cat ${BACKUP_LOG_PATH}/incr_${BACKUP_DATE}.log;
) | /usr/sbin/sendmail -O NoRecipientAction=add-to -f${MAIL_FROM} ${MAIL_TO}
fi
fi
#cd ${INCRBACKUP_PATH}
#ls -t | tail -n +$BACKUP_KEEP_DAY | xargs rm -rf
find ${INCRBACKUP_PATH} -mtime +$BACKUP_KEEP_DAY -name "*" -exec rm -rf {} \;
}
case $1 in
full)
mysql_backup_check
mysql_full_backup
;;
incr)
mysql_backup_check
mysql_incr_backup
;;
*)
echo "full backup"
echo "incr backup"
;;
esac
相關推薦
Xtrabackup的安裝使用,自動化備份指令碼
#!/bin/bash #innobackupex 增量備份指令碼 ################################################################################## BACKUP_DATE=$(date +%Y-%m-%d_%H_%M
Oracle 自動化備份指令碼
Oracle 日常RMAN備份指令碼,很基礎。但是對於多個需要備份的Oracle資料庫,可以很簡單實施,並利於後期批量狀態的查詢。 備份指令碼,基於linux,windows環境需要適當修改。主指令碼,會呼叫2,3步驟的rman.sql&status.sql $ more main.sh #
xtrabackup安裝及全備,增量備份,及恢復
關於 all 並且 -o use shutdown app 可靠 href xtrabackup特性: 1、支持熱備份 2、支持對InnoDB、MyISAM,xtradb存儲引擎的備份 3、備份過程快速、可靠
rsync+shell指令碼完成自動化備份
因為知識有些零碎所以認真看,我們還是首先介紹一下什麼是rsync? rsync是linux系統下的資料映象備份工具。使用快速增量備份工具Remote Sync可以遠端同步,支援本地複製,或者與其他SSH、rsync主機同步。Rsync其實是一個遠端資料同步工具,可通過LAN
自動化部署指令碼(安裝jdk)
1.先得保證每一臺機器都安裝了scp: 如果沒有安裝則進行安裝: 安裝scp: scp是在安裝ssh的時候安裝的,是在ssh的客戶端軟體裡面的 yum list | grep ssh 安裝的是openssh-clients.x86_64 yum inst
備份恢復工具xtrabackup安裝和使用的記錄
一、安裝 提供的是在centos7上安裝的方法: 包下載: wget https://www.percona.com/downloads/percona-toolkit/2.2.6/RPM/percona-toolkit-2.2.6-1.noarch.rpm (這個可能會用到,但我未使用到)
xtrabackup安裝部署配置 備份恢復
[[email protected] ~]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [[email&
自動化安裝python的指令碼
一 功能需求 1 下載Python的原始碼 2 安裝Python需要的依賴庫 3 編譯安裝Python 二 虛擬碼版本 三 主要函式講解 1 os.system 功能:執行命令 返回:命令的返回值
xtrabackup全量,增量備份指令碼(拿走即用)
#!/bin/sh # add ling INNOBACKUPEX=innobackupex INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX TODAY=`date +%Y%m%d%H%M` USEROPTIONS="--user=user --password=1234
MySQL自動化(全量+增量)備份指令碼
文章轉自:http://www.it-hack.cn/forum.php?mod=viewthread&tid=220&extra=page%3D1一、MySQL的日常備份方案:全備+增量備份:1、週日凌晨三點進行全備;2、週一到週日增量備份。不是往常的週日全備份,週一到週六增量備份,這樣如果
mysql xtrabackup自動增量備份shell指令碼
#!/bin/sh #victory chen INNOBACKUPEX=innobackupex INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX TODAY=`date +%Y%m%d%H%M%S` USEROPTIONS="--user
xtrabackup備份指令碼
說明:由於備份時使用--compress壓縮,所以恢復時會呼叫linux的qpress命令解壓,需要單獨安裝。下載:http://download.csdn.net/detail/u010587433/9518350 上傳伺服器後,新增執行許可權即可使用。否則在恢復時報找不
mysql備份及xtrabackup安裝
一、資料庫備份種類 1、完全備份 這可能是大多數人常用的方式,它可以備份整個資料庫,包含使用者表、系統表、索引、檢視和儲存過程等所有資料庫物件。但是呢,它也需要花費更多的時間和空間, 所以,一般推薦一週做一次完全備份。 2、事務日誌備份 事務日誌是一個
sentos7原始碼編譯安裝mysql(指令碼自動化安裝)
一、下載mysql安裝包https://dev.mysql.com/downloads/mysql/5.7.html#downloads選擇自己需要的版本,我這裡的是5.6.40版本二、在root根目錄寫安裝的指令碼vim mysql_install.sh#!/bin/bas
Centos下Oracle11gR2安裝教程與自動化配置指令碼
# 系統環境準備 ### 開發元件與依賴庫安裝 ![](https://img2020.cnblogs.com/blog/1480358/202010/1480358-20201009234306007-393743556.png) 安裝centos時選擇Server with GUI,右面的可以不勾選
使用Xtrabackup進行MySQL備份
mysql一、安裝1、簡介Xtrabackup是由percona提供的mysql數據庫備份工具,據官方介紹,這也是世界上惟一一款開源的能夠對innodb和xtradb數據庫進行熱備的工具。特點:(1)備份過程快速、可靠; (2)備份過程不會打斷正在執行的事務; (3)能夠基於壓縮等功能節約磁盤空間和流量; (
gitlab本地版的安裝和備份
bsp help 多次 自己 代碼 oca tro sin ror 之前一直想安裝一個本地git系統,來管理自已的代碼,同時也做一套自已試煉CI的環境,一直忙著其他事,加上要搭環境等原因,就放下了,這兩天有點空,就趕緊先把這git搭好,因為要CI等,所以之前裝的單一的git
percona-xtrabackup安裝(一)
mysql備份、innobackupex、percona-xtrabackupLinux系統環境:Red Hat Enterprise Linux Server release 6.5 (Santiago)MySQL版本:5.7.9 Source distribution1. Install the Perc
XtraBackup全量備份與恢復MySQL數據
備份 mysql xtrabackup 防偽碼:沒有相當程度的孤獨是不可能有內心的平和。1、概述Percona XtraBackup(簡稱PXB)是 Percona 公司開發的一個用於 MySQL 數據庫物理熱備的備份工具,支持 MySQl(Oracle)、Percona Server 和 Mar
GitLab CE服務器安裝配置備份恢復升級註意項總結
gitlab ce服務器GitLab CE安裝安裝比較簡單,rpm直接在不同平臺安裝https://about.gitlab.com/installation/直接下載源包地址https://about.gitlab.com/downloads/archives/安裝 #yum install curl op