您好,登錄后才能下訂單哦!
這篇文章主要介紹“mysql數據備份及恢復”,在日常操作中,相信很多人在mysql數據備份及恢復問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql數據備份及恢復”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
備份
1.定時備份工作腳本:(日期時間作為名稱的壓縮文件,解壓開是sql腳本)
/root/backup/script/backup_.sh
2.備份輸出路徑:
/root/backup/mysql
3.執行計劃任務的命令:
#crontab -e 打開計劃任務編輯器
#增加如下內容(指定于周日和周四00:00開始執行backup_mysql.sh備份腳本)
0 0 * * 0,4 /root/backup/script/backup_mysql.sh
www.2cto.com
4.如果對庫新增了數據,也可以手動執行一次備份
#登陸192.168.20.101,命令行下./root/backup/script/backup_mysql.sh 執行腳本
5.文件生產在 /root/backup/mysql/年份日期時間.tar.gz
backup_mysql.sh腳本內容:
#========================start shell 腳本============================
#!/bin/bash
#定義有備份的數據庫名
dbname=zhdatabase1
#定義備份數據庫時使用的用戶名和密碼
dbuser=root dbpasswd=root
#數據庫備份的路徑
backuppath=/root/backup/mysql/
#數據庫備份日志文件存儲的路徑
logfile=/root/backup/log/mysql.log
www.2cto.com
#以當前的時間作為備份的數據庫命名。
dumpfile=$(date +%y%m%d%H%M)
#這個函數用來備份數據庫
back_db() {
#將備份的時間、數據庫名存入日志
echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning database "${dbname}" backup--------" >>${logfile}
#備份數據庫,如果有錯誤信息也記入日志。 默認utf8編碼
#--skip-opt (mysql服務運行時備份,請加此參數,防止表損壞)
#--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}
#開始壓縮數據文件
echo $(date +%Y-%m-%d%t%A%t%T)" Beginning zip ${backuppath}${dumpfile}.sql" >>${logfile}
#將備份數據庫文件庫壓成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
#發送郵件
#cat ${logfile} | mutt -s "Blog數據庫備份" -a ${dumpfile}.tar.gz 8chf@163.com }
#這個函數用來刪除90天前的數據,注意,這個腳本會刪除當前目錄下所有的早于七天前的文件
rm_oldfile() {
#查找出當前目錄下90天前生成的文件,并將之刪除
find /root/backup/mysql -type f -mtime +90 -exec rm {} \;
}
#切換到數據庫備份的目錄。如果不做這個操作,壓縮文件時有可能會錯誤
cd ${backuppath}
#運行備份數據函數
back_db
#運行刪除文件函數
rm_oldfile
#添加自動運行計劃任務(每周日,每周四,00:00執行腳本)
#crontab -e
#00 00 * * 00,04 /root/backup/script/backup_mysql.sh
#====================end shell 腳本======================
www.2cto.com
恢復
1. 恢復備份的數據庫
注:數據庫備份為"年份日期時間.tar.gz"的壓縮文件,解壓后為sql文件。如:201206271633.tar.gz :代表2012年06月27日16點33分.tar.gz
#1 winscp 登陸mysql服務器 取出/root/backup/mysql/下的最后備份的.tar.gz
#2 解壓
#3 使用數據庫管理工具navicat 新建一個“數據庫”,然后打開,右鍵“表”,彈出菜單選
擇“運行批次任務文件”導入sql文件,選擇utf8編碼,執行即可還原表結構數據(默認utf8編碼)。
#test數據庫為測試數據庫,隨便導入測試
到此,關于“mysql數據備份及恢復”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。