您好,登錄后才能下訂單哦!
數(shù)據(jù)庫備份的重要性:
在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性是至關(guān)重要的,任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴重的后果。數(shù)據(jù)庫備份的重要性主要體現(xiàn)在:
1.提高系統(tǒng)的高可用性的和災(zāi)難可恢復(fù)性,在數(shù)據(jù)庫系統(tǒng)崩潰時,沒有數(shù)據(jù)庫備份就沒法找到數(shù)據(jù)。
2.使用數(shù)據(jù)庫備份還原數(shù)據(jù)庫,是數(shù)據(jù)庫崩潰時提供數(shù)據(jù)恢復(fù)最小代價的最優(yōu)方案,如果讓用戶重新添加數(shù)據(jù),代價未免太大。
3.沒有數(shù)據(jù)就沒有一切,數(shù)據(jù)庫備份是一種防范災(zāi)難的強力手段。
使用數(shù)據(jù)庫的過程中有多種原因造成數(shù)據(jù)丟失:
程序錯誤、人為錯誤、計算機失敗、磁盤失敗、災(zāi)難(地震 火災(zāi)等)和偷竊
數(shù)據(jù)庫備份的分類:
示例:
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的備份方式主要有完全備份與增量備份。完全備份是對整個數(shù)據(jù)庫的備份、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份,保存的是備份完成時的數(shù)據(jù)庫,時增量備份的基礎(chǔ)。
完全備份的優(yōu)點是備份與恢復(fù)操作簡單方便,缺點是數(shù)據(jù)存在大量重復(fù),占用大量的備份空間,備份的時間長。
在生產(chǎn)環(huán)境中,這兩種備份方式都會使用,需要制定合理高效的方案達到備份數(shù)據(jù)的目的,避免數(shù)據(jù)丟失造成嚴重的后果。
關(guān)于備份這里介紹兩種方式
1.使用tar打包文件夾備份:MySQL的數(shù)據(jù)庫文件默認都是保存在安裝目錄的data文件夾下面,可以直接保存data文件夾,但是占用空間的空間較大,可以使用tar打包壓縮進行保存。下面介紹一些相關(guān)操作命令:
[root@localhost mysql]# yum install xz -y //安裝xz壓縮格式工具
[root@localhost mysql]# date +%F //指定的壓縮文件日期格式
[root@localhost mysql]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data //對數(shù)據(jù)庫文件夾進行壓縮打包到/opt下
[root@localhost ~]# du -sh /opt/mysql-2018-08-30.tar.xz //du查看打包后占用的內(nèi)存大小
[root@localhost ~]# du -sh /usr/local/mysql/data //du查看打包前原文件夾占用的內(nèi)存大小
[root@localhost ~]# tar Jxvf /opt/mysql-2018-08-30.tar.xz /usr/local/mysql/data/ //將打包的備份文件恢復(fù)到數(shù)據(jù)庫文件夾
具體操作如下圖:
2.使用mysqldump工具備份:使用mysqldump可以更加靈活地控制備份的內(nèi)容,比如某幾個表或庫都可以單獨備份。下面介紹一些相關(guān)操作命令:
(1)備份表數(shù)據(jù):
mysqldump -u 用戶名 -p 密碼 選項 數(shù)據(jù)庫名 表名 > /備份路徑/備份文件名
mysqldump -u root -p school info > /opt/info.sql
(2)單個庫備份:
mysqldump -u 用戶名 -p 密碼 選項 數(shù)據(jù)庫名 > /備份路徑/備份文件名
mysqldump -uroot -p school > /opt/school.sql #只會寫庫里所有表的創(chuàng)建和數(shù)據(jù)記錄
(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)備份表結(jié)構(gòu):
mysqldump -u 用戶名 -p 密碼 -d 數(shù)據(jù)庫名 表名 > /備份路徑/備份文件名
mysqldump -u root -p -d school info > /opt/info-d.sql
MySQL數(shù)據(jù)完全恢復(fù)
當(dāng)需要恢復(fù)數(shù)據(jù)庫的時候,可以使用source命令和MySQL命令
(1)使用source命令將已經(jīng)備份的庫school恢復(fù)到MySQL中:
mysqldump -u root -p school > /opt/school.sql
(2)使用MySQL命令整庫數(shù)據(jù),同樣在庫chool提前已經(jīng)備份好的情況下進行恢復(fù):
mysqldump -u root -p school > /opt/school.sql
(3)mysqldump -u -root -p --databases school > /opt/school01.sql #連同庫school本身和里面的表都會備份,直接恢復(fù)即可:
恢復(fù)表:
(1)使用source命令恢復(fù)表,在數(shù)據(jù)表已經(jīng)備份好的前提下進行恢復(fù)操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
(2)使用MySQL恢復(fù)數(shù)據(jù)表,同樣也是在數(shù)據(jù)表已經(jīng)備份好的前提下進行恢復(fù)操作:
mysqldump -u root -p school info > /opt/info.sql #備份表
mysql -u 用戶名 -p 密碼 庫名 < /庫備份教本的路徑
本篇補充
備份之后的文件是一個sql腳本,sql結(jié)尾是固定格式
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。