目錄
自動(dòng)化備份MySQL
一.備份數(shù)據(jù)庫(kù)腳本
1.創(chuàng)建備份目錄
??2.創(chuàng)建腳本文件
3.新建配置文件(連接數(shù)據(jù)庫(kù)的配置文件)
4.給文件權(quán)限(mysql_backup.sh)
? ? ??編輯 ? ? ? ?
??5.執(zhí)行命令?(mysql_backup.sh)? ?
? ? ?編輯? ? ?
? 二.數(shù)據(jù)庫(kù)通過(guò)備份恢復(fù)? ?
1.創(chuàng)建腳本文件
2.增加文件可執(zhí)行權(quán)限(vi mysql_restore.sh)
3.我們來(lái)執(zhí)行通過(guò)備份文件恢復(fù)數(shù)據(jù)庫(kù)
三.數(shù)據(jù)庫(kù)備份自動(dòng)化
添加計(jì)劃任務(wù)? crontab -e
第四:清理過(guò)期備份文件
創(chuàng)建刪除文件腳本? ?vi remove_backup.sh
?添加可執(zhí)行權(quán)限
定時(shí)任務(wù)配置給貼出來(lái)
? ? ? ?編輯? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? 五.感謝各位看官的觀看!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
???
???????我是默,一個(gè)在CSDN分享筆記的博主。?????
???
??在這里,我要推薦給大家我的專欄《Linux》。????
??無(wú)論你是編程小白,還是有一定基礎(chǔ)的程序員,這個(gè)專欄都能滿足你的需求。我會(huì)用最簡(jiǎn)單易懂的語(yǔ)言,帶你走進(jìn)代碼的世界,讓你從零開(kāi)始,一步步成為編程大師。????
??讓我們?cè)诖a的世界里暢游吧!??
??如果感覺(jué)還不錯(cuò)的話請(qǐng)記得給我點(diǎn)贊哦!????
??期待你的加入,一起學(xué)習(xí),一起進(jìn)步????
?
前言:
備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲(chǔ)介質(zhì)的過(guò)程。而對(duì)于一些網(wǎng)站、系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)就是一切,所以做好數(shù)據(jù)庫(kù)的備份是至關(guān)重要的?!
自動(dòng)化備份MySQL
一.備份數(shù)據(jù)庫(kù)腳本
1.創(chuàng)建備份目錄
盡量選擇空間比較充足的目錄,這里以/home目錄為例保存?zhèn)浞菸募?;進(jìn)入到/home目錄下,創(chuàng)建backup目錄,并進(jìn)入到新建的backup目錄下
cd /home
mkdir backup
cd backup
??2.創(chuàng)建腳本文件
創(chuàng)建mysql_backup.sh
數(shù)據(jù)庫(kù)備份腳本
#!/bin/bash
# db_name 自己改這里哦
db_name='mybatis_ssm'
backup_dir='/home/backup/mysql/'
current_time=$(date +'%Y-%m-%d_%H%M%S')
filepath=$backup_dir$current_time'.sql.gz'
#此處沒(méi)有使用 $db_password $db_user, 已經(jīng)寫入到配置文件中
echo '開(kāi)始導(dǎo)出數(shù)據(jù)庫(kù)...'
mysqldump --defaults-extra-file=/home/backup/my_mysql.cnf $db_name --net-buffer-length=10m | gzip > $filepath
echo '導(dǎo)出成功,文件名為: '$filepath
在其中需要修改是:db_name,backup_dir以及mysqldump的存放路徑?
3.新建配置文件(連接數(shù)據(jù)庫(kù)的配置文件)
就在我們的當(dāng)前目錄下 即 /data/backup? ? ? ?vi my_mysql.cnf
[mysqldump]
max_allowed_packet = 400M
host=127.0.0.1
user=root
password='123'
[mysql]
host=127.0.0.1
user=root
password='123'
在其中需要修改是:host,pwssword
各位看官請(qǐng)把上面的參數(shù)改成自己的就好了,可別漏了這一步哦
其中 mysqldump 下的參數(shù)是給導(dǎo)出的命令使用的,mysql 下的參數(shù)是導(dǎo)入的時(shí)候使用的
4.給文件權(quán)限(mysql_backup.sh)
到這里的話導(dǎo)出的shell腳本就已經(jīng)寫好了,我們對(duì)這個(gè)腳本加一下可執(zhí)行權(quán)限
chmod +x ./mysql_backup.sh
授權(quán)成功的展示??
? ? ?
? ? ? ?
??5.執(zhí)行命令?(mysql_backup.sh)? ?
? ?沒(méi)有使用命令時(shí)用于存儲(chǔ)sql備份的文件夾沒(méi)有辦法數(shù)據(jù)腳本
./mysql_backup.sh
?通過(guò)以下命令進(jìn)行查看是否對(duì)應(yīng)的數(shù)據(jù)庫(kù)腳本備份成功? ??
cd sql/
ls
? ?
? ? ?
在解壓查看備份的數(shù)據(jù)庫(kù)文件是否存在數(shù)據(jù)?
gzip -d 2023-12-26_090817.sql.gz
? 二.數(shù)據(jù)庫(kù)通過(guò)備份恢復(fù)? ?
模擬數(shù)據(jù)庫(kù)被刪除,或者因?yàn)橐恍┢渌驅(qū)е聰?shù)據(jù)庫(kù)數(shù)據(jù)丟失導(dǎo)致程序無(wú)法正常運(yùn)行
1.創(chuàng)建腳本文件
按照第一步的操作,此時(shí)我們應(yīng)該處于 /data/backup 目錄下,繼續(xù)操作
vi mysql_restore.sh
?
#!/bin/bash
if [ -z $1 ] || [ ! -f $1 ]
then
echo "請(qǐng)輸入sql壓縮文件(*.sql.gz)"
exit 1
fi
#輸入你自己的數(shù)據(jù)庫(kù)名稱
db_name='mybatis_ssm'
base_dir='/home/backup/sql/'
gz_sql_file=`basename $1`
file_ext=${gz_sql_file##*.}
if [ $file_ext != 'gz' ]
then
echo '文件格式不正確,請(qǐng)輸入 .sql.gz 文件'
exit 1
fi
sql_file=${gz_sql_file%.*}
echo '解壓文件中...'
gzip -dc $base_dir$gz_sql_file > $base_dir$sql_file
echo '解壓完成.'
echo '開(kāi)始導(dǎo)入數(shù)據(jù)庫(kù)...'
mysql --defaults-extra-file=/home/backup/my_mysql.cnf $db_name < $base_dir$sql_file
if [ -f $base_dir$sql_file ]
then
echo '刪除臨時(shí)文件.'
rm -f $base_dir$sql_file
fi
echo '導(dǎo)入完成.'
上面代碼中的配置文件,就是我們第一步時(shí)創(chuàng)建的配置文件,在這里一樣的使用?
2.增加文件可執(zhí)行權(quán)限(vi mysql_restore.sh
)
chmod +x ./mysql_restore.sh
?授權(quán)成功的展示??
3.我們來(lái)執(zhí)行通過(guò)備份文件恢復(fù)數(shù)據(jù)庫(kù)
沒(méi)有備份前
./mysql_restore.sh ./sql/2023-12-26_091800.sql.gz
備份后?
執(zhí)行完命令之后在查看數(shù)據(jù)庫(kù)?
?具體思路
三.數(shù)據(jù)庫(kù)備份自動(dòng)化
? Cron安裝?這篇博客教你安裝Cron
添加計(jì)劃任務(wù)? crontab -e
* * * * * /home/backup/mysql_backup.sh #設(shè)置一分鐘備份一個(gè)
0 1,12 */7 * * /home/backup/mysql_backup.sh #設(shè)置7天備份一次
小編推薦第三個(gè)?
0 1,12 * * * /home/backup/mysql_backup.sh # 每天凌晨1點(diǎn),中午12點(diǎn)備份一次數(shù)據(jù)
要編輯或查看 Cron 任務(wù),可以使用以下命令:
crontab -e
:編輯當(dāng)前用戶的 Cron 任務(wù)crontab -l
:查看當(dāng)前用戶的 Cron 任務(wù)列表crontab -r
:移除當(dāng)前用戶的所有 Cron 任務(wù)
代表設(shè)置自動(dòng)備份成功文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-773158.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-773158.html
第四:清理過(guò)期備份文件
創(chuàng)建刪除文件腳本? ?vi remove_backup.sh
刪除過(guò)期腳本
#/bin/bash
# 刪除15天前的備份
find /home/backup/sql -type f -mtime +15 | xargs rm -f
?添加可執(zhí)行權(quán)限
chmod +x ./remove_backup.sh
定時(shí)任務(wù)配置給貼出來(lái)
0 1 * * * /data/backup/remove_backup.sh # 每天凌晨1點(diǎn),自動(dòng)刪除15天[15是remove_backup.sh里面配置的]前的備份
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? 五.感謝各位看官的觀看!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
到了這里,關(guān)于在Centos7中利用Shell腳本:實(shí)現(xiàn)MySQL的數(shù)據(jù)備份的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!