盡管很多時(shí)候數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行緩慢,但對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的丟失而言,顯然后者損失的代價(jià)是不言而喻的。因此DBA至少在保證數(shù)據(jù)不丟失的情況下來(lái)提高系統(tǒng)的性能是最起碼的要求
聯(lián)機(jī)數(shù)據(jù)庫(kù)備份
一旦數(shù)據(jù)庫(kù)運(yùn)行在archivelog方式,在打開(kāi)并對(duì)用戶可用時(shí)就可以進(jìn)行備份。這一特性允許連續(xù)運(yùn)轉(zhuǎn)的數(shù)據(jù)庫(kù)可以歸檔并能保證其恢復(fù)性。聯(lián)機(jī)熱備份應(yīng)該安排在用戶活動(dòng)最少的時(shí)間段進(jìn)行。
聯(lián)機(jī)熱備份包括三個(gè)過(guò)程,即逐個(gè)表空間地備份數(shù)據(jù)文件、備份歸檔重做日志文件和備份控制文件。
1. 逐個(gè)表空間地備份數(shù)據(jù)文件
該過(guò)程又可以分為四個(gè)步驟,即查詢表空間包括哪些數(shù)據(jù)文件、設(shè)置表空間為備份狀態(tài)、備份表空間的數(shù)據(jù)文件、將表空間恢復(fù)到正常狀態(tài)。
(1) 查詢表空間包括哪些數(shù)據(jù)文件
執(zhí)行命令select tablespace_name,file_name from dba_data_files可以獲得系統(tǒng)中所有數(shù)據(jù)文件以及其歸屬的表空間。
(2) 設(shè)置表空間為備份狀態(tài)
執(zhí)行命令alter tablespace tablespace_name begin backup將表空間tablespace_name設(shè)置為備份狀態(tài)。
(3) 備份表空間的數(shù)據(jù)文件
執(zhí)行操作系統(tǒng)的文件備份命令將表空間的數(shù)據(jù)文件備份。
(4) 將表空間恢復(fù)到正常狀態(tài)
執(zhí)行命令alter tablespace tablespace_name end backup將表空間tablespace_name恢復(fù)到正常狀態(tài)。
2. 備份歸檔重做日志文件
該過(guò)程又可以分為三個(gè)步驟,即暫停歸檔進(jìn)程ARCH、備份歸檔重做日志文件。
(1) 暫停歸檔進(jìn)程ARCH
執(zhí)行命令archive log stop暫停歸檔進(jìn)程ARCH。
(2) 記錄歸檔目標(biāo)目錄中已歸檔日志文件的列表
可以查詢V$LOG動(dòng)態(tài)字典視圖。如果日志已完全歸檔, V$LOG的archived列將含有YES值。可以從V$LOG選擇最高的歸檔日志(使用sequence#列)并將其用作備份文件清單的基礎(chǔ)。例如,如果V$LOG表明sequence#2334是最后一個(gè)被歸檔的日志文件,就可以成功地備份歸檔重做日志目標(biāo)目錄中所有序號(hào)在2334以下的文件。如果試圖備份2335,可以在操作系統(tǒng)級(jí)成功備份,但由于這個(gè)文件還沒(méi)有完全歸檔,這個(gè)備份可能只寫入一半,因而在恢復(fù)操作期間不可能有用。
(3) 重新啟動(dòng)歸檔進(jìn)程ARCH
執(zhí)行命令archive log start啟動(dòng)歸檔進(jìn)程ARCH。
(4) 備份歸檔重做日志文件
執(zhí)行操作系統(tǒng)的文件備份命令備份歸檔重作日志文件。
(5) 從歸檔目標(biāo)目錄中刪除已經(jīng)備份的歸檔日志文件
3. 備份控制文件
執(zhí)行命令alter database backup controlfile to destinantion/control.bak進(jìn)行在線備份控制文件。也可以執(zhí)行alter database backup controlfile to trace將create controlfile的命令寫入到數(shù)據(jù)庫(kù)的跟蹤文件中
聯(lián)機(jī)熱備份失敗后,如何打開(kāi)數(shù)據(jù)庫(kù)
因?yàn)楸砜臻g還處在熱備份狀態(tài)。
模擬現(xiàn)象及解決方法:
先將數(shù)據(jù)庫(kù)設(shè)置為歸檔模式
復(fù)制代碼 代碼如下:
C:>svrmgrl
svrmgrl>connect internal
svrmgrl>alter tablespace 表空間名 begin backup;
--表空間熱備模式?jīng)]結(jié)束就強(qiáng)行關(guān)閉數(shù)據(jù)庫(kù),造成錯(cuò)誤
svrmgrl>shutdown abort
svrmgrl>startup mount
--將此表空間的數(shù)據(jù)文件在沒(méi)打開(kāi)數(shù)據(jù)庫(kù)時(shí)置成end backup模式
svrmgrl>alter database datafile '表空間的數(shù)據(jù)文件名' end backup;
--或執(zhí)行表空間介質(zhì)恢復(fù)
svrmgrl>recover tablespace 表空間名;
svrmgrl>alter database open;
您可能感興趣的文章:- asp.net 數(shù)據(jù)庫(kù)備份還原(sqlserver+access)
- 批處理寫的 oracle 數(shù)據(jù)庫(kù)備份還原工具
- mysql數(shù)據(jù)庫(kù)備份及恢復(fù)命令 mysqldump,source的用法
- Linux中Oracle數(shù)據(jù)庫(kù)備份
- c實(shí)現(xiàn)linux下的數(shù)據(jù)庫(kù)備份