標籤:重要 sch size value ESS 壓縮檔 block cdb sql命令
Database Backup的重要性:
在生產環境中,資料的安全性是至關重要的,任何資料的丟失都可能產生嚴重的後果。Database Backup的重要性主要體現在:
1.提高系統的高可用性的和災難可恢複性,在資料庫系統崩潰時,沒有Database Backup就沒法找到資料。
2.使用Database Backup還原資料庫,是資料庫崩潰時提供資料恢複最小代價的最優方案,如果讓使用者重新添加資料,代價未免太大。
3.沒有資料就沒有一切,Database Backup是一種防範災難的強力手段。
使用資料庫的過程中有多種原因造成資料丟失:
程式錯誤、人為錯誤、電腦失敗、磁碟失敗、災難(地震 火災等)和偷竊
Database Backup的分類:
樣本:
create database school;
create table info (id int,name char(10));
Insert into info (id,name) values (1,‘zs’);
----------------------完整備份----------------------------------------------------
Insert into info (id,name) values (2,’ls’);
------------------------增量備份----------------------------------------------
Insert into info (id,name) values (3,’ww’);
-------------------------增量備份和差異備份----------------------------------
Insert into info (id,name) values (4,’zl’);
---------------------增量備份和差異備份------------------------------
MySQL完全備份概念解讀
MySQL的備份方式主要有完全備份與增量備份。完全備份是對整個資料庫的備份、資料庫結構和檔案結構的備份,儲存的是備份完成時的資料庫,時增量備份的基礎。
完全備份的優點是備份與恢複操作簡單方便,缺點是資料存在大量重複,佔用大量的備份空間,備份的時間長。
在生產環境中,這兩種備份方式都會使用,需要制定合理高效的方案達到備份資料的目的,避免資料丟失造成嚴重的後果。
關於備份這裡介紹兩種方式
1.使用tar打包檔案夾備份:MySQL的資料庫檔案預設都是儲存在安裝目錄的data檔案夾下面,可以直接儲存data檔案夾,但是佔用空間的空間較大,可以使用tar打包壓縮排行儲存。下面介紹一些相關操作命令:
[[email protected] mysql]# yum install xz -y //安裝xz壓縮格式工具
[[email protected] mysql]# date +%F //指定的壓縮檔日期格式
[[email protected] mysql]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data //對資料庫檔案夾進行壓縮打包到/opt下
[[email protected] ~]# du -sh /opt/mysql-2018-08-30.tar.xz //du查看打包後佔用的記憶體大小
[[email protected] ~]# du -sh /usr/local/mysql/data //du查看打包前原檔案夾佔用的記憶體大小
[[email protected] ~]# tar Jxvf /opt/mysql-2018-08-30.tar.xz /usr/local/mysql/data/ //將打包的備份檔案恢複到資料庫檔案夾
具體操作如:
2.使用mysqldump工具備份:使用mysqldump可以更加靈活地控製備份的內容,比如某幾個表或庫都可以單獨備份。下面介紹一些相關操作命令:
(1)備份表資料:
mysqldump -u 使用者名稱 -p 密碼 選項 資料庫名 表名 > /備份路徑/備份檔案名
mysqldump -u root -p school info > /opt/info.sql
(2)單個庫備份:
mysqldump -u 使用者名稱 -p 密碼 選項 資料庫名 > /備份路徑/備份檔案名
mysqldump -uroot -p school > /opt/school.sql #只會寫庫裡所有表的建立和資料記錄
(3)多個庫備份:
mysqldump -u 使用者名稱 -p 密碼 選項 --databases 庫名1 庫名2 > /備份路徑/備份檔案名
mysqldump -uroot -p --databases school kgc > /opt/school_kgc.sql
(4)對所有庫進行完全備份:
mysqldump -u 使用者名稱 -p 密碼 選項 --all-databases > /備份路徑/備份檔案名
mysqldump -uroot -p --all-databases > /opt/all.sql
(5)備份表結構:
mysqldump -u 使用者名稱 -p 密碼 -d 資料庫名 表名 > /備份路徑/備份檔案名
mysqldump -u root -p -d school info > /opt/info-d.sql
MySQL資料完全恢複
當需要恢複資料庫的時候,可以使用source命令和MySQL命令
(1)使用source命令將已經備份的庫school恢複到MySQL中:
mysqldump -u root -p school > /opt/school.sql
(2)使用MySQL命令整庫資料,同樣在庫chool提前已經備份好的情況下進行恢複:
mysqldump -u root -p school > /opt/school.sql
(3)mysqldump -u -root -p --databases school > /opt/school01.sql #連同庫school本身和裡面的表都會備份,直接恢複即可:
恢複表:
(1)使用source命令恢複表,在資料表已經備份好的前提下進行恢複操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
(2)使用MySQL恢複資料表,同樣也是在資料表已經備份好的前提下進行恢複操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
mysql -u 使用者名稱 -p 密碼 庫名 < /庫備份教本的路徑
本篇補充
備份之後的檔案是一個sql指令碼,sql結尾是固定格式
MySQL完全備份與恢複