溫馨提示×

溫馨提示×

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

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

mysql數(shù)據(jù)備份及恢復

發(fā)布時間:2021-08-17 02:42:29 來源:億速云 閱讀:291 作者:chen 欄目:數(shù)據(jù)庫

這篇文章主要介紹“mysql數(shù)據(jù)備份及恢復”,在日常操作中,相信很多人在mysql數(shù)據(jù)備份及恢復問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql數(shù)據(jù)備份及恢復”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!


 
備份
1.定時備份工作腳本:(日期時間作為名稱的壓縮文件,解壓開是sql腳本)
/root/backup/script/backup_.sh
 
2.備份輸出路徑:
/root/backup/mysql
 
3.執(zhí)行計劃任務的命令:
#crontab -e 打開計劃任務編輯器
#增加如下內容(指定于周日和周四00:00開始執(zhí)行backup_mysql.sh備份腳本)
0 0 * * 0,4 /root/backup/script/backup_mysql.sh
   www.2cto.com  
4.如果對庫新增了數(shù)據(jù),也可以手動執(zhí)行一次備份
#登陸192.168.20.101,命令行下./root/backup/script/backup_mysql.sh  執(zhí)行腳本
 
5.文件生產在 /root/backup/mysql/年份日期時間.tar.gz
 
backup_mysql.sh腳本內容:
#========================start shell 腳本============================
#!/bin/bash   
 
#定義有備份的數(shù)據(jù)庫名 
dbname=zhdatabase1   
 
#定義備份數(shù)據(jù)庫時使用的用戶名和密碼 
dbuser=root dbpasswd=root   
#數(shù)據(jù)庫備份的路徑 
backuppath=/root/backup/mysql/ 
 
#數(shù)據(jù)庫備份日志文件存儲的路徑 
logfile=/root/backup/log/mysql.log   
  www.2cto.com  
#以當前的時間作為備份的數(shù)據(jù)庫命名。 
dumpfile=$(date +%y%m%d%H%M)   
 
#這個函數(shù)用來備份數(shù)據(jù)庫 
back_db() {    
#將備份的時間、數(shù)據(jù)庫名存入日志    
echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning database "${dbname}" backup--------" >>${logfile}     
 
#備份數(shù)據(jù)庫,如果有錯誤信息也記入日志。   默認utf8編碼
#--skip-opt (mysql服務運行時備份,請加此參數(shù),防止表損壞)
#--quick --force --routines --add-drop-database --add-drop-table  (存儲過程也會一起備份)
/usr/bin/mysqldump --skip-opt -u${dbuser} -p${dbpasswd} --default-character-set=utf8 --quick --force --routines --add-drop-database --add-drop-table ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile}     
 
#開始壓縮數(shù)據(jù)文件   
echo $(date +%Y-%m-%d%t%A%t%T)" Beginning zip ${backuppath}${dumpfile}.sql" >>${logfile} 
    
#將備份數(shù)據(jù)庫文件庫壓成ZIP文件,并刪除先前的SQL文件。如果有錯誤信息也記入日志。   
tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile}     
 
#將壓縮后的文件名存入日志。   
echo "backup file name:"${dumpfile}".tar.gz" >>${logfile}   
echo -e "-------"$(date +%Y-%m-%d%t%A%t%T)" Ending database "${dbname}" backup-------\n" >>${logfile}  
}
  www.2cto.com  
#發(fā)送郵件  
#cat ${logfile} | mutt -s "Blog數(shù)據(jù)庫備份" -a ${dumpfile}.tar.gz 8chf@163.com }   
 
#這個函數(shù)用來刪除90天前的數(shù)據(jù),注意,這個腳本會刪除當前目錄下所有的早于七天前的文件 
rm_oldfile() {   
#查找出當前目錄下90天前生成的文件,并將之刪除   
find /root/backup/mysql -type f -mtime +90 -exec rm {} \; 
}   
 
#切換到數(shù)據(jù)庫備份的目錄。如果不做這個操作,壓縮文件時有可能會錯誤 
cd ${backuppath}   
 
#運行備份數(shù)據(jù)函數(shù) 
back_db   
 
#運行刪除文件函數(shù) 
rm_oldfile 
 
#添加自動運行計劃任務(每周日,每周四,00:00執(zhí)行腳本)
#crontab -e
#00 00 * * 00,04 /root/backup/script/backup_mysql.sh
 
#====================end shell 腳本======================
  www.2cto.com  
恢復
 
1. 恢復備份的數(shù)據(jù)庫
注:數(shù)據(jù)庫備份為"年份日期時間.tar.gz"的壓縮文件,解壓后為sql文件。如:201206271633.tar.gz :代表2012年06月27日16點33分.tar.gz
#1 winscp 登陸mysql服務器 取出/root/backup/mysql/下的最后備份的.tar.gz
#2 解壓
#3 使用數(shù)據(jù)庫管理工具navicat 新建一個“數(shù)據(jù)庫”,然后打開,右鍵“表”,彈出菜單選
擇“運行批次任務文件”導入sql文件,選擇utf8編碼,執(zhí)行即可還原表結構數(shù)據(jù)(默認utf8編碼)。
#test數(shù)據(jù)庫為測試數(shù)據(jù)庫,隨便導入測試

到此,關于“mysql數(shù)據(jù)備份及恢復”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI