#!/bin/bash
############### 定義預設值 #################
user='root'
passwd='123.com'
host='localhost'
today=`date '+%f'`
dump_cmd='/usr/local/mysql/bin/mysqldump'
full_backupdir="/opt/database/full_backup/"
email='[email protected]'
################### 載入變數並定義指令碼用法 ###################
usage()
if [[ $1 == '--help' || $1 == '-h' ]];then
usage
exit 0
fi###################### 對選項進行賦值 ###################
while getopts ":u:p:h:d:" optname;do
case "$optname" in
"u")
user=$optarg
;; "p")
passwd=$optarg
;;"h")
host=$optarg
;;"d")
db=$optarg
;; ":")
echo "此選項沒有值!"
;;"*")
echo "錯誤資訊..."
;;"?")
echo "不知道此選項..."
;;esac
done
############# 對要備份的庫進行判斷並執行備份操作 ###############
[ -d $ ] || mkdir -p $
cd $
: > err.log
if [ $ -eq 0 ];then
$ -u$ -p$ -h$ -a -f > $.sql 2> err.log
status=$?
sqlname="$.sql"
else
$ -u$ -p$ -h$ --databases $db -f > $.$.sql 2> err.log
status=$?
sqlname="$.$.sql"
fi############ 對備份狀態進行判斷 #####################
if [ $ -eq 0 ];then
tar zcf $.tar.gz ./$
rm -f $
########### 如果失敗,則傳送報警郵件到指定郵箱 ################
else
echo "備份資料庫失敗,錯誤日誌如上所示!!!" >> err.log
mail -s "mysql backup" $email < err.log
fi############ 刪除二十天前的備份檔案 ##############
find . -type f -name "*.tar.gz" -mtime +20 -delete
#!/bin/bash
####################### 定義初始值 #############################
user='root'
passwd='123.com'
datadir="/usr/local/mysql/data"
backupdir="/opt/database/dailybackup/"
dump_cmd='/usr/local/mysql/bin/mysqlbinlog'
[ -d $ ] || mkdir -p $ #判斷備份檔案存放路徑是否存在
cd $ #切換至mysql的資料存放路徑
sum=`cat bin_log.index | wc -l` #取得所有二進位制日誌檔案總數
/usr/local/mysql/bin/mysql -u$ -p$ -e "flush logs" &> /dev/null #在備份前重新整理二進位制日誌檔案
nextnum=0 #定義乙個初始值為0
backupsum=0
for file in `cat bin_log.index` #對所有二進位制日誌檔案進行遍歷
do binlogname=`basename $file` #獲取二進位制日誌檔名
#如果當前備份的檔案數目比總數小(新重新整理的二進位制檔案不需要備份)
if [ $nextnum -lt $sum ];then
[ -f $$ ] || cp -a $ $$ #如果備份目錄下不存在該二進位制檔案,則進行copy動作
let nextnum++ #對備份成功數量進行增加
fidone
echo "跳過最新二進位制日誌檔案,備份完成!!!"
Mysql 資料庫增量備份
mysql 的二進位制日誌檔案中,儲存了所有對資料庫進行更改的sql語句,所以增量備份就是 先把mysql資料庫進行完全備份,然後儲存完全備份以後產生的日誌檔案,等下次完全備份時,重複以上過程.具體操作 在my.ini中新增如下資訊 log bin 二進位制日誌檔名 新增了這條配置資訊以後,重啟my...
mysql增量 mysql資料庫增量恢復
mysqldump uroot p b discuzx f x master data 2 events gzip root discuzx.sql.gz 寫入資料 刪除資料 第一時間關閉資料庫對外讀寫功能,並進入資料執行重新整理mysqlbinlog的位置點,新生成檔案 flush logs 根據...
Mysql資料庫的增量備份與還原
mysql資料庫的增量備份與還原一 備份的目的 做災難恢復 對損壞的資料進行恢復和還原。二 備份需要考慮的問題 可以接受丟失多少資料 恢復資料的時間要多久 恢復資料時是否持續提供服務 恢復的物件,是乙個庫,多個表,單個表,還是整個資料庫。三 備份的型別 1,完全備份 每次對資料庫的資料進行完全備份,...