MySQL數據備份與恢復

**無論備份還是恢復,都要驗證用戶及權限**


一、數據備份

1、數據備份的備份方式

  物理備份:cp、tar、tar+gzip  —> 兼容性差,目標地址空間大,耗時

         系統自帶物理備份工具mysqlhotcopy --> 備份時鎖表

邏輯備份:備份產生數據的SQL語句  —> 兼容性好,佔用空間小

     系統自帶完整備份工具Mysqldump(MySQL-client包產生) --> 備份時鎖表


2、數據備份的備份策略

  完整備份: 完全備份,把數據庫服務器上的所有庫所有表全部備份

  差異備份: 自'完整備份’之後,疊加備份所有產生的新數據。

  優缺點:備份數據有冗餘,佔用空間,恢復時方便


例如:第1天做了完整備份,第2天產生3條記錄,差異備份時需備份3條記錄,第3天產生2條            記錄,差異備份時則需備份5條記錄  

       完整備份  1條記錄    1day     備份1條記錄

       差異備份  3條記錄    2day     備份3條記錄

      2條記錄    3day     備份5條記錄

……… ……………


  增量備份:‘自上一次備份’之後,備份產生的新數據。

  優缺點:備份節省空間,恢復時調用的文件多

        完整備份  1條記錄    1day    1

         增量備份  3        2day    3

     2        3day    2

……… …………


3、工作中通常備份策略用法:

  完整備份+差異備份

  完整備份+增量備份

     

4、備份工具

  1)完整備份工具mysqldump

    **由mysql包提供,數據量不太大時用,

    **備份的時候鎖表,備份期間別人不能對備份數據進行操作


格式:mysqldump [–h數據庫IP/主機名] -u登錄用戶名 -p密碼 數據庫名 > 路徑/備份文件名.sql                                                         

不寫路徑時,默認備份到當前命令所在的目錄下

若寫路徑,需事先創建好

若數據庫管理員從本機登錄且沒有密碼:mysqldump 數據庫名 >路徑/xxx.sql

用來連接數據庫的用戶要對相應的數據庫有權限


數據庫名的表示格式:

所有庫               --all-databases

指定單個庫下的所有表    數據庫名

某個庫下的某個表      數據庫名 表名

備份某幾個庫           -B 數據庫名1  數據庫名2  數據庫名N

   

例:mysqldump -uroot -p --all-databases > /mysqlbak/alldb.sql //備份數據庫服務器上的所有庫


解決:將備份寫入計劃任務後,因備份名一樣,會覆蓋前天的備份,可以用“時間”做備份文件名。


獲取時間命令:#date +%F   →2014-07-21

    #date +%T  →17:30:17


mysqldump webdb > webdb-`date +%F`.sql          

mysqldump -h192.168.10.20 -uroot -ptarena webdb > /mysqllog/webdb-`date+%F`.sql //遠程備份


二、數據恢復

格式:mysql –h服務器IP/主機名  -u登錄用戶名 –p密碼 數據庫名 < 備份文件名  

   mysql 數據庫名 < 備份文件名  //若登錄數據庫不需要用戶名密碼


注意:恢復數據時候“<”必須寫對千萬注意不要寫反,要是恢復的時候寫成“>”那麼會自動清除備份文件內容


備份庫的時候,前面加-B備份出的文件裏面帶“創建庫”的SQL語句,恢復的時候不用在數據庫裏在創建庫

數據庫名是可選項,恢復數據時候必須查看一下備份文件裏面的SQL語句,當恢復時使用的備份文件裏有建庫SQL語句時,數據庫名可以省略,反之沒有建庫SQL語句的時候必須“進數據庫裏面手動建一個庫(庫名可以隨便寫)”然後在恢復的時候寫上新建的數據庫名


例:

mysql webdb < webdb-2014-01-06.sql               

mysql -h192.168.10.20 -uroot -ptarena webdb < /mysqllog/webdb-2014-01-06.sql                                        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章