程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql備份及恢復

mysql備份及恢復

編輯:MySQL綜合教程

mysql備份及恢復   備份 1.數據庫定時備份工作腳本:(日期時間作為名稱的壓縮文件,解壓開是sql腳本) /root/backup/script/backup_mysql.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 [email protected] }      #這個函數用來刪除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數據庫為測試數據庫,隨便導入測試     作者 gaoxuefeng

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved