1. 程式人生 > >數據庫備份及恢復操作

數據庫備份及恢復操作

物理文件 -- 數據 備份操作 屬性文件 數據文件 mysqldump 關閉 備份文件

備份文件數據類型

1、數據文件 info.ibd //info為表名
2、表結構文件 info.frm
3、表屬性文件 db.opt

備份類型

- 物理備份:對數據庫操作系統的物理文件(如數據文件、日誌文件等)的備份。  
    --脫機備份(冷備份):在關閉數據庫時進行的備份操作,能較好的保證數據庫的完整性。    
    --聯機備份(熱備份):在數據庫運行狀態時進行操作,這種備份依賴於數據庫的日誌文件。

- 邏輯備份:針對數據庫的邏輯組件(如數據庫對象的備份)    
    ①完全備份:每次對數據庫進行完整備份,可備份整個數據庫,但需花費較多空間與時間。     
    ②差異備份:備份自從上次完全備份之後被修改過的文件,只備份數據庫的部分內容,但是有些東西會被重復備份。    
    ③增量備份:只有那些上次完全備份或者增量備份後被修改的文件才會去被備份。

使用tar包打包備份:

對數據庫文件夾進行打包操作:
tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/

利用tar包還原數據庫文件:
tar Jxvf /opt/mysql-2018-7-2.tar.zx /usr/local/mysql/data/

使用mysqldump工具備份:

mysqldump -u root -p school > /opt/shcool.sql  //針對school數據庫備份

mysqldump -u root -p --databases 庫名1 庫名2 > /opt/1-2.sql  //多數據庫備份,--databases後面只能跟數據庫

mysqldump -u root -p --opt --all-databases > /opt/all.sql  //備份全部數據庫

mysqldump -u root -p school info > /opt/school-info.sql  //備份數據庫後面的表

mysqldump -u root -p -d school info > /opt/desc-info.sql  //僅備份表的結構

恢復數據庫

不論是哪一種模式,必須要先建立同名數據庫,然後才可恢復,不論備份還是恢復,都可結合crontab周期性計劃任務執行

source在mysql模式下執行:
mysql> 
    use school;
    show tables;
    drop table info;   //刪除info表
    show tables;
    source /opt/school-info.sql   //執行備份庫下的表文件

mysql在Linux命令下執行:

mysql -u root -p school < /opt/school-info.sql   //執行備份庫下的表文件

數據庫備份及恢復操作