系統(tǒng)架構(gòu)設(shè)計(jì)筆記(10)—— 數(shù)據(jù)庫(kù)備份與恢復(fù)

數(shù)據(jù)庫(kù)中的數(shù)據(jù)一般都十分重要,不能丟失,因?yàn)楦鞣N原因,數(shù)據(jù)庫(kù)都有損壞的可能性(雖然很?。?,所以事先制定一個(gè)合適的 、 可操作的備份和恢復(fù)計(jì)劃至關(guān)重要。

備份和恢復(fù)計(jì)劃的制訂要遵循以下兩個(gè)原則:

(1)保證數(shù)據(jù)丟失的情況盡量少或完全不丟失,因?yàn)樾詢r(jià)比的要求,這要取決于現(xiàn)實(shí)系統(tǒng)的具體要求。
(2)備份和恢復(fù)時(shí)間盡量短,保證系統(tǒng)最大的可用性。數(shù)據(jù)庫(kù)備份按照不同方式可分為多種,這里按照備份內(nèi)容分為物理備份和邏輯備份兩類。

物理備份是在操作系統(tǒng)層面上對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件進(jìn)行備份,物理備份分為冷備份和熱備份兩種。

  1. 冷備份是將數(shù)據(jù)庫(kù)正常關(guān)閉,在停止?fàn)顟B(tài)下利用操作系統(tǒng)的 copy、cp、tar、cpio 等命令將數(shù)據(jù)庫(kù)的文件全部備份下來(lái),當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí),將數(shù)據(jù)文件復(fù)制回來(lái),進(jìn)行恢復(fù)。
  2. 熱備份也分為兩種,一種是不關(guān)閉數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)中需要備份的數(shù)據(jù)文件依次置于備份狀態(tài),相對(duì)保持靜止,然后再利用操作系統(tǒng)的 copy、cp、tar、cpio 等命令將數(shù)據(jù)庫(kù)的文件備份下來(lái),備份完畢后再將數(shù)據(jù)文件恢復(fù)為正常狀態(tài),當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí),恢復(fù)方法同冷備份一樣。熱備份的另外一種方式是利用備份軟件(例如, veritas 公司的 netbackup , legato 公司的 network 等)在數(shù)據(jù)庫(kù)正常運(yùn)行的狀態(tài)下,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件備份出來(lái)。

cp copy 簡(jiǎn)寫,它是 linux 操作系統(tǒng)的復(fù)制命令;linux 的 tar 命令用于備份文件;linux 的 cpio 命令可以從 tar 格式的歸檔包中存入或讀取文件。

為了提高物理備份的效率,通常將完全 、 增量 、 累積三種備份方式相組合。

  1. 完全備份是將數(shù)據(jù)庫(kù)的內(nèi)容全部備份,作為增量 、 累積的基礎(chǔ);
  2. 這里的增量備份,指的是差異增量備份。即備份自上次同級(jí)或低級(jí)差異增量備份以來(lái)所有發(fā)生變化的數(shù)據(jù)塊;
  3. 累積備份是累積增量備份,會(huì)備份自上次0級(jí)備份以來(lái)發(fā)生變化的數(shù)據(jù)塊。

一個(gè)備份周期通常由一個(gè)完全備份和多個(gè)增量 、 累積備份組成。由于增量或累計(jì)備份導(dǎo)出的數(shù)據(jù)少,所以其導(dǎo)出的文件較小,所需要的時(shí)間較少。

利用一個(gè)完全備份和多個(gè)增量 、 累積備份恢復(fù)數(shù)據(jù)庫(kù)的步驟如下:

  1. 首先從完全備份恢復(fù)數(shù)據(jù)庫(kù)。
  2. 然后按照時(shí)間順序從早到晚依次導(dǎo)入多個(gè)增量和累積備份文件。

邏輯備份是指利用各數(shù)據(jù)庫(kù)系統(tǒng)自帶的工具軟件備份和恢復(fù)數(shù)據(jù)庫(kù)的內(nèi)容,例如, Oracle 的導(dǎo)出工具為 exp ,導(dǎo)入工具為 imp ,可以按照表 、 表空間 、 用戶 、 全庫(kù)等四個(gè)層次備份和恢復(fù)數(shù)據(jù); Sybase 的全庫(kù)備份命令是 dumpdatabase ,全庫(kù)恢復(fù)命令是 loaddatabase ,另外也可利用 BCP 命令來(lái)備份和恢復(fù)指定表。

在數(shù)據(jù)庫(kù)容量不大的情況下邏輯備份是一個(gè)非常有效的手段,既簡(jiǎn)單又方便,但現(xiàn)在隨著數(shù)據(jù)量的越來(lái)越大,利用邏輯備份來(lái)備份和恢復(fù)數(shù)據(jù)庫(kù)已力不從心,速度也很慢。針對(duì)大型數(shù)據(jù)庫(kù)的備份和恢復(fù)一般結(jié)合磁帶庫(kù)采用物理的完全 、 增量 、 累積三種備份方式相組合來(lái)進(jìn)行。但無(wú)論任何時(shí)候邏輯備份都是一種非常有效的手段,特別適合于日常維護(hù)中的部分指定表的備份和恢復(fù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容