數(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)行備份,物理備份分為冷備份和熱備份兩種。
- 冷備份是將數(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ù)。
- 熱備份也分為兩種,一種是不關(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 格式的歸檔包中存入或讀取文件。
為了提高物理備份的效率,通常將完全 、 增量 、 累積三種備份方式相組合。
- 完全備份是將數(shù)據(jù)庫(kù)的內(nèi)容全部備份,作為增量 、 累積的基礎(chǔ);
- 這里的增量備份,指的是差異增量備份。即備份自上次同級(jí)或低級(jí)差異增量備份以來(lái)所有發(fā)生變化的數(shù)據(jù)塊;
- 累積備份是累積增量備份,會(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ù)的步驟如下:
- 首先從完全備份恢復(fù)數(shù)據(jù)庫(kù)。
- 然后按照時(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ù)。