中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql全庫備份/增量備份腳本

發布時間:2020-08-02 18:25:44 來源:網絡 閱讀:1337 作者:bpcyh1 欄目:數據庫

http://hongge.blog.51cto.com/

生產環境中Mysql數據庫的備份是周期性重復的操作,所以通常是要編寫腳本實現,通過crond計劃任務周期性執行備份腳本

mysqldump備份方案:

周日凌晨1點全庫備份

周一到周六凌晨每隔4個小時增量備份一次

設置crontab任務,每天執行備份腳本

# crontab –e

#每個星期日凌晨1:00執行完全備份腳本

0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1

#周一到周六每隔4個小時增量備份一次

0 */4 * * 1-6 /root/mysqldailybackup.sh >/dev/null 2>&1

mysqlfullbackup.sh腳本內容:

[root@localhost ~]# cat mysqlfullbackup.sh

#!/bin/sh

# Name:mysqlFullBackup.sh

# 定義數據庫目錄

mysqlDir=/usr/local/mysql

# 定義用于備份數據庫的用戶名和密碼

user=root

userpwd=123456

dbname=test_db

# 定義備份目錄

databackupdir=/opt/mysqlbackup

[ ! -d $databackupdir ] && mkdir $databackupdir

# 定義郵件正文文件

emailfile=$databackupdir/email.txt

# 定義郵件地址

email=root@localhost.localdomain

# 定義備份日志文件

logfile=$databackupdir/mysqlbackup.log

DATE=`date -I`

echo "" > $emailfile

echo $(date +"%y-%m-%d %H:%M:%S") >> $emailfile

cd $databackupdir

# 定義備份文件名

dumpfile=mysql_$DATE.sql

gzdumpfile=mysql_$DATE.sql.tar.gz

# 使用mysqldump備份數據庫,請根據具體情況設置參數

$mysqlDir/bin/mysqldump -u$user -p$userpwd --flush-logs -x $dbname > $dumpfile

# 壓縮備份文件

if [ $? -eq 0 ]; then

tar czf $gzdumpfile $dumpfile >> $emailfile 2>&1

echo "BackupFileName:$gzdumpfile" >> $emailfile

echo "DataBase Backup Success!" >> $emailfile

rm -f $dumpfile

else

echo "DataBase Backup Fail!" >> $emailfile

fi

# 寫日志文件

echo "--------------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

# 發送郵件通知

cat $emailfile | mail -s "MySQL Backup" $email

mysqldailybackup.sh腳本內容:

[root@localhost ~]# cat mysqldailybackup.sh

#!/bin/sh

# Name:mysqlDailyBackup.sh

# 定義數據庫目錄和數據目錄

mysqldir=/usr/local/mysql

datadir=$mysqldir/data

# 定義用于備份數據庫的用戶名和密碼

user=root

userpwd=123456

# 定義備份目錄,每日備份文件備份到$dataBackupDir/daily

databackupdir=/opt/mysqlbackup

dailybackupdir=$databackupdir/daily

[ ! -d $dailybackupdir ] && mkdir -p $databackupdir/daily

# 定義郵件正文文件

emailfile=$databackupdir/email.txt

# 定義郵件地址

email=root@localhost.localdomain

# 定義日志文件

logfile=$databackupdir/mysqlbackup.log

echo "" > $emailfile

echo $(date +"%y-%m-%d %H:%M:%S") >> $emailfile

#

# 刷新日志,使數據庫使用新的二進制日志文件

$mysqldir/bin/mysqladmin -u$user -p$userpwd flush-logs

cd $datadir

# 得到二進制日志列表

filelist=`cat mysql-bin.index`

icounter=0

for file in $filelist

do

icounter=`expr $icounter + 1`

done

nextnum=0

ifile=0

for file in $filelist

do

binlogname=`basename $file`

nextnum=`expr $nextnum + 1`

# 跳過最后一個二進制日志(數據庫當前使用的二進制日志文件)

if [ $nextnum -eq $icounter ]; then

echo "Skip lastest!" > /dev/null

else

dest=$dailybackupdir/$binlogname

# 跳過已經備份的二進制日志文件

if [ -e $dest ]; then

echo "Skip exist $binlogname!" > /dev/null

else

# 備份日志文件到備份目錄

cp $binlogname $dailybackupdir

if [ $? -eq 0 ]; then

ifile=`expr $ifile + 1`

echo "$binlogname backup success!" >> $emailfile

fi

fi

fi

done

if [ $ifile -eq 0 ];then

echo "No Binlog Backup!" >> $emailfile

else

echo "Backup $ifile File(s)." >> $emailfile

echo "Backup MySQL Binlog OK!" >> $emailfile

fi

# 發送郵件通知

cat $emailfile | mail -s "MySQL Backup" $email

# 寫日志文件

echo "--------------------------------------------------------" >> $logfile

cat $emailfile >> $logfile

http://hongge.blog.51cto.com/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潮州市| 宁晋县| 惠东县| 秦安县| 南京市| 泾源县| 尤溪县| 太保市| 淳安县| 鲁甸县| 呼伦贝尔市| 日喀则市| 韶关市| 宜春市| 唐山市| 吐鲁番市| 五河县| 西峡县| 临洮县| 门源| 综艺| 唐山市| 康乐县| 湟源县| 会理县| 绵阳市| 仙桃市| 嘉兴市| 浦城县| 海淀区| 固原市| 佛冈县| 河曲县| 梧州市| 正镶白旗| 大荔县| 钟山县| 辽宁省| 斗六市| 章丘市| 六盘水市|