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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18、器,選擇【開始】-【程序】-【OraHome90】-【Configuration and Migration Tools】-【Enterprise Manager Configuration Assistant】 ,進入OMS的配置步驟。 進入OMS后,為了保證備份向導的正確執(zhí)行,應做如下工作:(1)檢查SYS和SYSTEM用戶權限,SYSTEM用戶在獨立模式下具有SYSDBA權限和SYSOPER權限,在管理服務器模式下不具備SYSDBA權限,不能啟動和關閉數據庫,需要人工授予SYSOPER和SYSDBA權限,同時應給SYSTEM用戶添加角色EXP_FULL_DATABASE和角色 IMP_F

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

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

21、0053,右鍵選擇“查看作業(yè)”,可以顯示備份的詳細信息。 選擇狀態(tài)已完成,單擊“顯示輸出”按鈕,得到執(zhí)行備份的腳本代碼。 向導恢復可以選擇 數據庫恢復 表空間恢復 數據文件恢復三種 恢復向導判別目標數據庫的狀態(tài)(歸檔日志,無歸檔日志,已裝載沒有打開,裝載并打開)來禁止選項。 9.6.3 使用OMS恢復向導恢復整個數據庫時,將恢復屬于該數據庫的所有數據文件,要求數據庫只處于裝載狀態(tài),即NOMOUNT方式啟動。表空間恢復將恢復數據庫的一個子集合。對選定的表空間進行恢復,一般要求數據庫運行在歸檔模式下。數據文件恢復將恢復單個數據文件,數據文件恢復不如表空間恢復那樣常用,一般要求數據庫運行在歸檔模式下

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論