久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql如何實(shí)現(xiàn)innobackupex備份腳本

共計(jì) 3929 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。

這篇文章主要為大家展示了“mysql 如何實(shí)現(xiàn) innobackupex 備份腳本”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“mysql 如何實(shí)現(xiàn) innobackupex 備份腳本”這篇文章吧。

做一個(gè) innobackupex 的腳本,有全備有增量備份,要求一周一個(gè)循環(huán),每周 6 晚上做全備,周日做以周六的全備為基礎(chǔ)的增量備份,周 1 做以周日的增量備份為基礎(chǔ)的增量備份,依次類推。。。注意增量備份可以以增量備份為基礎(chǔ),然后每次做全備的時(shí)候,把上一個(gè)循環(huán)內(nèi),也就是最近一周的備份壓縮到另一個(gè)目錄,并且將這個(gè)目錄的這一周的備份刪除。最后存儲(chǔ)壓縮后的備份的目錄需要保留 1 個(gè)月的備份,

開始之前你要明白幾點(diǎn):

1)xtrabackup 只能備份 innodb 和 xtradb 兩種引擎的表,而不能備份 myisam 引擎的表,但是 innobackupex 是一個(gè)封裝了 xtrabackup 的 Perl 腳本,支持同時(shí)備份 innodb 和 myisam,但在對(duì) myisam 備份時(shí)需要加一個(gè)全局的讀鎖。還有就是 myisam 不支持增量備份,不支持不是說會(huì)報(bào)錯(cuò),你雖然執(zhí)行的是增量備份,但是關(guān)于 myisam 的相關(guān)表是全備份的。

2)使用 innobackupex 備份的時(shí)候,如果沒有指定參數(shù) –no-timestamp,那么會(huì)在你的主備份目錄下生成一個(gè)時(shí)間格式的子目錄,如果指定了參數(shù) –no-timestamp,那么你指定的備份目錄的最后一級(jí),例如:innobackupex –defaults-file=/etc/my.cnf –no-timestamp –user=root –password=123456  –socket=/var/lib/mysql/mysql.sock /backup/mysqldump/back_2017-05-29,注意最后一級(jí),也就是 back_2017-05-29 一定是不存在的,否在報(bào)錯(cuò):innobackupex: Error: Failed to create backup directory /backup/mysqldump/back_2017-05-29: File exists at /usr/bin/innobackupex line 4066

3)注意 xtrabackup 一般需要自己安裝使用,區(qū)別于 oracle 的 rman,首先根據(jù)自己的操作系統(tǒng)情況下載相應(yīng)的安裝包,直接下載封裝好的二進(jìn)制的.tar 文件,然后解壓縮即可下載網(wǎng)址如下:

https://www.percona.com/downloads/XtraBackup/LATEST/

不要下載最新的除非你的操作系統(tǒng)比較新

tar zxvf  percona-xtrabackup-2.2.11-Linux-x86_64.tar.gz

yum deplist perl-DBD-MySQL

yum -y install perl-Digest*
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel 

具體的腳本:

#!/bin/bash
function date2days {
    echo $* | awk {
        z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
        j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633;
        print j
    }
}
db_user= root
db_passwd= 123456
db_defaults_file= /etc/my.cnf
db_socket= /var/lib/mysql/mysql.sock
db_backup= /backup/mysqldump/
db_backup_fulldir= /backup/mysqldump/full/
db_backup_incrementaldir= /backup/mysqldump/incremental/
db_backup_gzfull= /backup/mysqldump/gzip/
db_backup_tarfull= /backup/mysqldump/tar.gzdb/
rm_num=7
move_and_tar (){
if [$# != 1]; then
       echo 參數(shù)不正確
       exit 0 
fi
time_rm=`date -d $1 days ago + back_%d-%m-%Y `  
if [$1 -eq 7]; then
        if [-d ${db_backup_fulldir}${time_rm} ]; then
                tar -czPvf ${db_backup_tarfull}${time_rm}_full.tar.gz ${db_backup_fulldir}${time_rm}
                rm -rf ${db_backup_fulldir}${time_rm}
                echo 壓縮目錄 rm $db_backup_fulldir${time_rm} /backup/mysqldump/config/tar.log
        fi
fi
if [$1 -gt 0 -a $a -lt 7]; then
        if [-d $db_backup_incrementaldir${time_rm} ]; then
                su – root -c   tar -czPvf ${db_backup_tarfull}${time_rm}_increment.tar.gz ${db_backup_incrementaldir}${time_rm}
                su – root -c   rm -rf ${db_backup_incrementaldir}${time_rm}
                echo 壓縮目錄 rm $db_backup_incrementaldir${time_rm} /backup/mysqldump/config/tar.log
        fi
fi
}
time= $(date + back_%d-%m-%Y)
source /backup/mysqldump/config/config
_Day=$(date2days `echo ${backup_full:5:10}|awk BEGIN{FS= –}{print $3,$2,$1} `)
Day=$(date2days `date + %Y %m %d `)
echo $_Day
echo $Day
let result=$Day-$_Day
echo 相差 $result 天
if [-z ${backup_full} ] || [$result -ge 7  ] ; then
echo 全備份
backup_full=${time}
innobackupex –defaults-file=$db_defaults_file –no-timestamp –user=${db_user} –password=${db_passwd}  –socket=$db_socket ${db_backup_fulldir}${backup_full}/
   
if [$? -eq 0]; then
        echo ${time} 備份成功!!! /backup/mysqldump/config/results.log
    else
        echo ${time} 備份失敗??? /backup/mysqldump/config/results.log
    fi
echo backup_full=${backup_full} /backup/mysqldump/config/config
echo backup_pre_name=full/${backup_full} /backup/mysqldump/config/config
while [${rm_num} -lt 8 -a ${rm_num} -gt 0 ]
do
move_and_tar ${rm_num}
rm_num=`expr ${rm_num} – 1`
done
echo 全備份
else
echo 增量備份
innobackupex  –defaults-file=$db_defaults_file –socket=$db_socket –no-timestamp –user=${db_user} –password=${db_passwd}  –incremental ${db_backup_incrementaldir}${time}/ –incremental-basedir=${db_backup}${backup_pre_name}
if [$? -eq 0]; then
                echo ${time} 增量備份成功!!! /backup/mysqldump/config/results.log
        else
                echo ${time} 增量備份失敗??? /backup/mysqldump/config/results.log
        fi
echo backup_full=${backup_full} /backup/mysqldump/config/config
echo backup_pre_name=incremental/${time} /backup/mysqldump/config/config
echo 增量備份
fi

以上是“mysql 如何實(shí)現(xiàn) innobackupex 備份腳本”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)3929字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 边坝县| 琼结县| 杨浦区| 德州市| 山阴县| 麻江县| 垦利县| 玉林市| 甘泉县| 清水县| 滦南县| 苏尼特右旗| 安泽县| 沈阳市| 神池县| 廊坊市| 类乌齐县| 盐山县| 会同县| 岳阳县| 农安县| 乐昌市| 抚州市| 阿合奇县| 乃东县| 彭水| 遂平县| 保亭| 张家川| 合江县| 邯郸市| 介休市| 新密市| 申扎县| 台东县| 湾仔区| 土默特右旗| 瓦房店市| 静宁县| 扎兰屯市| 集贤县|