第9章Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)_第1頁(yè)
第9章Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)_第2頁(yè)
第9章Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)_第3頁(yè)
第9章Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)_第4頁(yè)
第9章Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)_第5頁(yè)
已閱讀5頁(yè),還剩108頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第九章第九章 Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)數(shù)據(jù)庫(kù)備份與恢復(fù)本章內(nèi)容本章內(nèi)容 9.1 數(shù)據(jù)庫(kù)常見(jiàn)故障類型 9.2 數(shù)據(jù)庫(kù)保護(hù)機(jī)制 9.3 數(shù)據(jù)庫(kù)邏輯備份與恢復(fù) 9.4 脫機(jī)備份(冷備份) 9.5 聯(lián)機(jī)備份(熱備份) 9.6 使用OMS工具的備份與恢復(fù)向?qū)?9.7 數(shù)據(jù)庫(kù)恢復(fù) DBA的主要職責(zé)之一是備份數(shù)據(jù)庫(kù)和在數(shù)據(jù)庫(kù)發(fā)生故障時(shí)及時(shí)、高效、安全地恢復(fù)數(shù)據(jù)庫(kù)。 備份方法 冷備份 熱備份 邏輯備份(Export/Import) 恢復(fù)方法 完全恢復(fù) 不完全恢復(fù) RMAN備份恢復(fù)等方式9.1 數(shù)據(jù)庫(kù)常見(jiàn)故障類型 系統(tǒng)崩潰或服務(wù)器崩潰 用戶錯(cuò)誤、沖突或者磁盤(pán)失效導(dǎo)致的文件丟失 SQL語(yǔ)句失敗 網(wǎng)絡(luò)故障 場(chǎng)地

2、災(zāi)難9.2 數(shù)據(jù)庫(kù)保護(hù)機(jī)制 Oracle數(shù)據(jù)庫(kù)保護(hù)機(jī)制:數(shù)據(jù)庫(kù)備份和事務(wù)日志。 Oracle數(shù)據(jù)庫(kù)事務(wù)日志數(shù)據(jù)庫(kù)備份l 一般來(lái)說(shuō),數(shù)據(jù)庫(kù)備份可以分為物理備份和邏輯備份l 物理備份可分為脫機(jī)備份和聯(lián)機(jī)備份。脫機(jī)備份又稱為冷備份,只能在數(shù)據(jù)庫(kù)關(guān)閉后進(jìn)行備份;聯(lián)機(jī)備份又稱為熱備份,數(shù)據(jù)庫(kù)沒(méi)有關(guān)閉,用戶還可以使用。l 邏輯備份是使用Export實(shí)用程序備份,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障,可以使用Oracle的Import實(shí)用程序恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)備份 數(shù)據(jù)庫(kù)的事務(wù)日志(Transaction Log)是一組操作系統(tǒng)文件,它記錄了提交事務(wù)所做的數(shù)據(jù)庫(kù)修改。 日志主要是保護(hù)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí)執(zhí)行恢復(fù)。 為了防止

3、日志本身的故障,Oracle允許在不同的物理磁盤(pán)上維護(hù)兩個(gè)或多個(gè)日志的副本。事務(wù)日志(1)正常工作時(shí),每天晚上備份數(shù)據(jù)庫(kù),包含所有數(shù)據(jù)文件。(2)某一天,包含數(shù)據(jù)庫(kù)的某個(gè)數(shù)據(jù)文件的磁盤(pán)壞了,因此一部分?jǐn)?shù)據(jù)不可用(做了磁盤(pán)容錯(cuò)的情況例外),因此需要執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)。(3)把有問(wèn)題的磁盤(pán)更換為新的磁盤(pán)。(4)將最近的數(shù)據(jù)庫(kù)備份存入新的磁盤(pán)中以恢復(fù)丟失的數(shù)據(jù)文件,但是,恢復(fù)的數(shù)據(jù)文件丟失了備份發(fā)生后所提交的事務(wù)工作。(5)最后,執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)工作。在恢復(fù)過(guò)程中,Oracle讀取事務(wù)日志,把過(guò)去提交的事務(wù)工作重做,使數(shù)據(jù)庫(kù)文件成為當(dāng)前文件。(6)數(shù)據(jù)庫(kù)恢復(fù)后,打開(kāi)數(shù)據(jù),供應(yīng)用程序使用。舉例,磁盤(pán)失效后如

4、何保護(hù)和恢復(fù)數(shù)據(jù)庫(kù) 。 歸檔方式(ARCHIVELOG),歸檔方式的目的是當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí)最大限度恢復(fù)數(shù)據(jù)庫(kù),可以保證不丟失任何已提交的數(shù)據(jù)。 不歸檔方式(NOARCHIVELOG),只能恢復(fù)數(shù)據(jù)庫(kù)到最近的回收點(diǎn)(冷備份或是邏輯備份)。 ORACLE數(shù)據(jù)庫(kù)兩種運(yùn)行方式9.3 數(shù)據(jù)庫(kù)邏輯備份與恢復(fù) 數(shù)據(jù)庫(kù)邏輯備份:讀一個(gè)數(shù)據(jù)庫(kù)記錄集,并以O(shè)racle提供的內(nèi)部格式寫(xiě)入一個(gè)二進(jìn)制文件中。這些記錄的讀出與其物理位置無(wú)關(guān)。 在Oracle中,Export實(shí)用程序執(zhí)行邏輯備份。 使用Oracle的Import實(shí)用程序執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)。 當(dāng)用戶導(dǎo)入導(dǎo)出時(shí),有相應(yīng)的權(quán)限要求。 在OEM中,當(dāng)用戶連接到Ora

5、cle Management Server時(shí),可以使用圖形界面執(zhí)行數(shù)據(jù)庫(kù)的導(dǎo)入和導(dǎo)出。9.3.1 導(dǎo)出 Oracle的實(shí)用程序Export 用來(lái)讀取一個(gè)數(shù)據(jù)庫(kù),并把輸入寫(xiě)入一個(gè)稱為導(dǎo)出轉(zhuǎn)儲(chǔ)文件(export dump file)的二進(jìn)制文件。 EXP USERID=username/password PARAMETER=(value1,value2,.) 可以通過(guò)如下命令來(lái)顯示參數(shù) EXP HELP=Y 導(dǎo)出方式:Full方式、User方式和Table方式。 完全數(shù)據(jù)庫(kù)導(dǎo)出 exp system/manager full=Y constraints=Y file=f:backuptest.dm

6、p 導(dǎo)出用戶表 exp user1/password tables=employees file=f:backuptest.dmp exp user1/password tables=(employees,jobs) file=f:backuptest.dmp 導(dǎo)出用戶模式 exp user1/password owner=user1 file=test.dmp Oracle的Import實(shí)用程序執(zhí)行導(dǎo)入,來(lái)恢復(fù)數(shù)據(jù)庫(kù)。Import實(shí)用程序讀取由Export創(chuàng)建的二進(jìn)制導(dǎo)出轉(zhuǎn)儲(chǔ)文件并執(zhí)行其中的命令 。 IMP USERID=username/password PARAMETER=(value1

7、,value2,.) 可以通過(guò)如下命令來(lái)顯示參數(shù) IMP HELP=Y 導(dǎo)出的數(shù)據(jù)可以導(dǎo)入到不同的數(shù)據(jù)庫(kù)中,甚至可以導(dǎo)入到與生成導(dǎo)出轉(zhuǎn)儲(chǔ)文件不同的模式中;可以導(dǎo)入全部或部分已導(dǎo)出的數(shù)據(jù) 。9.3.2 導(dǎo)入 導(dǎo)入用戶自身所擁有的表IMP system/ora456 tables=student file=f:backuptest.dmpIMP system/ora456 tables=(student, course) file=f:backuptest.dmp 導(dǎo)入用戶模式 imp system/manager FROMUSER=scott TOUSER=system tables=dept

8、file=f:backuptest.dmp 案例1,導(dǎo)出數(shù)據(jù)庫(kù)表,用戶誤操作刪除表,執(zhí)行導(dǎo)入表,恢復(fù)數(shù)據(jù)庫(kù) (1)TEST2數(shù)據(jù)庫(kù)(System用戶,口令為ora456),導(dǎo)出表student9.3.3 邏輯備份案例 (2)刪除表student中的數(shù)據(jù),或者將整個(gè)表刪除,數(shù)據(jù)已經(jīng)不存在,或者表被刪除 (3)導(dǎo)入表student,恢復(fù)數(shù)據(jù)庫(kù) (4)查詢表和數(shù)據(jù),驗(yàn)證導(dǎo)入是否成功 案例2,導(dǎo)入其他方案的表。將Scott的表dept導(dǎo)入System (1)System下沒(méi)有Scott的表dept,注意,這不同與查詢時(shí)使用scott.dept (2)在system下,導(dǎo)出Scott的表dept,導(dǎo)出文

9、件test2.dmp (3)將Scott的表dept導(dǎo)入到System中(4)再次執(zhí)行步驟(1)中的查詢,驗(yàn)證導(dǎo)入成功 9.4 脫機(jī)備份(冷備份) 脫機(jī)備份是最簡(jiǎn)單的一種數(shù)據(jù)庫(kù)備份方式,在數(shù)據(jù)庫(kù)關(guān)閉后進(jìn)行備份,用戶不能訪問(wèn)數(shù)據(jù)庫(kù),是一種完全備份。 脫機(jī)備份一般需要備份如下文件: (1)所有數(shù)據(jù)文件 (2)所有控制文件 (3)所有聯(lián)機(jī)重做日志 (4)init.ora文件脫機(jī)備份步驟(1)以DBA或特權(quán)用戶登錄,對(duì)于需要的備份文件,用戶也可通過(guò)下列SQL語(yǔ)句來(lái)了解數(shù)據(jù)文件、重演日志文件及控制文件的相應(yīng)位置及名稱。SELECT * FROM V$LOGFILE;SELECT * FROM V$DBF

10、ILE;SELECT * FROM V$CONTROLFILE;(2)關(guān)閉數(shù)據(jù)庫(kù)SHUTDOWN NORMAL;或者執(zhí)行SHUTDOWN IMMEDIATE; (3)復(fù)制數(shù)據(jù)文件 用拷貝命令備份全部的數(shù)據(jù)文件、重做日志文件、控制文件、初始化參數(shù)文件等。 簡(jiǎn)單的處理方法是將數(shù)據(jù)庫(kù)所在路徑下的文件全部復(fù)制備份。在下面實(shí)驗(yàn)案例中所用數(shù)據(jù)庫(kù)TEST2的目錄是:f:oracleoradatatest2(4)重新啟動(dòng)數(shù)據(jù)庫(kù)STARTUP; 脫機(jī)備份的優(yōu)點(diǎn): 只需要拷貝文件,速度比較快。 將文件拷貝回去,數(shù)據(jù)庫(kù)就可以恢復(fù)到某個(gè)時(shí)間點(diǎn)。 若結(jié)合數(shù)據(jù)庫(kù)歸檔模式可以很好地恢復(fù)數(shù)據(jù)庫(kù)。 維護(hù)量相對(duì)較少,但安全性相對(duì)

11、較高。 脫機(jī)備份的缺點(diǎn): 脫機(jī)備份時(shí),數(shù)據(jù)庫(kù)必須關(guān)閉。 單獨(dú)使用脫機(jī)備份,數(shù)據(jù)庫(kù)只能基于某一時(shí)間點(diǎn)恢復(fù)。 若磁盤(pán)空間有限,使用磁帶等外設(shè)時(shí)速度較慢。 脫機(jī)備份不能按表或用戶恢復(fù)。 案例,脫機(jī)備份與不完全數(shù)據(jù)庫(kù)恢復(fù) 脫機(jī)備份數(shù)據(jù)庫(kù)相應(yīng)文件,由于誤操作,刪除了users表空間對(duì)象STUDENT表,將備份的數(shù)據(jù)文件復(fù)制到原來(lái)的位置,恢復(fù)數(shù)據(jù)庫(kù)到執(zhí)行誤操作前的狀態(tài)。以SYSDBA登錄。數(shù)據(jù)字典DBA_TABLES可以查詢表所在的表空間。 (1)對(duì)象STUDENT,有兩條記錄 (2)脫機(jī)備份shutdown immediate;備份數(shù)據(jù)文件user01.dbf,控制文件,重做日志文件,或者直接將f:or

12、acleoradatatest2目錄下的文件全部備份。 備份結(jié)束重啟數(shù)據(jù)庫(kù)startup; (3)對(duì)象student增加一條記錄insert into system.student values(1003,liming,20,CS); (4)模擬誤操作,刪除了表STUDENTdrop table system.student;commit; (5)查詢對(duì)象STUDENT,返回錯(cuò)誤信息 (6)關(guān)閉數(shù)據(jù)庫(kù)shutdown immediate; (7)復(fù)制原先備份的數(shù)據(jù)文件,控制文件,重做日志等到原來(lái)目錄下,f:oracleoradatatest2 (8)startup mount; (9)執(zhí)行基于

13、取消的恢復(fù),recover database until cancel (10)以RESETLOGS方式打開(kāi)數(shù)據(jù)庫(kù) (11)查詢對(duì)象STUDENT,只有脫機(jī)備份的兩條記錄,備份后增加的記錄沒(méi)有恢復(fù)9.5 聯(lián)機(jī)備份(熱備份) 聯(lián)機(jī)備份是在數(shù)據(jù)庫(kù)運(yùn)行時(shí)進(jìn)行的備份,用戶仍然可以訪問(wèn)數(shù)據(jù)庫(kù),一些關(guān)鍵行業(yè)的數(shù)據(jù)必須運(yùn)行在7*24模式下,并不適合執(zhí)行脫機(jī)備份,必須使用聯(lián)機(jī)備份。 聯(lián)機(jī)備份要求數(shù)據(jù)庫(kù)運(yùn)行在歸檔(archivelog)模式下,該方式下,聯(lián)機(jī)重做日志被歸檔,數(shù)據(jù)庫(kù)中所有事務(wù)的完整記錄由Oracle以循環(huán)方式寫(xiě)入聯(lián)機(jī)重做日志文件 。 聯(lián)機(jī)備份一般備份數(shù)據(jù)文件、控制文件和日志文件。 (1)備份所有數(shù)

14、據(jù)文件 (2)備份所有歸檔的重做日志文件 (3)備份一個(gè)控制文件 (4)檢查發(fā)生故障的數(shù)據(jù)文件,恢復(fù)數(shù)據(jù)文件聯(lián)機(jī)備份的優(yōu)點(diǎn):可在表空間或數(shù)據(jù)文件級(jí)備份,備份時(shí)間短。備份時(shí)數(shù)據(jù)庫(kù)仍可使用??蛇_(dá)到秒級(jí)恢復(fù)(恢復(fù)到某一時(shí)間點(diǎn)上)??蓪?duì)幾乎所有數(shù)據(jù)庫(kù)實(shí)體作恢復(fù)?;謴?fù)快速,大多數(shù)情況下恢復(fù)不需要關(guān)閉數(shù)據(jù)庫(kù)。 聯(lián)機(jī)備份的缺點(diǎn): 不能出錯(cuò),否則后果嚴(yán)重。 若聯(lián)機(jī)備份不成功,所得結(jié)果不可用于時(shí)間點(diǎn)的恢復(fù)。 因難于維護(hù),所以要特別小心,不允許“以失敗而告終”。 案例,聯(lián)機(jī)備份與完全數(shù)據(jù)庫(kù)恢復(fù) 在表空間APPL_DATA上建立對(duì)象COURSE,首先執(zhí)行聯(lián)機(jī)備份,在COURSE表上加入記錄,然后刪除數(shù)據(jù)文件APPL

15、_DATA,最后執(zhí)行恢復(fù),數(shù)據(jù)文件重新聯(lián)機(jī),驗(yàn)證恢復(fù)成功。 (1)在歸檔模式下,在表空間APPL_DATA上建立表COURSE,并插入兩條記錄 (2)切換日志,查看v$log確認(rèn)當(dāng)前日志已經(jīng)更改alter system switch logfile; (3)備份控制文件(在本案例中可以不做)alter database backup controlfile to f:backupbackup.ctl; (4)備份數(shù)據(jù)文件先將表空間APPL_DATA設(shè)置為備份模式alter tablespace appl_data begin backup;拷貝表空間的數(shù)據(jù)文件APPL_DATA.ORA,其他數(shù)

16、據(jù)文件不變。copy f:oracleoradatatest2appl_data.ora f:backupappl_data.ora將表空間APPL_DATA設(shè)置為正常模式alter tablespace appl_data end backup; (5)在COURSE表上添加記錄insert into course values(30, database, 20, 4); (6)使表空間脫機(jī),刪除數(shù)據(jù)文件APPL_DATA.ORA alter tablespace appl_data offline;del f:oracleoradatatest2appl_data.ora (7)將表空間聯(lián)

17、機(jī),出現(xiàn)錯(cuò)誤,提示恢復(fù)數(shù)據(jù)文件 (8)將備份的數(shù)據(jù)文件復(fù)制到原來(lái)所在位置,執(zhí)行數(shù)據(jù)文件恢復(fù)。copy f:backupappl_data.ora f:oracleoradatatest2appl_data.ora 然后,執(zhí)行數(shù)據(jù)文件恢復(fù)命令,本例中文件號(hào)為11recover datafile 11; (9)聯(lián)機(jī)表空間 (10)查詢對(duì)象COURSE表,確認(rèn)聯(lián)機(jī)備份恢復(fù)成功,聯(lián)機(jī)備份前的數(shù)據(jù)和備份后新增加的數(shù)據(jù)都存在9.6 使用OMS工具的備份與恢復(fù)向?qū)?.6.1 Oracle管理服務(wù)器的配置 使用備份向?qū)?shí)現(xiàn)聯(lián)機(jī)備份與恢復(fù),需要登錄到Oracle管理服務(wù)器OMS。 需要先配置Oracle管理服務(wù)

18、器,選擇【開(kāi)始】-【程序】-【OraHome90】-【Configuration and Migration Tools】-【Enterprise Manager Configuration Assistant】 ,進(jìn)入OMS的配置步驟。 進(jìn)入OMS后,為了保證備份向?qū)У恼_執(zhí)行,應(yīng)做如下工作:(1)檢查SYS和SYSTEM用戶權(quán)限,SYSTEM用戶在獨(dú)立模式下具有SYSDBA權(quán)限和SYSOPER權(quán)限,在管理服務(wù)器模式下不具備SYSDBA權(quán)限,不能啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù),需要人工授予SYSOPER和SYSDBA權(quán)限,同時(shí)應(yīng)給SYSTEM用戶添加角色EXP_FULL_DATABASE和角色 IMP_F

19、ULL_DATABASE,確保數(shù)據(jù)庫(kù)備份與恢復(fù)操作正常。SYS用戶無(wú)論是獨(dú)立模式還是管理服務(wù)器模式都有SYSOPER和SYSDBA權(quán)限。 (2)檢查操作系統(tǒng)用戶是否作為批處理作業(yè)登錄。選擇【開(kāi)始】-【程序】-【管理工具】-【本地安全策略】,選擇用戶權(quán)限分配,選擇作為批處理作業(yè)登錄,雙擊打開(kāi)后添加Administrator用戶。 (3)檢查節(jié)點(diǎn)和數(shù)據(jù)庫(kù)的首選證明,設(shè)置節(jié)點(diǎn)的首先身份證明中的用戶名為Administrator,并輸入口令。設(shè)置數(shù)據(jù)庫(kù)的首先身份證明的用戶為SYS,輸入口令,選擇以SYSDBA角色。 第一次登錄管理服務(wù)器OMS,管理員為SYSMAN,缺省口令為OEM_TEMP 初次登錄

20、,系統(tǒng)將提示更改SYSMAN口令。如果系統(tǒng)提示連接驗(yàn)證錯(cuò)誤VTK-1000,查看【管理工具】-【服務(wù)】-【OracleOraHome90ManagementServer】是否啟動(dòng),若沒(méi)有啟動(dòng),應(yīng)手動(dòng)啟動(dòng)該服務(wù)。9.6.2 使用OMS備份向?qū)?1預(yù)定義備份策略 首先選擇預(yù)定義備份策略,單擊下一步按鈕,出現(xiàn)“備份頻率”對(duì)話框 2自定義備份策略 打開(kāi)備份向?qū)?,策略選擇自定義備份策略,出現(xiàn)“備份選擇”對(duì)話框。 為了較快地看到備份結(jié)果,我們選擇備份表空間,這是數(shù)據(jù)庫(kù)子集的備份。查看“作業(yè)”節(jié)點(diǎn),在活動(dòng)項(xiàng)中可以看到備份0053已經(jīng)啟動(dòng),等待一會(huì)兒切換到歷史記錄,可以看到備份0053已經(jīng)執(zhí)行完成。 選擇備份

21、0053,右鍵選擇“查看作業(yè)”,可以顯示備份的詳細(xì)信息。 選擇狀態(tài)已完成,單擊“顯示輸出”按鈕,得到執(zhí)行備份的腳本代碼。 向?qū)Щ謴?fù)可以選擇 數(shù)據(jù)庫(kù)恢復(fù) 表空間恢復(fù) 數(shù)據(jù)文件恢復(fù)三種 恢復(fù)向?qū)袆e目標(biāo)數(shù)據(jù)庫(kù)的狀態(tài)(歸檔日志,無(wú)歸檔日志,已裝載沒(méi)有打開(kāi),裝載并打開(kāi))來(lái)禁止選項(xiàng)。 9.6.3 使用OMS恢復(fù)向?qū)Щ謴?fù)整個(gè)數(shù)據(jù)庫(kù)時(shí),將恢復(fù)屬于該數(shù)據(jù)庫(kù)的所有數(shù)據(jù)文件,要求數(shù)據(jù)庫(kù)只處于裝載狀態(tài),即NOMOUNT方式啟動(dòng)。表空間恢復(fù)將恢復(fù)數(shù)據(jù)庫(kù)的一個(gè)子集合。對(duì)選定的表空間進(jìn)行恢復(fù),一般要求數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下。數(shù)據(jù)文件恢復(fù)將恢復(fù)單個(gè)數(shù)據(jù)文件,數(shù)據(jù)文件恢復(fù)不如表空間恢復(fù)那樣常用,一般要求數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下

22、 登錄到管理服務(wù)器,選擇數(shù)據(jù)庫(kù),選擇【工具】-【數(shù)據(jù)庫(kù)向?qū)А?【備份管理】-【恢復(fù)】,起用恢復(fù)向?qū)?。如果不能啟?dòng)OMS,應(yīng)查看【管理工具】-【服務(wù)】-【OracleOraHome90ManagementServer】是否啟動(dòng),如果沒(méi)有啟動(dòng),先啟動(dòng)該服務(wù)。 若要查看執(zhí)行情況,可以在OMS的節(jié)點(diǎn)“作業(yè)”中,選擇歷史記錄確認(rèn)備份和恢復(fù)情況。 9.7 數(shù)據(jù)庫(kù)恢復(fù) 恢復(fù)可以分為完全恢復(fù)和不完全恢復(fù) 完全數(shù)據(jù)庫(kù)恢復(fù)是恢復(fù)到故障發(fā)生前的狀態(tài),所有已經(jīng)提交的操作都進(jìn)行恢復(fù),確保數(shù)據(jù)庫(kù)不丟失任何數(shù)據(jù),完全恢復(fù)只用于歸檔模式。 不完全數(shù)據(jù)庫(kù)恢復(fù)是將數(shù)據(jù)庫(kù)恢復(fù)到備份點(diǎn)與介質(zhì)失敗點(diǎn)之間某個(gè)時(shí)刻的狀態(tài),并不是恢復(fù)所有提

