




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第11章數據庫備份與恢復1第11章數據庫備份與恢復1本章內容備份與恢復概述物理備份與恢復邏輯備份與恢復2本章內容備份與恢復概述2本章要求了解備份與恢復的重要性和概念掌握數據庫的冷備份方法掌握數據庫的熱備份方法掌握數據庫完全恢復方法掌握數據不完全恢復方法掌握邏輯備份和恢復方法3本章要求了解備份與恢復的重要性和概念311.1備份與恢復概述備份與恢復的基本概念Oracle數據庫故障類型及恢復措施備份的原則與策略恢復的原則與策略411.1備份與恢復概述備份與恢復的基本概念411.1.1備份與恢復的概念備份與恢復的作用備份的概念與類型恢復的概念、類型與恢復機制511.1.1備份與恢復的概念備份與恢復的作用5(1)備份與恢復的作用數據庫系統在運行中可能發生故障,輕則導致事務異常中斷,影響數據庫中數據的正確性,重則破壞數據庫,使數據庫中的數據部分或全部丟失。數據庫備份與恢復的目的就是為了保證在各種故障發生后,數據庫中的數據都能從錯誤狀態恢復到某種邏輯一致的狀態。6(1)備份與恢復的作用數據庫系統在運行中可能發生故障,輕則導(2)備份的概念與類型概念數據庫備份就是對數據庫中部分或全部數據進行復制,形成副本,存放到一個相對獨立的設備上,如磁盤、磁帶,以備將來數據庫出現故障時使用。根據數據備份方式的不同,數據庫備份分為:
物理備份:將組成數據庫的數據文件、重做日志文件、控制文件、初始化參數文件等操作系統文件進行復制,將形成的副本保存到與當前系統獨立的磁盤或磁帶上。邏輯備份是指利用Oracle提供的導出工具(如Expdp,Export)將數據庫中的數據抽取出來存放到一個二進制文件中。7(2)備份的概念與類型概念7根據數據庫備份時是否關閉數據庫服務器,物理備份分為:冷備份又稱停機備份,是指在關閉數據庫的情況下將所有的數據庫文件復制到另一個磁盤或磁帶上去。熱備份又稱聯機備份,是指在數據庫運行的情況下對數據庫進行的備份。要進行熱備份,數據庫必須運行在歸檔日志模式下。8根據數據庫備份時是否關閉數據庫服務器,物理備份分為:8根據數據庫備份的規模不同,物理備份可分為:完全備份:指對整個數據庫進行備份,包括所有的物理文件。部分備份:對部分數據文件、表空間、控制文件、歸檔重做日志文件等進行備份。根據數據庫是否運行在歸檔模式,物理備份可分為:歸檔備份非歸檔備份9根據數據庫備份的規模不同,物理備份可分為:9(3)恢復的概念、類型與恢復機制概念數據庫恢復是指在數據庫發生故障時,使用數據庫備份還原數據庫,使數據庫恢復到無故障狀態。根據數據庫恢復時使用的備份不同,恢復分為:所謂的物理恢復就是,利用物理備份來恢復數據庫,即利用物理備份文件恢復損毀文件,是在操作系統級別上進行的。邏輯恢復是指利用邏輯備份的二進制文件,使用Oracle提供的導入工具(如Impdp,Import)將部分或全部信息重新導入數據庫,恢復損毀或丟失的數據。根據數據庫恢復程度的不同,恢復可分為:完全恢復:利用備份使數據庫恢復到出現故障時的狀態。不完全恢復:利用備份使數據庫恢復到出現故障時刻之前的某個狀態。10(3)恢復的概念、類型與恢復機制概念10數據庫的恢復分3個步驟進行:首先使用一個完整備份將數據庫恢復到備份時刻的狀態;然后利用歸檔日志文件和聯機重做日志文件中的日志信息,采用前滾技術(RollForward)重做備份以后已經完成并提交的事物;最后利用回滾技術(RollBack)取消發生故障時已寫入日志文件但沒有提交的事物,將數據庫恢復到故障時刻的狀態。11數據庫的恢復分3個步驟進行:11在T1和T3時刻進行了兩次數據庫備份,在T5時刻數據庫出現故障。如果使用T1時刻的備份1恢復數據庫,則只能恢復到T1時刻的狀態,即不完全恢復;如果使用T3時刻的備份2恢復數據庫,則可以恢復到T3時刻到T5時刻的任意狀態(歸檔日志與聯機日志)。
12在T1和T3時刻進行了兩次數據庫備份,在T5時刻數據庫出現故11.1.2Oracle數據庫故障類型及
恢復措施語句故障進程故障用戶錯誤實例失敗網絡故障介質故障1311.1.2Oracle數據庫故障類型及
恢復措施語句故語句故障語句故障是指執行SQL語句時發生的故障。例如,對不存在的表執行SELECT操作、向已無空間可用的表中執行INSERT操作等都會發生語句故障,Oracle將返回給用戶一個錯誤信息。語句故障通常不需要DBA干預,Oracle會自動回滾產生錯誤的SQL語句操作。進程故障進程故障是指用戶進程、服務器進程或數據庫后臺進程由于某種原因而意外終止,此時該進程將無法使用,但不影響其他進程的運行。Oracle的后臺進程PMON能夠自動監測并恢復故障進程。如果該進程無法恢復,則需要DBA關閉并重新啟動數據庫實例。14語句故障14用戶錯誤用戶錯誤是指用戶在使用數據庫時產生的錯誤。例如,用戶意外刪除某個表或表中的數據。用戶錯誤無法由Oracle自動進行恢復,管理員可以使用邏輯備份來恢復。實例失敗實例失敗是指由于某種原因導致數據庫實例無法正常工作。例如,突然斷電導致數據庫服務器立即關閉、數據庫服務器硬件故障導致操作系統無法運行等。實例失敗時,需要進行實例重新啟動,在實例重新啟動的過程中,數據庫后臺進程SMON會自動對實例進行恢復。15用戶錯誤15網絡故障網絡故障是指由于通信軟件或硬件故障,導致應用程序或用戶與數據庫服務器之間的通信中斷。數據庫的后臺進程PMON將自動監測并處理意外中斷的用戶進程和服務器進程。介質故障介質故障是指由于各種原因引起的數據庫數據文件、控制文件或重做日志文件的損壞,導致系統無法正常運行。例如,磁盤損壞導致文件系統被破壞。介質故障是數據庫備份與恢復中主要關心的故障類型,需要管理員提前做好數據庫的備份,否則將導致數據庫無法恢復。16網絡故障1611.1.3備份原則與策略在剛建立數據庫時,應該立即進行數據庫的完全備份;將所有的數據庫備份保存在一個獨立磁盤上(必須是與當前數據庫系統正在使用的文件不同的磁盤);應該保持控制文件的多路復用,且控制文件的副本應該存放在不同磁盤控制器下的不同磁盤設備上;應該保持多個聯機日志文件組,每個組中至少應該保持兩個日志成員,同一日志組的多個成員應該分散存放在不同磁盤上;至少保證兩個歸檔重做日志文件的歸檔目標,不同歸檔目標應該分散于不同磁盤;如果條件允許,盡量保證數據庫運行于歸檔模式;根據數據庫數據變化的頻率情況確定數據庫備份規律;1711.1.3備份原則與策略在剛建立數據庫時,應該立即進行在歸檔模式下,當數據庫結構發生變化時,如創建或刪除表空間、添加數據文件、重做日志文件等,應該備份數據庫的控制文件;在非歸檔模式下,當數據庫結構發生變化時,應該進行數據庫的完全備份;在歸檔模式下,對于經常使用的表空間,可以采用表空間備份方法提高備份效率;在歸檔模式下,通常不需要對聯機重做日志文件進行備份;使用RESETLOGS方式打開數據庫后,應該進行一個數據庫的完全備份;對于重要的表中的數據,可以采用邏輯備份方式進行備份。18在歸檔模式下,當數據庫結構發生變化時,如創建或刪除表空間、添11.1.4恢復原則與策略根據數據庫介質故障原因,確定采用完全介質恢復還是不完全介質恢復;如果數據庫運行在非歸檔模式,則當介質故障發生時,只能進行數據庫的不完全恢復,將數據庫恢復到最近的備份時刻的狀態;如果數據庫運行在歸檔模式,則當一個或多個數據文件損壞時,可以使用備份的數據文件進行完全或不完全恢復數據庫;如果數據庫運行在歸檔模式,則當數據庫的控制文件損壞時,可以使用備份的控制文件實現數據庫的不完全恢復;如果數據庫運行在歸檔模式,則當數據庫的聯機日志文件損壞時,可以使用備份的數據文件和聯機重做日志文件不完全恢復數據庫;如果執行了不完全恢復,則當重新打開數據庫時應該使用RESETLOGS選項。1911.1.4恢復原則與策略根據數據庫介質故障原因,確定采11.2物理備份與恢復冷備份熱備份非歸檔模式下數據庫的恢復歸檔模式下數據庫的完全恢復歸檔模式下數據庫的不完全恢復利用OEM進行物理備份與恢復2011.2物理備份與恢復冷備份20212111.2.1冷備份概述關閉數據庫實例。用操作系統的實用工具備份所有的物理文件,包括數據文件、控制文件、聯機重做日志文件等。2211.2.1冷備份概述22關閉數據庫,開始備份故障時刻
備份恢復
重裝備份副本恢復丟失數據備份完成如果沒有啟用歸檔模式,數據庫不能恢復到備份完成后的任意時刻。如果啟用歸檔模式,從冷備份結束后到出現故障這段時間的數據庫恢復,可以利用聯機日志文件和歸檔日志文件實現。23關閉數據庫,故障時刻備份恢復重裝備份副本恢復丟失數據備冷備份步驟確定數據庫各種物理文件關閉數據庫備份所有相關的數據庫物理文件重新啟動數據庫24冷備份步驟24啟動SQL*Plus,以SYSDBA身份登錄數據庫查詢當前數據庫所有數據文件、控制文件、聯機重做日志文件的位置。SELECTfile_nameFROMdba_data_files;SELECTmemberFROMv$logfile;SELECTvalueFROMv$parameterWHEREname='control_files';關閉數據庫SHUTDOWNIMMEDIATE復制所有數據文件、聯機重做日志文件以及控制文件到備份磁盤。重新啟動數據庫STARTUP25啟動SQL*Plus,以SYSDBA身份登錄數據庫2511.2.2熱備份數據庫完全熱備份的步驟:啟動SQL*Plus,以SYSDBA身份登錄數據庫將數據庫設置為歸檔模式以表空間為單位,進行數據文件備份備份控制文件備份其他物理文件2611.2.2熱備份數據庫完全熱備份的步驟:26備份數據文件查看當前數據庫有哪些表空間,以及每個表空間中有哪些數據文件。SELECTtablespace_name,file_nameFROMdba_data_filesORDERBYtablespace_name;分別對每個表空間中的數據文件進行備份,其方法為將需要備份的表空間(如USERS)設置為備份狀態。ALTERTABLESPACEUSERSBEGINBACKUP;將表空間中所有的數據文件復制到備份磁盤。結束表空間的備份狀態。ALTERTABLESPACEUSERSENDBACKUP;對數據庫中所有表空間分別采用該步驟進行備份。27備份數據文件27備份控制文件當執行了下列操作時應該進行控制文件備份ALTERDATABASEADDLOGFILEALERTDATABASEADDLOGFILEMEMBERALTERDATABASERENAMEFILEALTERDATABASEDROPLOGFILEGROUPALTERDATABASEDROPLOGFILEMEMBERCREATETABLESPACEALTERTABLESPACEADDDATAFILEALTERTABLESPACERENAMEDATAFILEDROPTABLESPACE28備份控制文件28控制文件備份方法將控制文件備份為二進制文件。ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\BACKUP\CONTROL.BKP';
將控制文件備份為文本文件。ALTERDATABASEBACKUPCONTROLFILETOTRACE;
29控制文件備份方法29其他文件的備份歸檔當前的聯機重做日志文件。ALTERSYSTEMARCHIVELOGCURRENT;備份歸檔重做日志文件,將所有的歸檔重做日志文件復制到備份磁盤中。備份初始化參數文件,將初始化參數文件復制到備份磁盤中。30其他文件的備份3011.2.3非歸檔模式下數據庫的恢復非歸檔模式下數據庫的恢復主要指利用非歸檔模式下的冷備份恢復數據庫。步驟為:關閉數據庫。SHUTDOWNIMMEDIATE將備份的所有數據文件、控制文件、聯機重做日志文件還原到原來所在的位置。重新啟動數據庫。STARTUP注意非歸檔模式下的數據庫恢復是不完全恢復,只能將數據庫恢復到最近一次完全冷備份的狀態。
3111.2.3非歸檔模式下數據庫的恢復非歸檔模式下數據庫的11.2.4歸檔模式下數據庫的完全恢復概述數據庫級完全恢復表空間級完全恢復數據文件級完全恢復數據庫完全恢復示例3211.2.4歸檔模式下數據庫的完全恢復概述32(1)概述概念歸檔模式下數據庫的完全恢復是指歸檔模式下一個或多個數據文件損壞,利用熱備份的數據文件替換損壞的數據文件,再結合歸檔日志文件和聯機重做日志文件,采用前滾技術重做自備份以來的所有改動,采用回滾技術回滾未提交的操作,以恢復到數據庫故障時刻的狀態。33(1)概述概念33
恢復的級別數據庫級完全恢復:主要應用于所有或多數數據文件損壞的恢復;表空間級完全恢復:對指定表空間中的數據文件進行恢復;數據文件級完全恢復:是針對特定的數據文件進行恢復。
注意數據庫級的完全恢復只能在數據庫裝載但沒有打開的狀態下進行,而表空間級完全恢復和數據文件級完全恢復可以在數據庫處于裝載狀態或打開的狀態下進行。
34恢復的級別34歸檔模式下數據庫完全恢復的基本語法:RECOVER[AUTOMATIC][FROM'location'][DATABASE|TABLESPACEtspname|DATAFILEdfname]參數說明
AUTOMATIC:進行自動恢復,不需要DBA提供重做日志文件名稱;location:制定歸檔重做日志文件的位置。默認為數據庫默認的歸檔路徑。35歸檔模式下數據庫完全恢復的基本語法:35(2)數據庫級完全恢復
數據庫級完全恢復的步驟:如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件還原所有損壞的數據文件。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行數據庫恢復命令。RECOVERDATABASE打開數據庫。ALTERDATABASEOPEN;
36(2)數據庫級完全恢復數據庫級完全恢復的步驟:36(3)表空間級完全恢復
以EXAMPLE表空間的數據文件example01.dbf損壞為例模擬表空級的完全恢復。數據庫處于裝載狀態下的恢復數據庫處于打開狀態下的恢復
37(3)表空間級完全恢復以EXAMPLE表空間的數據文件e數據庫處于裝載狀態下的恢復如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行表空間恢復命令。RECOVERTABLESPACEEXAMPLE打開數據庫。ALTERDATABASEOPEN;38數據庫處于裝載狀態下的恢復38數據庫處于打開狀態下的恢復①如果數據庫已經關閉,則將數據庫啟動到MOUNT狀態。STARTUPMOUNT②將損壞的數據文件設置為脫機狀態。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;③打開數據庫。
ALTERDATABASEOPEN;④將損壞的數據文件所在的表空間脫機。ALTERTABLESPACEEXAMPLEOFFLINEFORRECOVER;39數據庫處于打開狀態下的恢復39⑤利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。⑥執行表空間恢復命令。RECOVERTABLESPACEEXAMPLE;⑦將表空間聯機。ALTERTABLESPACEEXAMPLEONLINE;如果數據文件損壞時數據庫正處于打開狀態,則可以直接執行步驟(4)~(7)。40⑤利用備份的數據文件example01.dbf還原損壞的數(4)數據文件級完全恢復
以數據文件D:\oracle\product\10.2.0\oradata\orcl\example01.dbf損壞為例模擬數據文件級的完全恢復。數據庫處于裝載狀態下的恢復數據庫處于打開狀態下的恢復41(4)數據文件級完全恢復以數據文件D:\oracle\pr數據庫處于裝載狀態下的恢復如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行數據文件恢復命令。RECOVERDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';將數據文件聯機。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE打開數據庫。ALTERDATABASEOPEN;42數據庫處于裝載狀態下的恢復42數據庫處于打開狀態下的恢復如果數據庫已經關閉,則將數據庫啟動到MOUNT狀態。STARTUPMOUNT將損壞的數據文件設置為脫機狀態。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;打開數據庫。
ALTERDATABASEOPEN;利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。43數據庫處于打開狀態下的恢復43執行數據文件恢復命令。RECOVERDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF';將數據文件聯機。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE;如果數據文件損壞時數據庫正處于打開狀態,則可以直接執行步驟(2)、(4)~(6)。44執行數據文件恢復命令。44(5)數據庫完全恢復示例
以SYSTEM表空間的數據文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf損壞為例演示歸檔模式下的完全恢復操作。
首先進行一次歸檔模式下的數據庫完整備份。以SYSDBA身份登錄數據庫進行下列操作。CREATETABLEtest_rec(IDNUMBERPRIMARYKEY,NAMECHAR(20))TABLESPACESYSTEM;INSERTINTOtest_recVALUES(1,'ZHANGSAN');COMMIT;INSERTINTOtest_recVALUES(2,'LISI');COMMIT;ALTERSYSTEMSWITCHLOGFILE;SELECT*FROMtest_rec;SHUTDOWNABORT;45(5)數據庫完全恢復示例以SYSTEM表空間的數據文件D:刪除SYSTEM表空間的數據文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf,以模擬數據文件損壞的情形。用備份的數據文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf還原損壞(本文為被刪除)的數據文件。執行恢復操作。由于SYSTEM表空間不能在數據庫打開后進行恢復,因此只能在數據庫處于裝載狀態時進行恢復。STARTUPMOUNTRECOVERDATABASE;ALTERDATABASEOPEN;SELECT*FROMtest_rec;46刪除SYSTEM表空間的數據文件D:\oracle\prod11.2.5歸檔模式下數據庫的不完全恢復數據庫不完全恢復概述數據文件損壞的數據庫不完全恢復的步驟數據庫不完全恢復的示例控制文件損壞的數據庫不完全恢復4711.2.5歸檔模式下數據庫的不完全恢復數據庫不完全恢復(1)數據庫不完全恢復概述概念在歸檔模式下,數據庫的不完全恢復主要是指歸檔模式下數據文件損壞后,沒有將數據庫恢復到故障時刻的狀態。在進行數據庫不完全恢復之前,首先確保對數據庫進行了完全備份;在進行數據文件損壞的不完全恢復時必須先使用完整的數據文件備份將數據庫恢復到備份時刻的狀態。在不完全恢復后,需要使用RESETLOGS選項打開數據庫,原來的重做日志文件被清空,新的重做日志文件序列號重新從1開始,因此原來的歸檔日志文件都不再起作用了,應該移走或刪除;打開數據庫后,應該及時備份數據庫,因為原來的備份都已經無效了。48(1)數據庫不完全恢復概述概念48不完全恢復類型:基于時間的不完全恢復:將數據庫恢復到備份與故障時刻之間的某個特定時刻。基于撤銷的不完全恢復:數據庫的恢復隨用戶輸入CANCEL命令而中止。基于SCN的不完全恢復:將數據庫恢復到指定的SCN值時的狀態。49不完全恢復類型:49不完全恢復的語法為RECOVER[AUTOMATIC][FROM'location'][DATABASE][UNTILTIMEtime|CANCEL|CHANGEscn][USINGBACKUPCONTROLFILE]50不完全恢復的語法為50(2)數據文件損壞的數據庫不完全恢復的步驟如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT用備份的所有數據文件還原當前數據庫的所有數據文件,即將數據庫的所有數據文件恢復到備份時刻的狀態。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行數據文件的不完全恢復命令。RECOVERDATABASEUNTILTIMEtime;(基于時間恢復)RECOVERDATABASEUNTILCANCEL;(基于撤銷恢復)RECOVERDATABASEUNTILCHANGEscn;(基于SCN恢復)可以通過查詢數據字典視圖V$LOG_HISTORY獲得時間和SCN的信息。不完全恢復完成后,使用RESETLOGS選項啟動數據庫。ALTERDATABASEOPENRESETLOGS;51(2)數據文件損壞的數據庫不完全恢復的步驟如果數據庫沒有關閉(3)數據庫不完全恢復的示例52(3)數據庫不完全恢復的示例52(4)控制文件損壞的數據庫不完全恢復如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT用備份的所有數據文件和控制文件還原當前數據庫的所有數據文件、控制文件,即將數據庫的所有數據文件、控制文件恢復到備份時刻的狀態。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行不完全恢復命令。RECOVERDATABASEUNTILTIMEtimeUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCANCELUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCHANGEscnUSINGBACKUPCONTROLFILE;不完全恢復完成后,使用RESETLOGS選項啟動數據庫。ALTERDATABASEOPENRESETLOGS;53(4)控制文件損壞的數據庫不完全恢復如果數據庫沒有關閉,則強11.2.6利用OEM進行物理備份與恢復備份與恢復設置備份數據庫恢復數據庫5411.2.6利用OEM進行物理備份與恢復備份與恢復設置(1)備份與恢復設置
55(1)備份與恢復設置5556565757(2)備份數據庫58(2)備份數據庫585959606061616262(3)恢復數據庫63(3)恢復數據庫6364646565666611.3邏輯備份與恢復邏輯備份與恢復概述使用Expdp導出數據使用Impdp導入數據使用OEM導出、導入數據6711.3邏輯備份與恢復邏輯備份與恢復概述6711.3.1邏輯備份與恢復概述邏輯備份與恢復的特點數據泵技術6811.3.1邏輯備份與恢復概述邏輯備份與恢復的特點68(1)邏輯備份與恢復的特點概述邏輯備份是指利用Oracle提供的導出工具,將數據庫中選定的記錄集或數據字典的邏輯副本以二進制文件的形式存儲到操作系統中。邏輯備份的二進制文件稱為轉儲文件,以dmp格式存儲。邏輯恢復是指利用Oracle提供的導入工具將邏輯備份形成的轉儲文件導入數據庫內部,進行數據庫的邏輯恢復。與物理備份與恢復不同,邏輯備份與恢復必須在數據庫運行的狀態下進行,因此當數據庫發生介質損壞而無法啟動時,不能利用邏輯備份恢復數據庫。因此,數據庫備份與恢復是以物理備份與恢復為主,邏輯備份與恢復為輔的。69(1)邏輯備份與恢復的特點概述69邏輯備份與恢復有以下特點及用途:可以在不同版本的數據庫間進行數據移植,可以從Oracle數據庫的低版本移植到高版本;可以在不同操作系統上運行的數據庫間進行數據移植,例如可以從WindowsNT系統遷移到Unix系統等;可以在數據庫模式之間傳遞數據,即先將一個模式中的對象進行備份,然后再將該備份導入到數據庫其他模式中;數據的導出與導入與數據庫物理結構沒有關系,是以對象為單位進行的,這些對象在物理上可能存儲于不同的文件中;對數據庫進行一次邏輯備份與恢復操作能重新組織數據,消除數據庫中的鏈接及磁盤碎片,從而使數據庫的性能有較大的提高;除了進行數據的備份與恢復外,還可以進行數據庫對象定義、約束、權限等的備份與恢復。70邏輯備份與恢復有以下特點及用途:70(2)數據泵技術概述在Oracle9i及其之前的數據庫版本中提供了Export和Import實用程序用于邏輯備份與恢復。在Oracle10g數據庫中又推出了數據泵技術,即DataPumpExport(Expdp)和DataPumpImport(Impdp)實用程序用于邏輯備份與恢復。需要注意,這兩類邏輯備份與恢復實用程序之間不兼容。使用Export備份的轉儲文件,不能使用Impdp進行導入;同樣,使用Expdp備份的轉儲文件,也不能使用Import工具進行導入。71(2)數據泵技術概述71兩類邏輯備份與恢復實用程序比較Export和Import是客戶端實用程序,可以在服務器端使用,也可以在客戶端使用;Expdp和Impdp是服務器端實用程序,只能在數據庫服務器端使用。利用Expdp,Impdp在服務器端多線程并行地執行大量數據的導出與導入操作。數據泵技術具有重新啟動作業的能力,即當發生數據泵作業故障時,DBA或用戶進行干預修正后,可以發出數據泵重新啟動命令,使作業從發生故障的位置繼續進行。72兩類邏輯備份與恢復實用程序比較72使用數據泵技術準備工作在使用Expdp,Impdp程序之前需要創建DIRECTORY對象,并將該對象的READ,WRITE權限授予用戶。例如:CREATEORREPLACEDIRECTORYdumpdirAS'D:\ORACLE\BACKUP';
GRANTREAD,WRITEONDIRECTORYdumpdirTOSCOTT;如果用戶要導出或導入非同名模式的對象,還需要具有EXP_FULL_DATABASE和IMP_FULL_DATABASE權限。例如:GRANTEXP_FULL_DATABASE,IMP_FULL_DATABASETOSCOTT;
73使用數據泵技術準備工作7311.3.2使用Expdp導出數據Expdp調用接口Expdp導出模式Expdp幫助及參數Expdp應用實例7411.3.2使用Expdp導出數據Expdp調用接口7(1)Expdp調用接口
命令行接口(Command-LineInterface):在命令行中直接指定參數設置。參數文件接口(ParameterFileInterface):將需要的參數設置放到一個文件中,在命令行中用PARFILE參數指定參數文件。交互式命令接口(Interactive-CommandInterface):用戶可以通過交互命令進行導出操作管理。75(1)Expdp調用接口命令行接口(Command-Lin(2)Expdp導出模式
全庫導出模式(FullExportMode):通過參數FULL指定,導出整個數據庫。模式導出模式(SchemaMode):通過參數SCHEMAS指定,是默認的導出模式,導出指定模式中的所有對象。表導出模式(TableMode):通過參數TABLES指定,導出指定模式中指定的所有表、分區及其依賴對象。表空間導出模式(TablespaceMode):通過參數TABLESPACES指定,導出指定表空間中所有表及其依賴對象的定義和數據。傳輸表空間導出模式(TransportableTablespace):通過參數TRANSPORT_TABLESPACES指定,導出指定表空間中所有表及其依賴對象的定義。通過該導出模式以及相應導入模式,可以實現將一個數據庫表空間的數據文件復制到另一個數據庫中。76(2)Expdp導出模式全庫導出模式(FullExpor(3)Expdp幫助及參數
獲取Expdp幫助信息C:\>expdpHELP=YExpdp參數77(3)Expdp幫助及參數獲取Expdp幫助信息77(4)Expdp應用實例
命令行方式導出:表導出模式導出scott模式下的emp表和dept表,轉儲文件名稱為emp_dept.dmp,日志文件命名為emp_dept.log,作業命名為emp_dept_job,導出操作啟動3個進程。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptLOGFILE=emp_dept.logJOB_NAME=emp_dept_jobPARALLEL=3命令行方式導出:模式導出模式。導出scott模式下的所有對象及其數據。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logSCHEMAS=scottJOB_NAME=exp_scott_schema78(4)Expdp應用實例命令行方式導出:表導出模式78命令行方式導出:表空間導出模式。導出EXAMPLE,USERS表空間中的所有對象及其數據。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users命令行方式導出:傳輸表空間導出模式導出EXAMPLE,USERS表空間中數據對象的定義信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tts.dmpTRANSPORT_TABLESPACES=example,usersTRANSPORT_FULL_CHECK=YLOGFILE=tts.log注意:當前用戶不能使用傳輸表空間導出模式導出自己的默認表空間。79命令行方式導出:表空間導出模式。79命令行方式導出:數據庫導出模式將當前數據全部導出,不寫日志文件。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式導出:按條件查詢導出導出scott.emp表中部門號大于10,且工資大于2000的員工信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=exp2.dmpTABLES=empQUERY='emp:"WHEREdeptno=10ANDsal>2000"'NOLOGFILE=Y80命令行方式導出:數據庫導出模式80參數文件方式導出首先創建一個名為scott.txt的參數文件,并存放到d:\backup目錄下,其內容為:SCHEMAS=scottDUMPFILE=filter.dmpDIRECTORY=dumpdirLOGFILE=filter.logINCLUDE=TABLE:"IN('EMP','DEPT')"INCLUDE=INDEX:"LIKE'EMP%'"INCLUDE=PROCEDURE然后在命令行中執行下列命令。C:\>expdpscott/tigerPARFILE=d:\scott.txt
81參數文件方式導出81交互命令方式導出在當前運行作業的終端中按Ctrl+C組合鍵,進入交互式命令狀態;在另一個非運行導出作業的終端中,通過導出作業名稱來進行導出作業的管理。82交互命令方式導出82示例執行一個作業。C:\>expdpscott/tigerFULL=YDIRECTORY=dumpdirDUMPFILE=fulldb1.dmp,fulldb2.dmpFILESIZE=2GPARALLEL=3LOGFILE=expfull.logJOB_NAME=expfull作業開始執行后,按Ctrl+C組合鍵。在交互模式中輸入導出作業的管理命令,根據提示進行操作。
Export>STOP_JOB=IMMEDIATEAreyousureyouwishtostopthisjob([Y]/N):Y83示例8311.3.3使用Impdp導入數據Impdp調用接口Impdp導入模式Impdp幫助及參數Impdp應用實例8411.3.3使用Impdp導入數據Impdp調用接口84(1)Impdp調用接口
命令行接口(Command-LineInterface)參數文件接口(ParameterFileInterface)交互式命令接口(Interactive-CommandInterface)85(1)Impdp調用接口命令行接口(Command-Lin(2)Impdp導入模式全庫導入模式(FullImportMode)模式導入模式(SchemaMode)表導入模式(TableMode)表空間導入模式(TablespaceMode)傳輸表空間導入模式(TransportableTablespace)86(2)Impdp導入模式全庫導入模式(FullImport(3)Impdp幫助及參數
在操作系統的命令提示符窗口中輸入impdpHELP=Y命令,可以查看Impdp程序的使用、關鍵字(參數)、交互命令等介紹。87(3)Impdp幫助及參數在操作系統的命令提示符窗口中(4)Impdp應用實例
命令行方式導入:表導入模式使用邏輯備份文件emp_dept.dmp恢復scott模式下的emp表和dept表中數據。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=YCONTENT=DATA_ONLY如果表結構也不存在了,則應該導入表的定義以及數據。
C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=Y88(4)Impdp應用實例命令行方式導入:表導入模式8命令行方式導入:模式導入模式使用備份文件scott.dmp恢復scott模式。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpSCHEMAS=scottJOB_NAME=imp_scott_schema如果要將一個備份模式的所有對象導入另一個模式中,可以使用REMAP_SCHEMAN參數設置。例如,將備份的scott模式對象導入oe模式中。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logREMAP_SCHEMA=scott:oeJOB_NAME=imp_oe_schema89命令行方式導入:模式導入模式89命令行方式導入:表空間導入模式利用EXAMPLE,USERS表空間的邏輯備份tsp.dmp恢復USERS,EXAMPLE表空間。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users如果要將備份的表空間導入另一個表空間中,可以使用REMAP_TABLESPACE參數設置。例如,將USERS表空間的邏輯備份導入IMP_TBS表空間,命令為C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpREMAP_TABLESPACE=users:imptbs90命令行方式導入:表空間導入模式90命令行方式導入:傳輸表空間導入模式。將表空間USERS導入數據庫鏈接source_dblink所對應的遠程數據庫中。C:\>impdpscott/tigerDIRECTORY=dumpdirNETWORK_LINK=source_dblinkTRANSPORT_TABLESPACES=usersTRANSPORT_FULL_CHECK=NTRANSPORT_DATAFILES='D:\ORACLE\USERS01.DBF'
91命令行方式導入:傳輸表空間導入模式。91命令行方式導入:數據庫導入模式利用完整數據庫的邏輯備份恢復數據庫。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式導入:按條件查詢導入C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptQUERY='emp:"WHEREdeptno=20ANDsal>2000"'NOLOGFILE=Y92命令行方式導入:數據庫導入模式92命令行方式導入:追加導入如果表中已經存在數據,可以利用備份向表中追加數據。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=empTABLE_EXISTS_ACTION=APPEND93命令行方式導入:追加導入93參數文件方式導入首先創建一個名為empdept.txt的參數文件,并存放到d:\backup目錄下,其內容為TABLES=emp,deptDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpPARALLEL=3然后在命令行中執行下列命令就可以實現數據的導入操作。C:\>impdpscott/tigerPARFILE=d:\empdetp.txt94參數文件方式導入94交互命令方式導入與Expdp交互執行方式類似,在Impdp命令執行作業導入的過程中,可以使用Impdp的交互命令對當前運行的導入作業進行控制管理。95交互命令方式導入9511.3.4使用OEM導出、導入數據創建目錄對象數據導出數據導入9611.3.4使用OEM導出、導入數據創建目錄對象96(1)創建目錄對象
97(1)創建目錄對象9798989999100100(2)數據導出
101(2)數據導出101102102103103104104105105106106107107108108(3)數據導入109(3)數據導入109110110111111112112113113114114總結備份與恢復的重要性和概念備份與恢復的類型數據庫的冷備份數據庫的熱備份數據庫完全恢復數據不完全恢復邏輯備份和恢復115總結備份與恢復的重要性和概念115第11章數據庫備份與恢復116第11章數據庫備份與恢復1本章內容備份與恢復概述物理備份與恢復邏輯備份與恢復117本章內容備份與恢復概述2本章要求了解備份與恢復的重要性和概念掌握數據庫的冷備份方法掌握數據庫的熱備份方法掌握數據庫完全恢復方法掌握數據不完全恢復方法掌握邏輯備份和恢復方法118本章要求了解備份與恢復的重要性和概念311.1備份與恢復概述備份與恢復的基本概念Oracle數據庫故障類型及恢復措施備份的原則與策略恢復的原則與策略11911.1備份與恢復概述備份與恢復的基本概念411.1.1備份與恢復的概念備份與恢復的作用備份的概念與類型恢復的概念、類型與恢復機制12011.1.1備份與恢復的概念備份與恢復的作用5(1)備份與恢復的作用數據庫系統在運行中可能發生故障,輕則導致事務異常中斷,影響數據庫中數據的正確性,重則破壞數據庫,使數據庫中的數據部分或全部丟失。數據庫備份與恢復的目的就是為了保證在各種故障發生后,數據庫中的數據都能從錯誤狀態恢復到某種邏輯一致的狀態。121(1)備份與恢復的作用數據庫系統在運行中可能發生故障,輕則導(2)備份的概念與類型概念數據庫備份就是對數據庫中部分或全部數據進行復制,形成副本,存放到一個相對獨立的設備上,如磁盤、磁帶,以備將來數據庫出現故障時使用。根據數據備份方式的不同,數據庫備份分為:
物理備份:將組成數據庫的數據文件、重做日志文件、控制文件、初始化參數文件等操作系統文件進行復制,將形成的副本保存到與當前系統獨立的磁盤或磁帶上。邏輯備份是指利用Oracle提供的導出工具(如Expdp,Export)將數據庫中的數據抽取出來存放到一個二進制文件中。122(2)備份的概念與類型概念7根據數據庫備份時是否關閉數據庫服務器,物理備份分為:冷備份又稱停機備份,是指在關閉數據庫的情況下將所有的數據庫文件復制到另一個磁盤或磁帶上去。熱備份又稱聯機備份,是指在數據庫運行的情況下對數據庫進行的備份。要進行熱備份,數據庫必須運行在歸檔日志模式下。123根據數據庫備份時是否關閉數據庫服務器,物理備份分為:8根據數據庫備份的規模不同,物理備份可分為:完全備份:指對整個數據庫進行備份,包括所有的物理文件。部分備份:對部分數據文件、表空間、控制文件、歸檔重做日志文件等進行備份。根據數據庫是否運行在歸檔模式,物理備份可分為:歸檔備份非歸檔備份124根據數據庫備份的規模不同,物理備份可分為:9(3)恢復的概念、類型與恢復機制概念數據庫恢復是指在數據庫發生故障時,使用數據庫備份還原數據庫,使數據庫恢復到無故障狀態。根據數據庫恢復時使用的備份不同,恢復分為:所謂的物理恢復就是,利用物理備份來恢復數據庫,即利用物理備份文件恢復損毀文件,是在操作系統級別上進行的。邏輯恢復是指利用邏輯備份的二進制文件,使用Oracle提供的導入工具(如Impdp,Import)將部分或全部信息重新導入數據庫,恢復損毀或丟失的數據。根據數據庫恢復程度的不同,恢復可分為:完全恢復:利用備份使數據庫恢復到出現故障時的狀態。不完全恢復:利用備份使數據庫恢復到出現故障時刻之前的某個狀態。125(3)恢復的概念、類型與恢復機制概念10數據庫的恢復分3個步驟進行:首先使用一個完整備份將數據庫恢復到備份時刻的狀態;然后利用歸檔日志文件和聯機重做日志文件中的日志信息,采用前滾技術(RollForward)重做備份以后已經完成并提交的事物;最后利用回滾技術(RollBack)取消發生故障時已寫入日志文件但沒有提交的事物,將數據庫恢復到故障時刻的狀態。126數據庫的恢復分3個步驟進行:11在T1和T3時刻進行了兩次數據庫備份,在T5時刻數據庫出現故障。如果使用T1時刻的備份1恢復數據庫,則只能恢復到T1時刻的狀態,即不完全恢復;如果使用T3時刻的備份2恢復數據庫,則可以恢復到T3時刻到T5時刻的任意狀態(歸檔日志與聯機日志)。
127在T1和T3時刻進行了兩次數據庫備份,在T5時刻數據庫出現故11.1.2Oracle數據庫故障類型及
恢復措施語句故障進程故障用戶錯誤實例失敗網絡故障介質故障12811.1.2Oracle數據庫故障類型及
恢復措施語句故語句故障語句故障是指執行SQL語句時發生的故障。例如,對不存在的表執行SELECT操作、向已無空間可用的表中執行INSERT操作等都會發生語句故障,Oracle將返回給用戶一個錯誤信息。語句故障通常不需要DBA干預,Oracle會自動回滾產生錯誤的SQL語句操作。進程故障進程故障是指用戶進程、服務器進程或數據庫后臺進程由于某種原因而意外終止,此時該進程將無法使用,但不影響其他進程的運行。Oracle的后臺進程PMON能夠自動監測并恢復故障進程。如果該進程無法恢復,則需要DBA關閉并重新啟動數據庫實例。129語句故障14用戶錯誤用戶錯誤是指用戶在使用數據庫時產生的錯誤。例如,用戶意外刪除某個表或表中的數據。用戶錯誤無法由Oracle自動進行恢復,管理員可以使用邏輯備份來恢復。實例失敗實例失敗是指由于某種原因導致數據庫實例無法正常工作。例如,突然斷電導致數據庫服務器立即關閉、數據庫服務器硬件故障導致操作系統無法運行等。實例失敗時,需要進行實例重新啟動,在實例重新啟動的過程中,數據庫后臺進程SMON會自動對實例進行恢復。130用戶錯誤15網絡故障網絡故障是指由于通信軟件或硬件故障,導致應用程序或用戶與數據庫服務器之間的通信中斷。數據庫的后臺進程PMON將自動監測并處理意外中斷的用戶進程和服務器進程。介質故障介質故障是指由于各種原因引起的數據庫數據文件、控制文件或重做日志文件的損壞,導致系統無法正常運行。例如,磁盤損壞導致文件系統被破壞。介質故障是數據庫備份與恢復中主要關心的故障類型,需要管理員提前做好數據庫的備份,否則將導致數據庫無法恢復。131網絡故障1611.1.3備份原則與策略在剛建立數據庫時,應該立即進行數據庫的完全備份;將所有的數據庫備份保存在一個獨立磁盤上(必須是與當前數據庫系統正在使用的文件不同的磁盤);應該保持控制文件的多路復用,且控制文件的副本應該存放在不同磁盤控制器下的不同磁盤設備上;應該保持多個聯機日志文件組,每個組中至少應該保持兩個日志成員,同一日志組的多個成員應該分散存放在不同磁盤上;至少保證兩個歸檔重做日志文件的歸檔目標,不同歸檔目標應該分散于不同磁盤;如果條件允許,盡量保證數據庫運行于歸檔模式;根據數據庫數據變化的頻率情況確定數據庫備份規律;13211.1.3備份原則與策略在剛建立數據庫時,應該立即進行在歸檔模式下,當數據庫結構發生變化時,如創建或刪除表空間、添加數據文件、重做日志文件等,應該備份數據庫的控制文件;在非歸檔模式下,當數據庫結構發生變化時,應該進行數據庫的完全備份;在歸檔模式下,對于經常使用的表空間,可以采用表空間備份方法提高備份效率;在歸檔模式下,通常不需要對聯機重做日志文件進行備份;使用RESETLOGS方式打開數據庫后,應該進行一個數據庫的完全備份;對于重要的表中的數據,可以采用邏輯備份方式進行備份。133在歸檔模式下,當數據庫結構發生變化時,如創建或刪除表空間、添11.1.4恢復原則與策略根據數據庫介質故障原因,確定采用完全介質恢復還是不完全介質恢復;如果數據庫運行在非歸檔模式,則當介質故障發生時,只能進行數據庫的不完全恢復,將數據庫恢復到最近的備份時刻的狀態;如果數據庫運行在歸檔模式,則當一個或多個數據文件損壞時,可以使用備份的數據文件進行完全或不完全恢復數據庫;如果數據庫運行在歸檔模式,則當數據庫的控制文件損壞時,可以使用備份的控制文件實現數據庫的不完全恢復;如果數據庫運行在歸檔模式,則當數據庫的聯機日志文件損壞時,可以使用備份的數據文件和聯機重做日志文件不完全恢復數據庫;如果執行了不完全恢復,則當重新打開數據庫時應該使用RESETLOGS選項。13411.1.4恢復原則與策略根據數據庫介質故障原因,確定采11.2物理備份與恢復冷備份熱備份非歸檔模式下數據庫的恢復歸檔模式下數據庫的完全恢復歸檔模式下數據庫的不完全恢復利用OEM進行物理備份與恢復13511.2物理備份與恢復冷備份201362111.2.1冷備份概述關閉數據庫實例。用操作系統的實用工具備份所有的物理文件,包括數據文件、控制文件、聯機重做日志文件等。13711.2.1冷備份概述22關閉數據庫,開始備份故障時刻
備份恢復
重裝備份副本恢復丟失數據備份完成如果沒有啟用歸檔模式,數據庫不能恢復到備份完成后的任意時刻。如果啟用歸檔模式,從冷備份結束后到出現故障這段時間的數據庫恢復,可以利用聯機日志文件和歸檔日志文件實現。138關閉數據庫,故障時刻備份恢復重裝備份副本恢復丟失數據備冷備份步驟確定數據庫各種物理文件關閉數據庫備份所有相關的數據庫物理文件重新啟動數據庫139冷備份步驟24啟動SQL*Plus,以SYSDBA身份登錄數據庫查詢當前數據庫所有數據文件、控制文件、聯機重做日志文件的位置。SELECTfile_nameFROMdba_data_files;SELECTmemberFROMv$logfile;SELECTvalueFROMv$parameterWHEREname='control_files';關閉數據庫SHUTDOWNIMMEDIATE復制所有數據文件、聯機重做日志文件以及控制文件到備份磁盤。重新啟動數據庫STARTUP140啟動SQL*Plus,以SYSDBA身份登錄數據庫2511.2.2熱備份數據庫完全熱備份的步驟:啟動SQL*Plus,以SYSDBA身份登錄數據庫將數據庫設置為歸檔模式以表空間為單位,進行數據文件備份備份控制文件備份其他物理文件14111.2.2熱備份數據庫完全熱備份的步驟:26備份數據文件查看當前數據庫有哪些表空間,以及每個表空間中有哪些數據文件。SELECTtablespace_name,file_nameFROMdba_data_filesORDERBYtablespace_name;分別對每個表空間中的數據文件進行備份,其方法為將需要備份的表空間(如USERS)設置為備份狀態。ALTERTABLESPACEUSERSBEGINBACKUP;將表空間中所有的數據文件復制到備份磁盤。結束表空間的備份狀態。ALTERTABLESPACEUSERSENDBACKUP;對數據庫中所有表空間分別采用該步驟進行備份。142備份數據文件27備份控制文件當執行了下列操作時應該進行控制文件備份ALTERDATABASEADDLOGFILEALERTDATABASEADDLOGFILEMEMBERALTERDATABASERENAMEFILEALTERDATABASEDROPLOGFILEGROUPALTERDATABASEDROPLOGFILEMEMBERCREATETABLESPACEALTERTABLESPACEADDDATAFILEALTERTABLESPACERENAMEDATAFILEDROPTABLESPACE143備份控制文件28控制文件備份方法將控制文件備份為二進制文件。ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\BACKUP\CONTROL.BKP';
將控制文件備份為文本文件。ALTERDATABASEBACKUPCONTROLFILETOTRACE;
144控制文件備份方法29其他文件的備份歸檔當前的聯機重做日志文件。ALTERSYSTEMARCHIVELOGCURRENT;備份歸檔重做日志文件,將所有的歸檔重做日志文件復制到備份磁盤中。備份初始化參數文件,將初始化參數文件復制到備份磁盤中。145其他文件的備份3011.2.3非歸檔模式下數據庫的恢復非歸檔模式下數據庫的恢復主要指利用非歸檔模式下的冷備份恢復數據庫。步驟為:關閉數據庫。SHUTDOWNIMMEDIATE將備份的所有數據文件、控制文件、聯機重做日志文件還原到原來所在的位置。重新啟動數據庫。STARTUP注意非歸檔模式下的數據庫恢復是不完全恢復,只能將數據庫恢復到最近一次完全冷備份的狀態。
14611.2.3非歸檔模式下數據庫的恢復非歸檔模式下數據庫的11.2.4歸檔模式下數據庫的完全恢復概述數據庫級完全恢復表空間級完全恢復數據文件級完全恢復數據庫完全恢復示例14711.2.4歸檔模式下數據庫的完全恢復概述32(1)概述概念歸檔模式下數據庫的完全恢復是指歸檔模式下一個或多個數據文件損壞,利用熱備份的數據文件替換損壞的數據文件,再結合歸檔日志文件和聯機重做日志文件,采用前滾技術重做自備份以來的所有改動,采用回滾技術回滾未提交的操作,以恢復到數據庫故障時刻的狀態。148(1)概述概念33
恢復的級別數據庫級完全恢復:主要應用于所有或多數數據文件損壞的恢復;表空間級完全恢復:對指定表空間中的數據文件進行恢復;數據文件級完全恢復:是針對特定的數據文件進行恢復。
注意數據庫級的完全恢復只能在數據庫裝載但沒有打開的狀態下進行,而表空間級完全恢復和數據文件級完全恢復可以在數據庫處于裝載狀態或打開的狀態下進行。
149恢復的級別34歸檔模式下數據庫完全恢復的基本語法:RECOVER[AUTOMATIC][FROM'location'][DATABASE|TABLESPACEtspname|DATAFILEdfname]參數說明
AUTOMATIC:進行自動恢復,不需要DBA提供重做日志文件名稱;location:制定歸檔重做日志文件的位置。默認為數據庫默認的歸檔路徑。150歸檔模式下數據庫完全恢復的基本語法:35(2)數據庫級完全恢復
數據庫級完全恢復的步驟:如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件還原所有損壞的數據文件。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行數據庫恢復命令。RECOVERDATABASE打開數據庫。ALTERDATABASEOPEN;
151(2)數據庫級完全恢復數據庫級完全恢復的步驟:36(3)表空間級完全恢復
以EXAMPLE表空間的數據文件example01.dbf損壞為例模擬表空級的完全恢復。數據庫處于裝載狀態下的恢復數據庫處于打開狀態下的恢復
152(3)表空間級完全恢復以EXAMPLE表空間的數據文件e數據庫處于裝載狀態下的恢復如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行表空間恢復命令。RECOVERTABLESPACEEXAMPLE打開數據庫。ALTERDATABASEOPEN;153數據庫處于裝載狀態下的恢復38數據庫處于打開狀態下的恢復①如果數據庫已經關閉,則將數據庫啟動到MOUNT狀態。STARTUPMOUNT②將損壞的數據文件設置為脫機狀態。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;③打開數據庫。
ALTERDATABASEOPEN;④將損壞的數據文件所在的表空間脫機。ALTERTABLESPACEEXAMPLEOFFLINEFORRECOVER;154數據庫處于打開狀態下的恢復39⑤利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。⑥執行表空間恢復命令。RECOVERTABLESPACEEXAMPLE;⑦將表空間聯機。ALTERTABLESPACEEXAMPLEONLINE;如果數據文件損壞時數據庫正處于打開狀態,則可以直接執行步驟(4)~(7)。155⑤利用備份的數據文件example01.dbf還原損壞的數(4)數據文件級完全恢復
以數據文件D:\oracle\product\10.2.0\oradata\orcl\example01.dbf損壞為例模擬數據文件級的完全恢復。數據庫處于裝載狀態下的恢復數據庫處于打開狀態下的恢復156(4)數據文件級完全恢復以數據文件D:\oracle\pr數據庫處于裝載狀態下的恢復如果數據庫沒有關閉,則強制關閉數據庫。SHUTDOWNABORT利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。將數據庫啟動到MOUNT狀態。STARTUPMOUNT執行數據文件恢復命令。RECOVERDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';將數據文件聯機。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE打開數據庫。ALTERDATABASEOPEN;157數據庫處于裝載狀態下的恢復42數據庫處于打開狀態下的恢復如果數據庫已經關閉,則將數據庫啟動到MOUNT狀態。STARTUPMOUNT將損壞的數據文件設置為脫機狀態。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;打開數據庫。
ALTERDATABASEOPEN;利用備份的數據文件example01.dbf還原損壞的數據文件example01.dbf。158數據庫處于打開狀態下的恢復43執行數據文件恢復命令。RECOVERDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF';將數據文件聯機。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE;如果數據文件損壞時數據庫正處于打開狀態,則可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論