23、交的操作,不完全恢復(fù)可能丟失部分?jǐn)?shù)據(jù)。 任何類型的恢復(fù)包括兩個(gè)階段:前滾階段和回滾(回退)階段。 前滾階段 在前滾恢復(fù)階段(roll-forward recovery),恢復(fù)管理器應(yīng)用必要的事務(wù)日志組“重做”(REDO)所有提交的不在數(shù)據(jù)庫(kù)數(shù)據(jù)文件中的事務(wù) 。 回滾階段 在前滾恢復(fù)后,Oracle必須執(zhí)行回滾恢復(fù)(roll-back recovery)。 由于一些未完成的事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改信息已經(jīng)提交到數(shù)據(jù)庫(kù),為保證數(shù)據(jù)庫(kù)的一致性,需要清除這些事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改,數(shù)據(jù)庫(kù)應(yīng)執(zhí)行回滾操作(UNDO),強(qiáng)制撤銷這些未完成事務(wù)。 前滾和回滾的執(zhí)行除了管理員或應(yīng)用程序調(diào)用外,執(zhí)行前滾操縱還是回滾操作與檢

24、查點(diǎn)的出現(xiàn)相關(guān) 12345檢查點(diǎn)檢查點(diǎn)系統(tǒng)故障系統(tǒng)故障上一檢查點(diǎn)上一檢查點(diǎn)無(wú)無(wú)前滾前滾回滾回滾前滾前滾回滾回滾故障時(shí)需要的動(dòng)作故障時(shí)需要的動(dòng)作 數(shù)據(jù)庫(kù)備份 日志 回退段 控制文件9.7.1 恢復(fù)數(shù)據(jù)庫(kù)所使用的結(jié)構(gòu) 當(dāng)數(shù)據(jù)庫(kù)實(shí)例意外地(如掉電、后臺(tái)進(jìn)程故障等)或預(yù)料地(發(fā)出shutdown abort語(yǔ)句)終止時(shí)出現(xiàn)實(shí)例故障,此時(shí)需要實(shí)例恢復(fù)。 實(shí)例恢復(fù)將數(shù)據(jù)庫(kù)恢復(fù)到故障前的事務(wù)一致?tīng)顟B(tài)。 如果聯(lián)機(jī)備份時(shí)出現(xiàn)實(shí)例故障,則需要介質(zhì)恢復(fù)。 在其它情況下,Oracle在下次數(shù)據(jù)庫(kù)起動(dòng)時(shí)(對(duì)新實(shí)例裝配和打開(kāi)),自動(dòng)地執(zhí)行實(shí)例恢復(fù)。9.7.2 實(shí)例故障的一致性恢復(fù)恢復(fù)步驟處理(1)為恢復(fù)數(shù)據(jù)文件中沒(méi)有記錄

25、的數(shù)據(jù),進(jìn)行前滾。數(shù)據(jù)記錄在聯(lián)機(jī)日志中,包括對(duì)回滾段的內(nèi)容恢復(fù)。(2)回滾未提交的事務(wù)。(3)釋放在故障時(shí)正在處理事務(wù)所持有的資源。(4)解決在故障時(shí)執(zhí)行的任何懸而未決的分布事務(wù)。 電源失效和軟件問(wèn)題是引起一臺(tái)Oracle數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)意外崩潰的常見(jiàn)原因。 當(dāng)系統(tǒng)崩潰時(shí),數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有完全關(guān)閉。 在系統(tǒng)崩潰期間,Oracle沒(méi)有時(shí)間執(zhí)行數(shù)據(jù)庫(kù)檢查點(diǎn)以確保緩存中被修改的數(shù)據(jù)塊安全地寫(xiě)回到數(shù)據(jù)文件中。 系統(tǒng)崩潰不會(huì)永久損壞任何一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件。 9.7.3 崩潰恢復(fù) 介質(zhì)故障是當(dāng)一個(gè)文件、一個(gè)文件的部分、磁盤(pán)不能讀或不能寫(xiě)時(shí)出現(xiàn)的故障,介質(zhì)故障后,必須執(zhí)行一個(gè)介質(zhì)恢復(fù)操作。在一個(gè)典型的介質(zhì)

26、恢復(fù)期間,必須完成以下幾步操作: (1)修理所有的硬件問(wèn)題 (2)重建丟失的數(shù)據(jù)文件 (3)使用必要的事務(wù)日志組,完成恢復(fù)操作 (4)執(zhí)行一個(gè)適當(dāng)?shù)慕橘|(zhì)恢復(fù)9.7.4 介質(zhì)恢復(fù) 完全恢復(fù)是一種恢復(fù)所有提交事務(wù)的操作,恢復(fù)全部丟失的修改。 完全恢復(fù)包括數(shù)據(jù)庫(kù)恢復(fù)、表空間恢復(fù)和數(shù)據(jù)文件恢復(fù)。9.7.5 完全恢復(fù) 數(shù)據(jù)庫(kù)恢復(fù) 數(shù)據(jù)庫(kù)恢復(fù)是恢復(fù)數(shù)據(jù)庫(kù)中所有丟失工作的最簡(jiǎn)單的方法,用于恢復(fù)數(shù)據(jù)庫(kù)的全部數(shù)據(jù)文件,恢復(fù)管理器識(shí)別受損的數(shù)據(jù)文件并且使用恢復(fù)目錄、可用的數(shù)據(jù)文件備份集和事務(wù)日志來(lái)執(zhí)行自動(dòng)恢復(fù)。執(zhí)行數(shù)據(jù)庫(kù)恢復(fù),應(yīng)當(dāng)關(guān)閉數(shù)據(jù)庫(kù),使其不可使用。 表空間恢復(fù) 當(dāng)一個(gè)數(shù)據(jù)庫(kù)的部分被損壞,并且需要高可用性時(shí)

27、,可以考慮使用表空間恢復(fù)。對(duì)特定表空間的全部數(shù)據(jù)文件中丟失的工作進(jìn)行恢復(fù)。但是,如果系統(tǒng)表空間損壞了,不能執(zhí)行系統(tǒng)表空間的恢復(fù)工作。 數(shù)據(jù)文件恢復(fù) 當(dāng)一個(gè)單獨(dú)的數(shù)據(jù)文件損壞,可以考慮數(shù)據(jù)文件恢復(fù),可用于一個(gè)特定數(shù)據(jù)文件中丟失的工作。在數(shù)據(jù)庫(kù)打開(kāi),并且受損的數(shù)據(jù)文件所在的表空間脫機(jī)后,利用恢復(fù)管理器來(lái)執(zhí)行數(shù)據(jù)文件的恢復(fù)。 在一些情況下,可以執(zhí)行不完全恢復(fù),使用事務(wù)日志的重做項(xiàng)恢復(fù)提交事務(wù)的一部分工作,重構(gòu)受損的數(shù)據(jù)庫(kù),使其恢復(fù)介質(zhì)故障前或用戶出錯(cuò)之前的一個(gè)事務(wù)一致性狀態(tài)。 Oracle和恢復(fù)管理器支持三種不同類型的不完全恢復(fù) 基于時(shí)間(TIME)的恢復(fù) 基于修改(SCN)的恢復(fù) 基于取消的恢復(fù)。 9.7.6

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論