版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
清華大學出版社Oracle10g
數(shù)據(jù)庫技術普通高等教育“十一五”國家級規(guī)劃教材孟德欣主編黃偉文謝二蓮王先花副主編第8章備份和恢復第8章備份和恢復8.1備份和恢復概述8.2脫機備份和恢復8.3聯(lián)機備份和恢復8.4導出和導入8.5數(shù)據(jù)泵技術8.6在OEM中導入導出數(shù)據(jù)8.7恢復管理器8.8閃回技術8.9SQL*LOADER工具的使用第8章備份和恢復8.1備份和恢復概述由于計算機系統(tǒng)的故障,數(shù)據(jù)庫有時可能遭到破壞,這時如何盡快恢復數(shù)據(jù)就成為當務之急。如果平時對數(shù)據(jù)庫做了備份,那么此時恢復數(shù)據(jù)就顯得很容易。Oracle數(shù)據(jù)庫系統(tǒng)的備份和恢復機制就是一項有利措施。備份和恢復指為保護數(shù)據(jù)庫免于數(shù)據(jù)破壞或在發(fā)生數(shù)據(jù)破壞后進行數(shù)據(jù)重建的各種策略和步驟。所謂備份是指對重建數(shù)據(jù)庫的數(shù)據(jù)所建立的副本,恢復指利用備份的數(shù)據(jù)進行重建數(shù)據(jù)庫的過程。Oracle系統(tǒng)提供了物理備份和邏輯備份兩種備份方式。物理備份指對構成數(shù)據(jù)庫的各種物理文件建立副本,這里的物理文件指數(shù)據(jù)文件、控制文件及歸檔日志文件等,Oracle系統(tǒng)允許把這些物理文件的副本存放在備份設備上,所謂備份設備指用于放置數(shù)據(jù)庫備份的磁帶或磁盤等。邏輯備份指導出數(shù)據(jù)庫對象,如表、表空間、過程等數(shù)據(jù)庫對象。邏輯備份的結果以Oracle提供的內(nèi)部格式寫入操作系統(tǒng)支持下的二進制文件,重建數(shù)據(jù)庫時只需把這個二進制文件導入數(shù)據(jù)庫中即可。
第8章備份和恢復8.1.1數(shù)據(jù)庫故障類型
1.系統(tǒng)故障:系統(tǒng)故障指系統(tǒng)在運行過程中,發(fā)生操作系統(tǒng)錯誤、突然停電等意外情況,造成所有正在運行的事務都以非正常方式終止,內(nèi)存緩沖區(qū)中的數(shù)據(jù)全部丟失,但磁盤、磁帶等外設上的數(shù)據(jù)未受損失。通常情況下,在數(shù)據(jù)庫重新啟動時,恢復程序按照日志文件的記錄項自動完成恢復操作。因此系統(tǒng)故障的恢復一般不需用戶進行干預。2.介質故障:介質故障指系統(tǒng)在運行過程中,由于硬件設施發(fā)生損壞,造成數(shù)據(jù)庫中的數(shù)據(jù)全部或部分丟失。介質故障的危害性最大,但發(fā)生的可能性較小。介質故障的恢復,需要由數(shù)據(jù)庫管理員手工裝入最新的數(shù)據(jù)庫備份和日志文件備份,并執(zhí)行恢復命令。3.用戶故障:用戶故障指系統(tǒng)在運行過程中,可能由于應用程序的錯誤或手工誤操作,造成數(shù)據(jù)庫中的數(shù)據(jù)被刪除或損壞。例如刪除數(shù)據(jù)庫中的重要的表,或者誤修改了表中的數(shù)據(jù)。用戶故障的恢復可以設置合理的恢復策略,由系統(tǒng)按照日志文件記錄的內(nèi)容進行恢復,或者使用閃回功能,這都需要管理員手工進行干預。第8章備份和恢復8.1.2備份與恢復的內(nèi)容一般說來,在Oracle數(shù)據(jù)庫系統(tǒng)中,需要備份和恢復下面4種文件。1.數(shù)據(jù)文件2.控制文件3.各種參數(shù)文件4.日志文件第8章備份和恢復8.1.3數(shù)據(jù)庫備份的分類數(shù)據(jù)庫備份按照備份方式,分為物理備份和邏輯備份。其中,物理備份又分為脫機備份(冷備份)和聯(lián)機備份(熱備份)。脫機備份最簡單,必須在關閉數(shù)據(jù)庫的情況下備份,用戶不能訪問數(shù)據(jù)庫。聯(lián)機備份指在數(shù)據(jù)庫運行開期間就可以備份,用戶仍可以訪問數(shù)據(jù)庫。聯(lián)機備份的實現(xiàn)比較復雜,數(shù)據(jù)庫必須運行在歸檔模式下。聯(lián)機備份可以使用腳本或在RMAN中利用備份向導來實現(xiàn)。邏輯備份指將數(shù)據(jù)庫對象以Oracle提供的內(nèi)部格式寫入操作系統(tǒng)支持下的二進制文件。邏輯備份比較靈活,可以指定對特定對象的備份,通常用于轉儲數(shù)據(jù)。邏輯備份用EXP命令,邏輯恢復命令為IMP。此外,Oracle10g還提供功能更完善的數(shù)據(jù)泵技術,即使用EXPDP和IMPDP命令實現(xiàn)。按照備份工具分類,數(shù)據(jù)庫備份可以分為OS(操作系統(tǒng))拷貝、EXP/IMP、EXPDP/IMPDP、RMAN及第三方工具備份。按備份的增量分類,數(shù)據(jù)庫備份可以分為全庫備份、增量備份和累計增量備份。第8章備份和恢復8.1.4備份與恢復策略在設計Oracle系統(tǒng)的備份與恢復策略時,應該從以下三個方面來維護數(shù)據(jù)庫的可恢復性。1)使數(shù)據(jù)庫的損壞次數(shù)減到最少,從而使數(shù)據(jù)庫保持最大的可用性。2)當數(shù)據(jù)庫不可避免地損壞后,要使恢復時間減到最少,從而使恢復的效率達到最高。3)當數(shù)據(jù)庫損壞后,要確保盡量少的數(shù)據(jù)丟失或根本不丟失,從而使數(shù)據(jù)具有最大的可恢復性。在具體實施過程中,制定一個切實可行的備份和恢復策略,應把握以下幾點。1)在數(shù)據(jù)庫結構發(fā)生改變時,應該進行一次數(shù)據(jù)庫備份。2)周期性、有計劃地進行數(shù)據(jù)庫備份。備份過程應該保證數(shù)據(jù)庫系統(tǒng)的可恢復性和可用性。如果數(shù)據(jù)庫有較長的關機時間,則可以每周進行一次冷備份,并歸檔重做日志,對于關鍵行業(yè)的24*7的數(shù)據(jù)庫系統(tǒng)考慮熱備份。如果每天都能備份當然會很理想,但要考慮其現(xiàn)實性。第8章備份和恢復8.1.4備份與恢復策略3)對于關鍵行業(yè)數(shù)據(jù)庫,選擇運行模式為歸檔模式,對于一般的數(shù)據(jù)庫系統(tǒng)或正處于開發(fā)和調(diào)試的數(shù)據(jù)庫可以采用非歸檔模式。歸檔模式可以在數(shù)據(jù)庫發(fā)生故障時最大限度恢復數(shù)據(jù)庫,保證不丟失任何已提交的數(shù)據(jù),而非歸檔模式只能恢復數(shù)據(jù)庫到最近的檢查點。4)絕對保證備份設備的安全性。無論采用哪種備份方式,備份設備都應該與當前正在運行的數(shù)據(jù)庫系統(tǒng)所在的磁盤分離,這樣就可以保證當數(shù)據(jù)庫發(fā)生介質故障時,也不會對備份在備份設備上的數(shù)據(jù)庫備份產(chǎn)生影響。第8章備份和恢復8.2脫機備份和恢復如果數(shù)據(jù)庫運行在非歸檔模式下,則只能進行脫機備份。脫機備份是一種完全備份,即對整個數(shù)據(jù)庫文件的備份。執(zhí)行脫機備份的過程是首先關閉數(shù)據(jù)庫,然后將數(shù)據(jù)文件、控制文件和參數(shù)文件等拷貝到備份設備上,接著重新啟動數(shù)據(jù)庫即可??梢园衙摍C備份的過程寫入一個腳本文件中,自動執(zhí)行這一過程,或者在RMAN(RecoveryManager,恢復管理器)中來實現(xiàn)。第8章備份和恢復8.2.1脫機備份1.確定要備份的文件名稱和路徑在進行脫機備份之前,首先確認要備份的數(shù)據(jù)文件、控制文件等的名稱和路徑。SQL>SELECTFROMDBA_DATA_FILES;SQL>SELECTNAMEFROMV$CONTROLFILE;SQL>SELECTMEMBERFROMV$LOGFILE;2.關閉數(shù)據(jù)庫關閉數(shù)據(jù)庫包括關閉運行在Oracle數(shù)據(jù)庫上的應用程序和所有第三方軟件。在Oracle企業(yè)管理器中關閉數(shù)據(jù)庫例程,或在SQL*Plus中使用以下命令以正常方式關閉數(shù)據(jù)庫。SQL>CONNSYSTEM/ORCLASSYSDBASQL>SHUTDOWNNORMAL第8章備份和恢復8.2.1脫機備份3.復制數(shù)據(jù)庫文件復制整個數(shù)據(jù)庫文件到存儲介質上,要保證存儲介質的安全及與當前數(shù)據(jù)庫所在磁盤的分離。使用操作系統(tǒng)命令復制數(shù)據(jù)庫的全部數(shù)據(jù)文件、控制文件,將所有這些文件存放到指定的磁盤目錄下。假定備份文件暫存在F:\Backup目錄下,如使用下面的語句完成復制。SQL>$COPYC:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBFF:\Backup\。。。。。。。。。。。。。。4.重啟數(shù)據(jù)庫SQL>STARTUP經(jīng)過上面的三步,完成數(shù)據(jù)庫的脫機備份。脫機備份的優(yōu)點在于過程簡單。但其缺點也是顯而易見的,許多關鍵行業(yè)的數(shù)據(jù)庫運行在7*24模式下,數(shù)據(jù)庫不允許停止服務,此時并不適合于做脫機備份,這就需要聯(lián)機備份。第8章備份和恢復8.2.2脫機恢復脫機恢復的步驟比較簡單,可以分為以下三個步驟。1)關閉數(shù)據(jù)庫。采用前面所述的方法。2)將復制到F:\BACKUP目錄下的文件重新復制到原來的位置。3)重新啟動數(shù)據(jù)庫。第8章備份和恢復8.3聯(lián)機備份和恢復8.3.1切換到歸檔模式正如前面所講的一樣,數(shù)據(jù)庫實現(xiàn)聯(lián)機備份和恢復必須運行在歸檔模式下,如果當前數(shù)據(jù)沒有運行在歸檔模式下,可以通過下面的步驟切換到歸檔模式下。首先,關閉數(shù)據(jù)庫,使用下面的命令。SQL>CONNECTSYSTEM/ORCLASSYSDBASQL>SHUTDOWNIMMEDIATE注意,這里登錄方式一定是SYSDBA。接著啟動例程,裝載數(shù)據(jù)庫。使用STARTUPMOUNT命令,此時數(shù)據(jù)庫還沒有打開。切換數(shù)據(jù)庫的運行模式時,必須裝載數(shù)據(jù)庫但不打開數(shù)據(jù)庫。SQL>STARTUPMOUNT最后切換到歸檔模式,并打開數(shù)據(jù)庫。使用下面的命令切換到歸檔模式并打開數(shù)據(jù)庫。SQL>ALTERDATABASEARCHIVELOG;SQL>ALTERDATABASEOPEN;第8章備份和恢復8.3聯(lián)機備份和恢復在將數(shù)據(jù)庫切換到歸檔模式后,可以使用下面的語句進行確認。SQL>ARCHIVELOGLIST;在Oracle10g中,歸檔日志文件默認的存儲路徑放在快速閃回區(qū)中,也就是“use_db_recovery_”,通過修改初始化參數(shù)log_archive_dest_n,這里的n從1到10,可以為歸檔日志文件最多指定10個不同的路徑,從而生成10個副本。第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份在SQL*Plus中使用SQL命令可以實現(xiàn)聯(lián)機備份。聯(lián)機備份包括對表空間、控制文件、歸檔日志文件以及參數(shù)文件和密碼文件等。由于參數(shù)文件和密碼文件的備份只需直接復制到備份設備即可,下面重點介紹對表空間、控制文件的備份。1.為部分或全部表空間備份聯(lián)機備份中對于表空間的基本操作步驟如下:1)在為表空間復制文件之前,需要設定要備份的表空間為熱備份模式,通過下面的命令來實現(xiàn)。SQL>ALTERDATABASE表空間名稱BEGINBACKUP2)復制處于熱備份模式下的表空間所對應的所有數(shù)據(jù)文件SQL>$COPY數(shù)據(jù)文件名稱備份目錄3)復制完成后,再將該表空間設置為非熱備份模式,執(zhí)行下面的命令。SQL>ALTERDATABASE表空間名稱ENDBACKUP第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份4)對每個表空間,依次執(zhí)行上面的三步。5)強制進行一次日志切換,歸檔當前聯(lián)機日志文件。SQL>ALTERSYSTEMSWITCHLOGFILE;6)備份所有的歸檔日志文件。下面的操作過程對SYSTEM和USER兩個表空間進行備份。首先備份SYSTEM表空間。SQL>ALTERDATABASESYSTEMBEGINBACKUP;SQL>$COPYC:\ORACLE\PRODUCT\10.2.0\ORADATA\SYSTEM01.DBFF:\Backup\SQL>ALTERDATABASESYSTEMENDBACKUP;接著備份USER表空間。SQL>ALTERDATABASEUSERBEGINBACKUP;SQL>$COPYC:\ORACLE\PRODUCT\10.2.0\ORADATA\USERS01.DBFF:\Backup\SQL>ALTERDATABASEUSERENDBACKUP;第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份2.備份控制文件備份控制文件要以SYSDBA的身份登錄數(shù)據(jù)庫。Oracle對控制文件的備份可以采用下面兩種形式。一種是直接復制控制文件,另一種是通過生成一個跟蹤文件的方式復制控制文件。1)直接復制控制文件SQL>ALTERDATABASEBACKUPCONTROLFILETO‘F:\Backup\CONTROL_BAK.CTL’REUSE;如果備份的文件已經(jīng)存在,必須指定REUSE選項。2)生成跟蹤文件的方式復制控制文件SQL>ALTERDATABASEBACKUPCONTROLTRACE;此時,Oracle系統(tǒng)會在USER_DUMP_DEST所指定的目錄下生成一個跟蹤文件。該文件中就記錄了重建控制文件的SQL語句。SQL>showparameteruser_dump_dest;第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份SQL>selectspidfromv$processwhereaddr=(selectpaddrfromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1));在確定了SPID后,就可以在USER_DUMP_DEST所指定的目錄下查找以<SID>_ORD_<SPID>.TRC命名的跟蹤文件。如筆者的數(shù)據(jù)庫環(huán)境下,此文件命名為ORCL_ORA_1400.TRC。使用文本編輯器,打開此跟蹤文件,查找到下面一段:CREATECONTROLDATABASE"ORCL"NORESETLOGSARCHIVELOGMAXLOGFILES16MAXLOGMEMBERS3MAXDATAFILES100MAXINSTANCES8MAXLOGHISTORY292LOGFILEGROUP1第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'SIZE50M,GROUP2'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'SIZE50M,GROUP3'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'SIZE50M--STANDBYLOGFILEDATAFILE'C:\ORACLE\PRODUCT\10.2.0\ORADATA\SYSTEM01.DBF',。。。。。。CHARACTERSETZHS16GBK;這就是重建控制文件的SQL語句。如果控制文件丟失,則將數(shù)據(jù)庫啟動到MOUNT階段,然后執(zhí)行此SQL語句即可重建控制文件。第8章備份和恢復8.3.2用命令方式實現(xiàn)聯(lián)機備份3.備份歸檔日志文件備份完所有數(shù)據(jù)庫文件后,還要歸檔當前的聯(lián)機日志文件,使用下面命令完成強制日志轉換和日志的歸檔工作。SQL>ALTERSYSTEMARCHIVELOGCURRENT;一旦歸檔了當前聯(lián)機的日志文件,最后一步就是備份所有歸檔日志文件。使用操作系統(tǒng)的COPY命令可以完成本操作。SQL>$COPYC:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2009_02_08\O1_MF_1_54_5Y9FM18S_.ARCF:\Backup\……可以看出,用命令的方式實現(xiàn)聯(lián)機備份比較復雜。為了盡可能避免錯誤,可以把上述命令寫入一個腳本文件,備份時只需執(zhí)行這個文件讓系統(tǒng)自動進行備份。第8章備份和恢復8.3.3聯(lián)機恢復概述脫機備份的恢復實質上就是一種復制技術,而聯(lián)機備份的恢復則比較復雜。聯(lián)機恢復一般分為兩種情況,分別是實例崩潰恢復和介質恢復,其中介質恢復按照恢復的內(nèi)容又分為完全介質恢復和不完全介質恢復。實例崩潰恢復用于將數(shù)據(jù)庫從突然斷電、應用程序錯誤等導致的數(shù)據(jù)庫實例、操作系統(tǒng)崩潰等情況下的恢復。這時的Oracle實例不能正常關閉。而且當崩潰發(fā)生時,服務器可能正在進行許多修改數(shù)據(jù)庫信息的事務處理,數(shù)據(jù)庫來不及執(zhí)行一個檢查點,以確保服務器緩沖區(qū)內(nèi)的所有被修改的數(shù)據(jù)塊被安全寫回數(shù)據(jù)庫的數(shù)據(jù)文件。這樣,數(shù)據(jù)庫數(shù)據(jù)文件中的數(shù)據(jù)就處于不一致狀態(tài)。實例崩潰恢復只需要當前聯(lián)機重做日志文件,無需歸檔日志文件。實例和崩潰恢復無需用戶參與,在重新啟動數(shù)據(jù)庫時,Oracle系統(tǒng)自動利用聯(lián)機日志文件所記載的重做記錄進行數(shù)據(jù)庫的恢復。第8章備份和恢復8.3.3聯(lián)機恢復概述介質恢復用于介質損壞時的恢復。介質恢復只有數(shù)據(jù)庫運行在歸檔模式下才可以進行。如果介質恢復過程中既使用聯(lián)機重做日志文件又使用歸檔日志文件,就需要用戶的干預。Oracle系統(tǒng)不會自動檢測是否有介質損壞,如果有介質損壞,則恢復時間由用戶指定的恢復策略決定,而不是Oracle內(nèi)部機制決定。介質損壞的數(shù)據(jù)文件在進行介質恢復之前是不能聯(lián)機的。只要有一個介質損壞的數(shù)據(jù)庫文件存在,則數(shù)據(jù)庫就不能正常打開。完全介質恢復指恢復所有已提交事務工作的操作,將數(shù)據(jù)庫、表空間或數(shù)據(jù)文件的備份更新到最近的時間點上,應用完全介質恢復的典型情況是當數(shù)據(jù)文件或控制文件遭受了介質損壞。完全介質恢復分為數(shù)據(jù)庫恢復、表空間恢復和數(shù)據(jù)文件恢復幾種類型。第8章備份和恢復8.3.3聯(lián)機恢復概述1)對數(shù)據(jù)庫進行完全介質恢復可以進行下面的操作。
登錄數(shù)據(jù)庫;
確保要恢復的所有文件都聯(lián)機;
將整個數(shù)據(jù)庫或要恢復的文件復原;
施加聯(lián)機重做日志文件和歸檔日志文件。2)對于表空間或數(shù)據(jù)文件進行完全介質恢復可以進行下面的操作:
如果數(shù)據(jù)庫已打開,可將要恢復的表空間或數(shù)據(jù)文件置于脫機狀態(tài);
將要恢復的數(shù)據(jù)文件復原;
施加聯(lián)機重做日志文件和歸檔日志文件。第8章備份和恢復8.3.3聯(lián)機恢復概述不完全介質恢復指利用數(shù)據(jù)庫的備份產(chǎn)生一個數(shù)據(jù)庫的非當前版本,之所以稱為不完全,是因為不完全介質恢復過程中并非所有的聯(lián)機重做日志都使用,而是由用戶指定何時中止恢復過程。不完全介質恢復只能在整個數(shù)據(jù)庫上實施。不完全介質恢復分為基于時間的恢復、基于變化的恢復和基于中止的恢復三種類型。
基于時間的恢復即將數(shù)據(jù)庫恢復到某個時間點為止。
基于變化的恢復即將數(shù)據(jù)庫恢復到指定的SCN(系統(tǒng)修改號)為止。
基于中止的恢復即將數(shù)據(jù)庫恢復到某個日志組為止,當Oracle系統(tǒng)提示給出建議的歸檔日志文件名時,輸入“Cancel”,中止恢復操作。第8章備份和恢復8.3.4用命令方式實現(xiàn)聯(lián)機恢復用命令方式實現(xiàn)介質恢復的命令如下:RECOVER[AUTOMATIC]{DATABASE|TABLESPACE表空間名稱|DATAFILE數(shù)據(jù)文件名}[{UNTIL{CANCEL|TIME時間|CHANGE變化號}USINGBACKUPCONTROLFILE}];其中,如果使用UNTIL子句,進行的是不完全介質恢復;如果不使用UNTIL子句,則進行的是完全介質恢復。下面介紹完全介質恢復的步驟。1)關閉例程在Oracle企業(yè)管理器中關閉數(shù)據(jù)庫例程,或在SQL*Plus中執(zhí)行下面的語句。SQL>CONNSYSTEM/ORCLAS
SYSDBA;SQL>SHUTDOWNIMMEDIATE2)在V$RECOVER_FILE中查找損壞的文件第8章備份和恢復8.3.4用命令方式實現(xiàn)聯(lián)機恢復查詢數(shù)據(jù)字典的動態(tài)視圖V$RECOVER_FILE,確定要復原的文件。然后,使用操作系統(tǒng)的拷貝命令復原被損壞的文件。3)恢復數(shù)據(jù)庫恢復數(shù)據(jù)庫時,要以MOUNT方式的啟動數(shù)據(jù)庫,但不打開數(shù)據(jù)庫。執(zhí)行下面的命令。SQL>STARTUPMOUNT接著查詢V$DATAFILE動態(tài)視圖,列出所有數(shù)據(jù)文件的狀態(tài),確保所有數(shù)據(jù)文件都處于聯(lián)機狀態(tài)。然后,根據(jù)恢復的需要,執(zhí)行不同的RECOVER恢復命令。如果恢復整個數(shù)據(jù)庫,執(zhí)行命令:SQL>RECOVERDATABASE如果恢復某一個表空間,執(zhí)行命令:SQL>RECOVERTABLESPACE表空間名如果恢復某一個數(shù)據(jù)文件,執(zhí)行命令:SQL>RECOVERDATAFILE'數(shù)據(jù)文件名'第8章備份和恢復8.3.4用命令方式實現(xiàn)聯(lián)機恢復4)打開數(shù)據(jù)庫當系統(tǒng)提示完成完全介質恢復后,執(zhí)行下面的命令打開數(shù)據(jù)庫。SQL>ALTERDATABASEOPEN;值得注意的是這里的受損數(shù)據(jù)文件不能是SYSTEM表空間的數(shù)據(jù)文件,因為如果SYSTEM表空間受損的話,Oracle系統(tǒng)根本就不能啟動。下面針對受損數(shù)據(jù)庫采取恢復的步驟如下:1)將包含受損數(shù)據(jù)文件的表空間脫機。在SQL*Plus中執(zhí)行下面的命令。SQL>ALTERTABLESPACE表空間名稱OFFLINE;2)復原受損的數(shù)據(jù)文件,找到受損數(shù)據(jù)文件的備份,利用操作系統(tǒng)的命令完成復原。3)恢復脫機的表空間。SQL>RECOVERTABLESPACE表空間名稱;4)將脫機的表空間聯(lián)機。SQL>ALTERTABLESPACE表空間名稱ONLINE;第8章備份和恢復8.3.4用命令方式實現(xiàn)聯(lián)機恢復不完全介質恢復的過程與完全介質恢復的過程基本相似,只不過加上UNTIL子句。此外還要注意的是,無論采用哪種類型的不完全介質恢復,在恢復操作成功結束之后,都要使用RESETLOGS選項打開數(shù)據(jù)庫,如下面的語句:SQL>ALTERDATABASEOPENRESETLOGS;第8章備份和恢復8.4導出和導入利用Oracle系統(tǒng)提供的EXP及IMP命令可以實現(xiàn)導出和導入。其中用EXP命令導出數(shù)據(jù)時,將數(shù)據(jù)庫結構連同數(shù)據(jù)一起按照邏輯結構導出。由于只導出數(shù)據(jù)庫的內(nèi)容而不備份物理數(shù)據(jù)塊,所以導出稱為邏輯備份。用IMP命令實現(xiàn)導入,就是將由EXP導出的DMP文件按照邏輯關系載入數(shù)據(jù)庫。利用EXP和IMP進行數(shù)據(jù)的導出和導入,可以將數(shù)據(jù)從一個版本移植到另外的版本,或者將數(shù)據(jù)在不同的硬件環(huán)境平臺之間進行移動。還可以對Oracle數(shù)據(jù)庫整體或部分進行邏輯備份和恢復,可以達到減少空間碎片的目的。第8章備份和恢復8.4.1用EXP命令實現(xiàn)導出用EXP命令實現(xiàn)導出非常方便靈活,在Oracle10g中EXP支持全庫、用戶、表三種導出方式。其中:1)全庫方式:導出整個Oracle數(shù)據(jù)庫。2)用戶方式:只導出Oracle數(shù)據(jù)庫中的一個或幾個用戶模式下的對象。3)表方式:只導出某用戶下的表及其索引約束條件。在命令行提示符下輸入EXP命令,輸入用戶名和密碼連接數(shù)據(jù)庫。設置EXP命令的各項參數(shù)。輸入數(shù)組提取緩沖區(qū)大小,默認值是4096。如果選默認值直接按回車鍵即可。設置導出文件名,默認值是EXPORT.DMP,這里設置為D:\20090201EXP.DMP。DMP文件是一個二進制文件。選擇導出數(shù)據(jù)庫的方式。這里選擇按U(用戶)方式導出。接著選擇導出權限、導出表數(shù)據(jù)及壓縮區(qū)選項。參數(shù)設置完畢后,就開始執(zhí)行備份操作,最后系統(tǒng)提示成功終止導出。第8章備份和恢復8.4.1用EXP命令實現(xiàn)導出導出了整個數(shù)據(jù)庫C:>EXPSYSTEM/ORCLfull=yROWS=yfile=d:\20091125fulldb.dmplog=log20091125.log導出HR用戶模式下的所有對象。C:\>EXPSYSTEM/ORCLOWNER=HRROWS=yfile=d:\20091125hrdata.dmplog=log20091126.log導出SCOTT用戶的DEPT和EMP表。C:\>EXPSYSTEM/ORCLTABLES=(DEPT,EMP)ROWS=yfile=d:\20091125scottdata.dmpLOG=log3.logEXP命令支持以多個固定大小文件方式導出,這種做法通常用在表數(shù)據(jù)量較大,單個DUMP文件可能會超出文件系統(tǒng)的限制的情況。C:\>EXPSYSTEM/ORCLFULL=Y,2.DMP,3.DMP
LOG=log1001.log第8章備份和恢復8.4.2用IMP命令實現(xiàn)導入IMP命令的多數(shù)參數(shù)使用方法與EXP命令相同。在命令行提示符下輸入EXP命令,輸入用戶名和密碼連接數(shù)據(jù)庫。接著設置IMP命令的各項參數(shù)。導入文件:輸入剛才用EXP命令導出的文件D:\20090201EXP.DMP。輸入插入緩沖區(qū)大?。鹤钚?192,這里選擇默認值30720。由于對象已經(jīng)存在,忽略創(chuàng)建錯誤:選擇“yes”。按照導出文件時的設置情況選擇設置導入權限、導入表數(shù)據(jù)、導入整個文件等選項。參數(shù)設置完畢后,就開始執(zhí)行恢復操作,最后系統(tǒng)提示成功終止導入。第8章備份和恢復8.4.2用IMP命令實現(xiàn)導入下面的一組語句實現(xiàn)了以全庫方式、用戶方式和表方式分別導入數(shù)據(jù)。C:\>IMPUSERID=SYSTEM/ORCLIGNORE=YFULL=YFILE=d:\20090201exp.dmpC:\>IMPUSERID=SYSTEM/ORCLIGNORE=YFROMUSER=HRTOUSER=HRFILE=d:\20091125hrdata.dmpC:\>IMPSYSTEM/ORCLIGNORE=YTABLES=(DEPT,EMP)FILE=d:\20091125scottdata.dmpIMP支持以多個固定大小文件方式導入:C:\>IMPSYSTEM/ORCLFROMUSER=hrTOUSER=mdx
FULL=YIGNORE=Y,2.DMP,3.DMPCOMMIT=Y第8章備份和恢復8.4.3傳輸表空間所謂傳輸表空間就是指表空間從一個Oracle數(shù)據(jù)庫導出,導入到另一個Oracle數(shù)據(jù)庫。當進行傳輸表空間時需指定以下參數(shù):1)TRANSPORT_TABLESPACE邏輯值,指定是否導入可傳輸表空間的元數(shù)據(jù)。Y導入,N不導入。2)TABLESPACES指定將要傳輸?shù)綌?shù)據(jù)庫的表空間。3)DATAFILES指定將要傳輸?shù)綌?shù)據(jù)庫的數(shù)據(jù)文件。4)TTS_OWNERS指定擁有可傳輸表空間數(shù)據(jù)的用戶。在兩個Oracle數(shù)據(jù)庫之間傳輸表空間的一般步驟如下:1)將設置源數(shù)據(jù)庫ORCL的準備要傳輸?shù)腢SERS表空間為只讀狀態(tài)SQL>ALTERTABLESPACEUSERSREADONLY;2)從源數(shù)據(jù)庫ORCL中導出USERS表空間C:\>EXPUSERID=SYSTEM/ORCLTRANSPORT_TABLESPACE=YTABLESPACES=USERSFILE=D:\TTBS.DMP第8章備份和恢復8.4.3傳輸表空間3)將源數(shù)據(jù)庫ORCL的導出表空間所對應的數(shù)據(jù)文件和導出文件移動到目標數(shù)據(jù)庫TEST的相應目錄中,這里利用操作系統(tǒng)的COPY命令來完成。4)導入表空間C:\>IMPUSERID=SYSTEM/ORCLTRANSPORT_TABLESPACE=YTABLESPACES=USERSDATAFILES=’C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USER01.DBF’FILE=D:\TTBS.DMP5)設置目標數(shù)據(jù)庫TEST中的USERS表空間為讀寫狀態(tài)SQL>ALTERTABLESPACEUSERSREADWRITE;第8章備份和恢復8.5數(shù)據(jù)泵DATADUMP技術Oracle10g中的數(shù)據(jù)泵技術,即EXPDMP和IMPDP命令。數(shù)據(jù)泵的作用可以實現(xiàn)邏輯備份和恢復,在不同數(shù)據(jù)庫或者方案之間傳輸數(shù)據(jù),或者將數(shù)據(jù)從低版本數(shù)據(jù)庫中導出,然后導入到高版本數(shù)據(jù)庫中。由于數(shù)據(jù)泵實現(xiàn)數(shù)據(jù)導出和導入的速度要快于EXP和IMP,所以Oracle建議使用EXPDP和IMPDP。但EXPDP和IMPDP都是服務器端程序,只能在Oracle服務器端使用,不能在客戶端使用。而EXP和IMP則是客戶端程序,既可以在服務器端使用,又可以在客戶端使用。EXPDP和IMPDP命令采用作業(yè)(JOB)的形式來實現(xiàn),如果執(zhí)行過程中中止了EXPDP或IMPDP命令進程,以后還可以從斷點處重新開始執(zhí)行,不必從頭開始。這將為用戶節(jié)省大量時間。數(shù)據(jù)泵導出導入時,其導出文件只能存放在目錄對象(DIRECTORY)指定的操作系統(tǒng)目錄下,而不能直接指定操作系統(tǒng)目錄。目錄對象是Oracle系統(tǒng)的一種對象,它不屬于某一個用戶,而是屬于整個數(shù)據(jù)庫。第8章備份和恢復8.5數(shù)據(jù)泵DATADUMP技術目錄對象使用CREATEDIRECTORY語句來創(chuàng)建,而不是操作系統(tǒng)某個目錄,但是它指向操作系統(tǒng)某個目錄。所以在導出導入數(shù)據(jù)時,先要創(chuàng)建目錄對象。并將訪問目錄對象的權限授權給使用EXPDP和IMPDP的用戶。在導入/出之前,先創(chuàng)建目錄對象,如下:SQL>CONNSYSTEM/ORCL@orclasSYSDBA;SQL>GRANTexp_full_database,imp_full_databaseTOHR;SQL>GRANTcreateanydirectorytoHR;SQL>CONNHR/HR@orcl;SQL>$MDd:\dump;SQL>CREATEORREPLACEDIRECTORYdir1as‘d:\dump’;SQL>CONNSYSTEM/ORCL@orclasSYSDBA;SQL>GRANTread,writeONDIRECTORYdir1TOHR;SQL>SELECT*FROMDBA_DIRECTORIES;第8章備份和恢復8.5數(shù)據(jù)泵DATADUMP技術上面首先在操作系統(tǒng)中創(chuàng)建目錄D:\DUMP,接著在Oracle數(shù)據(jù)庫系統(tǒng)中由DBA將CREATEANYDIRECTORY權限授予執(zhí)行EXPDP的用戶,并創(chuàng)建目錄對象DIR1指向D:\DUMP目錄。并將讀寫的訪問權限授權給使用EXPDP和IMPDP的數(shù)據(jù)庫用戶,如HR。最后,還可以從DBA_DIRECTORIES數(shù)據(jù)字典中查詢目錄對象的信息。第8章備份和恢復8.5.1用EXPDP命令實現(xiàn)導出EXPDP命令的基本語法如下:EXPDP用戶名/口令參數(shù)1=設置值[,參數(shù)2=設置值,……]名稱說明ATTACH連接到現(xiàn)有作業(yè),例如ATTACH[=作業(yè)名]COMPRESSION減小有效的轉儲文件內(nèi)容的大小,關鍵字值為:(METADATA_ONLY)和NONECONTENT指定要卸載的數(shù)據(jù),其中有效關鍵字為:(ALL),DATA_ONLY和METADATA_ONLYDIRECTORY供轉儲文件和日志文件使用的目錄對象DUMPFILE目標轉儲文件列表第8章備份和恢復8.5.1用EXPDP命令實現(xiàn)導出ENCRYPTION_PASSWORD用于創(chuàng)建加密列數(shù)據(jù)的口令關鍵字ESTIMATE計算作業(yè)估計值,其中有效關鍵字為:(BLOCKS)和STATISTICSESTIMATE_ONLY在不執(zhí)行導出的情況下計算作業(yè)估計值EXCLUDE排除特定的對象類型,例如EXCLUDE=TABLE:EMP以字節(jié)為單位指定每個轉儲文件的大小FLASHBACK_SCN用于將會話快照設置回以前狀態(tài)的SCNFLASHBACK_TIME用于獲取最接近指定時間的SCN的時間FULL導出整個數(shù)據(jù)庫HELP顯示幫助消息INCLUDE包括特定的對象類型JOB_NAME要創(chuàng)建的導出作業(yè)的名稱LOGFILE日志文件名第8章備份和恢復8.5.1用EXPDP命令實現(xiàn)導出NETWORK_LINK鏈接到源系統(tǒng)的遠程數(shù)據(jù)庫的名稱NOLOGFILE不寫入日志文件PARALLEL更改當前作業(yè)的活動數(shù)目PARTFILE指定參數(shù)文件QUERY用于導出表的子集的謂詞子句SCHEMAS要導出的方案的列表STATUS在默認值為0時,將顯示可用時的新狀態(tài)的情況下,要監(jiān)視的頻率(以秒計)作業(yè)狀態(tài)TABLES在只導出一個方案的情況下,要導出的表的列表TABLESPACES標識要導出的表空間的列表TRANSPORT_FULL_CHECK驗證所有表的存儲段TRANSPORT_TABLESPACES要從中卸載元數(shù)據(jù)的表空間的列表VERSION要導出的對象的版本,其中有效關鍵字為:(COMPATIBLE),LATEST或任何有效的數(shù)據(jù)庫版本第8章備份和恢復8.5.1用EXPDP命令實現(xiàn)導出EXPDP命令還允許交互式執(zhí)行,下列的命令在EXPDP交互模式下有效。名稱說明ADD_FILE向轉儲文件集中添加轉儲文件CONTINUE_CLIENT返回到記錄模式。如果處于空閑狀態(tài),將重新啟動作業(yè)EXIT_CLIENT退出客戶機會話并使作業(yè)處于運行狀態(tài)后續(xù)ADD_FILE命令的默認文件大小(字節(jié))HELP總結交互命令KILL_JOB分離和刪除作業(yè)PARALLEL更改當前作業(yè)的活動worker的數(shù)目,PARALLEL=<worker的數(shù)目>START_JOB啟動/恢復當前作業(yè)STATUS在默認值為0時,將顯示可用時的新狀態(tài)的情況下,要監(jiān)視的頻率(以秒計)作業(yè)狀態(tài)。STATUS[=interval]STOP_JOB順序關閉執(zhí)行的作業(yè)并退出客戶機,為IMMEDIATE時將立即關閉作業(yè)第8章備份和恢復8.5.1用EXPDP命令實現(xiàn)導出在創(chuàng)建了目錄對象以后,就可以使用EXPDP命令來導出數(shù)據(jù)。下面的語句分別導出某個用戶的表、某個用戶的所有對象和整個數(shù)據(jù)庫。1)使用EXPDP導出SCOTT用戶的EMP表C:\>EXPDPHR/HRDUMPDIRECTORY=DIR1tables=SCOTT.empJOB_NAME=JOB12)使用EXPDP導出SCOTT用戶的所有對象C:\>EXPDPHR/HRDUMPDIRECTORY=DIR1SCHEMAS=SCOTTJOB_NAME=JOB23)使用EXPDP導出整個ORACLE數(shù)據(jù)庫C:\>EXPDPHR/HRDUMPDIRECTORY=DIR1FULL=YJOB_NAME=JOB3第8章備份和恢復8.5.2用IMPDP命令實現(xiàn)導入IMPDP命令的基本語法如下:IMPDP用戶名/口令參數(shù)1=設置值[,參數(shù)2=設置值,……]名稱說明ATTACH連接到現(xiàn)有作業(yè),例如ATTACH[=作業(yè)名]CONTENT指定要加載的數(shù)據(jù),其中有效關鍵字為:(ALL),DATA_ONLY和METADATA_ONLYDIRECTORY供轉儲文件,日志文件和SQL文件使用的目錄對象DUMPFILE要從(expdat.dmp)中導入的轉儲文件的列表ESTIMATE計算作業(yè)估計值,其中有效關鍵字為:(BLOCKS)和STATISTICS第8章備份和恢復8.5.2用IMPDP命令實現(xiàn)導入ENCRYPTION_PASSWORD用于訪問加密列數(shù)據(jù)的口令關鍵字EXCLUDE排除特定的對象類型,例如EXCLUDE=TABLE:EMPFLASHBACK_SCN用于將會話快照設置回以前狀態(tài)的SCNFLASHBACK_TIME用于獲取最接近指定時間的SCN的時間FULL從源導入全部對象HELP顯示幫助消息INCLUDE包括特定的對象類型JOB_NAME要創(chuàng)建的導入作業(yè)的名稱第8章備份和恢復8.5.2用IMPDP命令實現(xiàn)導入LOGFILE日志文件名NETWORK_LINK鏈接到源系統(tǒng)的遠程數(shù)據(jù)庫的名稱NOLOGFILE不寫入日志文件PARALLEL更改當前作業(yè)的活動worker的數(shù)目PARTFILE指定參數(shù)文件QUERY用于導入表的子集的謂詞子句REMAP_DATAFILE在所有DDL語句中重新定義數(shù)據(jù)文件引用REMAP_SCHEMA將一個方案中的對象加載到另一個方案。REMAP_TABLESPACE將表空間對象重新映射到另一個表空間。REUSE_DATAFILES如果表空間已存在,則將其初始化SCHEMAS要導入的方案的列表SKIP_UNUSABLE_INDEXES跳過設置為無用索引狀態(tài)的索引第8章備份和恢復8.5.2用IMPDP命令實現(xiàn)導入SQLFILE將所有的SQLDDL寫入指定的文件STATUS在默認值(0)將顯示可用時的新狀態(tài)的情況下,要監(jiān)視的頻率(以秒計)作業(yè)狀態(tài)TABLE_EXISTS_ACTION導入對象已存在時執(zhí)行的操作,有效關鍵字:(SKIP),APPEND,REPLACE和TRUNCATETABLES標識要導入的表的列表TABLESPACES標識要導入的表空間的列表TRANSFORM要應用于適用對象的元數(shù)據(jù)轉換,有效的轉換關鍵字:SEGMENT_ATTRIBUTES,STORAGEOID和PCTSPACETRANSPORT_DATAFILES按可傳輸模式導入的數(shù)據(jù)文件的列表TRANSPORT_FULL_CHECK驗證所有表的存儲段TRANSPORT_TABLESPACES要從中加載元數(shù)據(jù)的表空間的列表,僅在NETWORK_LINK模式導入操作中有效VERSION要導出的對象的版本,其中有效關鍵字為:(COMPATIBLE),LATEST或任何有效的數(shù)據(jù)庫版本.僅對NETWORK_LINK和SQLFILE有效第8章備份和恢復8.5.2用IMPDP命令實現(xiàn)導入在正確執(zhí)行了EXPDP命令后,就可以使用IMPDP命令來導入數(shù)據(jù)。下面的語句分別導入某個用戶的表、某個用戶的所有對象和整個數(shù)據(jù)庫。1)使用IMPDP導入SCOTT用戶的EMP表C:\>IMPDPHR/HRDUMPDIRECTORY=DIR1tables=SCOTT.empJOB_NAME=JOB12)使用IMPDP導入SCOTT用戶的所有對象C:\>IMPDPHR/HRDUMPDIRECTORY=DIR1SCHEMAS=SCOTTJOB_NAME=JOB23)使用IMPDP導入整個ORACLE數(shù)據(jù)庫C:\>IMPDPHR/HRDUMPDIRECTORY=DIR1FULL=YJOB_NAME=JOB3第8章備份和恢復8.6在OEM中導入導出數(shù)據(jù)在OracleEnterpriseManager平臺上執(zhí)行導入導出數(shù)據(jù)比較簡單,Oracle提供了非常方便的導出導入向導,只需按照步驟做下去即可。第8章備份和恢復8.6.1用導出向導實現(xiàn)邏輯備份在OracleEnterpriseManager平臺上執(zhí)行導出數(shù)據(jù),需在IE瀏覽器中打開OEM的DatabaseControl界面,在“維護”選項卡的“數(shù)據(jù)移動”項中單擊“數(shù)據(jù)行移動”下的“導出到導出文件”超鏈接。在“導出:導出類型”界面中,選擇“表”選項,在下面的主機身份證明中輸入操作系統(tǒng)中具有管理員權限的合法用戶。這里,如果出現(xiàn)用戶名和密碼的錯誤,通常是由于輸入的用戶名不具備“以批量任務登錄”的權限而造成的。此時需要進行簡單的配置:1)從開始菜單進入設置——控制面板——管理工具打開本地安全策略。2)在本地安全策略中,找到本地策略。3)打開其中的用戶權限分配。4)在右邊的列表中選擇“以批量任務登錄”,添加數(shù)據(jù)庫安裝的所在操作系統(tǒng)用戶。第8章備份和恢復8.6.1用導出向導實現(xiàn)邏輯備份單擊繼續(xù)按鈕,進入“導出:表”界面。單擊添加按鈕,出現(xiàn)“導出:添加表”界面。單擊選擇按鈕,返回“導出:表”界面,單擊下一步按鈕。單擊下一步按鈕,出現(xiàn)“導出:選項”界面,此時可以在導出之前估計所需磁盤空間的大小,還可以選擇是否生成日志文件以及所需存儲的目錄對象。這里選擇輸入目錄對象“DIR1”。如果選擇了“立即估計磁盤空間”,則會出現(xiàn)“導出:處理:估計磁盤空間”界面。單擊確定按鈕,返回“導出:選項”界面,此時單擊下一步按鈕,進入“導出:文件”界面。單擊下一步按鈕,進入“導出:調(diào)度”界面。前文說過EXPDP導出時使用作業(yè)這種機制。單擊下一步按鈕,進入“導出:復查”界面。第8章備份和恢復8.6.2用導入向導實現(xiàn)邏輯恢復在OEM中將導出文件導入的過程如下。首先需在IE瀏覽器中打開OEM的DatabaseControl界面,在“維護”選項卡的“數(shù)據(jù)移動”項中單擊“數(shù)據(jù)行移動”下的“從導出文件導入”超鏈接。在“導入:文件”界面中,在選擇目錄對象中選擇“DIR1”目錄對象,輸入文件名導出文件名,如PDAT1.DMP,這里導入類型處選擇“表”單選鈕,在主機身份證明中輸入操作系統(tǒng)中具有管理員權限的合法用戶,如“HR”。單擊繼續(xù)按鈕,出現(xiàn)“導入:表”界面單擊添加按鈕,在選擇SCOTT用戶的EMP表。單擊下一步按鈕,出現(xiàn)“導入:重新映射”界面。單擊下一步按鈕,出現(xiàn)“導入:調(diào)度”界面,在作業(yè)名稱處輸入JOB_IMP,選擇“立即”啟動作業(yè)調(diào)度。確認后單擊提交作業(yè)按鈕,出現(xiàn)“導入:正在進行中”界面。稍候片刻,出現(xiàn)“作業(yè)活動”界面,此時已經(jīng)成功創(chuàng)建作業(yè)。第8章備份和恢復8.7恢復管理器8.7.1恢復管理器簡介8.7.2恢復管理器的相關術語8.7.3使用恢復管理器進行備份8.7.4使用恢復管理器進行恢復第8章備份和恢復8.7.1恢復管理器簡介恢復管理器(RMAN,RecoveryManager)用來備份和還原數(shù)據(jù)庫文件、SPFILE參數(shù)文件、歸檔日志和控制文件等。也可執(zhí)行完全或不完全的數(shù)據(jù)庫恢復。RMAN啟動數(shù)據(jù)庫上的Oracle服務器進程來進行備份或恢復。RMAN有三種不同的用戶接口:命令行方式、圖形界面方式(集成在OEM中的備份管理器)和API方式(集成到第三方的備份軟件中)。RMAN的功能類似物理備份,但比物理備份強大許多,從下面的列出一些特性可以看出。1)備份以數(shù)據(jù)塊為單位,只備份使用過的數(shù)據(jù)庫,節(jié)省備份介質的空間占用2)可以在數(shù)據(jù)塊水平上實現(xiàn)增量備份3)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集4)自動管理備份與恢復相關的元數(shù)據(jù)5)自動檢測是否出現(xiàn)損壞的數(shù)據(jù)塊第8章備份和恢復8.7.2恢復管理器的相關術語1)目標數(shù)據(jù)庫(TARGETDATABASE)在RMAN中,目標數(shù)據(jù)庫指需要備份或恢復的數(shù)據(jù)庫。2)備份集(BACKUPSETS)備份集就是一次備份的集合,它包含本次備份的所有備份片,以Oracle專有的格式保存。一個備份集根據(jù)備份的類型不同,可能構成一個完全備份或增量備份。3)備份片(BACKUPPIECES)一個備份集由若干個備份片組成。每個備份片是一個單獨輸出文件。一個備份片的大小是有限制的;如果沒有大小的限制,備份集就只由一個備份片構成。備份片的大小不能大于你的文件系統(tǒng)所支持的文件長度的最大值。4)映像備份(IMAGECOPIES)不壓縮、不打包、直接COPY物理文件,類似操作系統(tǒng)級的文件備份。而且只能COPY到磁盤,不能到磁帶。5)全備份(FULLBACKUP)指對數(shù)據(jù)文件中使用過的數(shù)據(jù)塊進行備份,沒有使用過的數(shù)據(jù)塊是不做備份的。也就是說RMAN壓縮備份。第8章備份和恢復8.7.2恢復管理器的相關術語6)增量備份(INCREMENTALBACKUP)增量備份是指備份數(shù)據(jù)文件中自從上一次同一級別的或更低級別的備份以來被修改過的數(shù)據(jù)塊。與完全備份相同,增量備份也進行壓縮。增量備份雖然概念很好,備份也很簡單,但恢復起來卻是另外一回事,不僅麻煩而且容易出錯,所以實際中越來越少使用,到了Oracle9i已經(jīng)建議不再使用,以后版本會逐漸取消對增量備份的支持。7)恢復目錄(RECOVERYCATALOG)恢復目錄用于存儲RMAN使用過程中的控制信息,恢復目錄有多個表和存儲過程組成,這些對象位于同一個模式(SCHEMA)下。如果RMAN使用恢復目錄,則不僅需建立到目標數(shù)據(jù)庫的連接,還需建立到恢復目錄所在數(shù)據(jù)庫的連接。如果RMAN使用NOCATALOG方式,則控制信息將記錄在目標數(shù)據(jù)庫的控制文件中,但這樣不安全,因為一旦目標數(shù)據(jù)庫的控制文件損壞就意味著所有的RMAN備份失效。第8章備份和恢復8.7.2恢復管理器的相關術語8)通道(CHANNEL)RMAN在將數(shù)據(jù)備份到備份介質上時,需要建立這些備份介質的通道。一旦建立通道,數(shù)據(jù)就會從該通道備份到指定備份介質上。每次備份或恢復時,可以建立多個通道以加快處理速度。通道的類型決定了要將數(shù)據(jù)備份到那種介質上,有兩種類型的通道:磁盤和磁帶。如果分配的通道為磁盤類型,則說明要將數(shù)據(jù)備份到磁盤上;如分配的通道為磁帶類型,則說明要將數(shù)據(jù)備份到磁帶上。在RMAN中,可以使用SHOWALL命令顯示通道的配置參數(shù)。通道可以自動分配,也可以使用RUN命令手動分配通道。第8章備份和恢復8.7.3使用恢復管理器進行備份RMAN可以使用的備份命令有COPY和BACKUP命令,COPY命令用于數(shù)據(jù)文件的備份,可以將指定的數(shù)據(jù)文件備份到備份介質上,BACKUP命令是數(shù)據(jù)的備份,可以復制一個或多個表空間或者整個數(shù)據(jù)庫中的數(shù)據(jù)。1、RMAN備份前的準備工作1)將目標數(shù)據(jù)庫設置為歸檔模式RMAN進行備份和恢復時,數(shù)據(jù)庫需運行在歸檔模式。如果數(shù)據(jù)庫沒有運行在歸檔模式需設置為歸檔模式。2)創(chuàng)建RMAN用戶和表空間首先,創(chuàng)建恢復目錄所用的表空間。SQL>createtablespacermantsdatafile'C:\oracle\product\10.2.0\oradata\orcl\rmants.ora'size20M;創(chuàng)建RMAN用戶并授權recovery_catalog_owner。SQL>createuserrmanidentifiedbyrmandefaulttablespacermantstemporarytablespacetempquotaunlimitedonrmants;SQL>grantrecovery_catalog_ownertorman;第8章備份和恢復8.7.3使用恢復管理器進行備份3)創(chuàng)建恢復目錄在目錄數(shù)據(jù)庫中創(chuàng)建恢復目錄,下面語句中的rman/rman為剛才創(chuàng)建的用戶名和密碼。C:\>rmancatalogrman/rmanRMAN>createcatalog;上面使用RMAN用戶的默認表空間創(chuàng)建恢復目錄,如果想要使用另外的表空間創(chuàng)建恢復目錄,則可以使用語句“CREATECATALOGTABLESPACE表空間名”。4)連接到目標數(shù)據(jù)庫并注冊數(shù)據(jù)庫C:\>rmantargetsys/orcl@orclRMAN>connectcatalogrman/rmanRMAN>registerdatabase;上面registerdatabae,完成將目標數(shù)據(jù)庫中的控制文件轉到恢復目錄中。如果RMAN使用NOCATALOG(無恢復目錄)方式,則可以使用下面的語句:C:\>rmantargetsys/orclnocatalog或者:C:\>rmantarget\第8章備份和恢復8.7.3使用恢復管理器進行備份2、使用RMAN開始備份1)備份整個數(shù)據(jù)庫在RMAN中備份數(shù)據(jù)庫,使用帶有FORMAT參數(shù)的BACKUPDATABASE命令。其中,F(xiàn)ORMAT參數(shù)指定一個存儲備份文件的目的路徑。FORMAT命令由兩部分組成,即路徑和文件名稱存儲格式。RMAN>backupdatabaseformat'D:\DUMP\ORCL%U.dmp';BACKUPDATABASE命令也可以用在RUN語句中,如下面的語句:RMAN>run{allocatechannelc1typedisk;backupdatabaseformat'D:\DUMP\ORCL%U.dmp'; }第8章備份和恢復8.7.3使用恢復管理器進行備份2)使用RMAN備份表空間RMAN使用BACKUPTABLESPACE命令來備份一個或多個表空間。如下面的語句:RMAN>BACKUPTABLESPACEUSERSformat'D:\DUMP\USERS%U.dmp';BACKUPTABLESPACE命令也可以用在RUN語句中,如下面的語句:RMAN>RUN{allocatechannelc1typedisk;BACKUPTABLESPACEUSERSformat'D:\DUMP\USERS%U.dmp';}第8章備份和恢復8.7.3使用恢復管理器進行備份3)使用RMAN備份數(shù)據(jù)文件RMAN在備份數(shù)據(jù)文件時由許多選項,如可以使用標記(TAG),標記指定備份集或鏡像副本文件所取的名稱,可以用一個有含義的名稱來應用某個備份文件。如下面的語句:RMAN>BACKUPDATABASETAG='WEEK_BACKUP'; 在默認情況下,RMAN在備份時總是會檢查數(shù)據(jù)塊是否損壞,如果希望加快備份速度而不檢查壞塊,可以使用帶有NOCHECKSUM選項的語句,如下面的語句:RMAN>BACKUPNOCHECKSUMDATABASE;RMAN通過指定MAXPIECESIZE選項來限定單個備份片的最大尺寸,MAXSETSIZE選項來限定單個備份集的最大尺寸。如果要指定備份集的最大尺寸,則要確保該值大于最大的數(shù)據(jù)文件的大小,如下面的語句:RMAN>BACKUPDATABASEMAXSETSIZE=1024M;第8章備份和恢復8.7.3使用恢復管理器進行備份備份時可以選擇跳過一些不能訪問、只讀或脫機狀態(tài)的數(shù)據(jù)文件;如下面的語句:RMAN>BACKUPDATABASESKIPINACCESSIBLE;RMAN>BACKUPDATABASESKIPOFFLINE;RMAN>BACKUPDATABASESKIPREADONLY;RMAN>BACKUPDATABASESKIPINACCESSIBLESKIPOFFLINESKIPREADONLY;RMAN還可以使用COPY命令生成數(shù)據(jù)文件的映像備份,如下面的語句:RMAN>RUN{ALLOCATECHANNELC1TYPEDISK;COPYDATAFILE'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'TO'D:\DUMP\USER01.DBF';}第8章備份和恢復8.7.3使用恢復管理器進行備份4)使用RMAN備份控制文件RMAN備份控制文件的語句如下:RMAN>BACKUPCURRENTCONTROLFILE;在備份表空間時,RMAN也支持同時備份控制文件,如下面的語句:RMAN>BACKUPTABLESPACESYSTEMINCLUDECURRENTCONTROLFILE;在備份數(shù)據(jù)庫時,RMAN也支持可以同時備份控制文件,如下面的語句:RMAN>BACKUPDATABASEINCLUDECURRENTCONTROLFILE;5)使用RMAN備份歸檔日志文件RMAN備份所有歸檔日志文件的語句如下:RMAN>BACKUPARCHIVELOGALL;下面的語句只備份最近一周的所有歸檔日志文件:RMAN>BACKUPARCHIVELOGFROMTIME'SYSDATE-7';第8章備份和恢復8.7.3使用恢復管理器進行備份下面只備份日志序列號大于53100的所有歸檔日志文件:RMAN>BACKUPARCHIVELOGFROMSEQUENCE53100;下面在備份數(shù)據(jù)文件時,同時備份所有的歸檔日志文件:RMAN>BACKUPDATABASEPLUSARCHIVELOG;下面在備份表空間時,同時備份所有的歸檔日志文件:RMAN>BACKUPTABLESPACEUSERSPLUSARCHIVELOG;注意在備份歸檔日志文件,RMAN會根據(jù)目標數(shù)據(jù)庫的控制文件中所記錄的歸檔日志文件列表查查找所有的歸檔日志文件,如果某個歸檔日志文件被刪除就會出現(xiàn)RMAN備份失敗的情況。為了避免這種情況,可以使用帶有SKIPINACCESSABLE選項的備份語句,跳過那些不能訪問的歸檔日志文件,只備份那些能夠訪問的歸檔日志文件,如下:RMAN>BACKUPDATABASEPLUSARCHIVELOGSKIPINACCESSABLE;第8章備份和恢復8.7.3使用恢復管理器進行備份3、查看RMAN備份信息RMAN中使用SHOW命令顯示配置參數(shù),如下面的語句:1)顯示RMAN通道的配置參數(shù)RMAN>showall;2)顯示RMAN的當前配置參數(shù)RMAN>showdevicetype;RMAN使用LIST命令列出有關備份集的信息,其命令選項很多,如下面的語句:1)列出當前數(shù)據(jù)庫中所有備份詳細信息RMAN>listbackup;2)列出當前數(shù)據(jù)庫中的過期備份信息RMAN>listexpiredbackup;3)列出所有數(shù)據(jù)文件的備份集RMAN>listbackupofdatabase;4)列出特定表空間的所有數(shù)據(jù)文件備份集RMAN>listbackupoftablespaceuser;第8章備份和恢復8.7.3使用恢復管理器進行備份5)列出控制文件備份集RMAN>listbackupofcontrolfile;6)列出歸檔日志備份集詳細信息RMAN>listbackupofarchivelogall;7)列出歸檔日志備份集簡要信息RMAN>listarchivelogall;
8)列出SPFILE文件備份集RMAN>listbackupofspfile;9)列出數(shù)據(jù)文件映像副本RMAN>listcopyofdatafile5;10)列出控制文件映像副本RMAN>LISTCOPYOFCONTROLFILE;第8章備份和恢復8.7.3使用恢復管理器進行備份RMAN使用REPORT命令對備份進行分析,如哪些數(shù)據(jù)文件需要進行備份,哪些備份已經(jīng)過期等等,如下面的語句:1)報告目標數(shù)據(jù)庫的物理結構RMAN>REPORTSCHEMA;2)報告最近3天沒有備份的數(shù)據(jù)文件RMAN>REPORTNEEDBACKUPDAYS3;3)報告最近3天在USERS表空間上沒有備份的數(shù)據(jù)文件RMAN>REPORTNEEDBACKUPDAYS3TABLESPACEUSERS;4)報告恢復時需要的增量備份個數(shù)超過3次的數(shù)據(jù)文件RMAN>REPORTNEEDBACKUPINCREMENTAL3;第8章備份和恢復8.7.3使用恢復管理器進行備份5)報告?zhèn)浞菸募陀?份的所有數(shù)據(jù)文件RMAN>REPORTNEEDBACKUPREDUNDANCY2DATABASE;RMAN>REPORTNEEDBACKUPREDUNDANCY=2;6)報告如果要恢復到7天前的狀態(tài),還需要備份哪些數(shù)據(jù)文件RMAN>REPORTNEEDBACKUPRECOVERYWINDOWOF7DAYS;7)報告數(shù)據(jù)庫所有不可恢復的數(shù)據(jù)文件RMAN>REPORTUNRECOVERABLE;8)報告?zhèn)浞荽螖?shù)超過2次的陳舊備份RMAN>REPORTOBSOLETEREDUNNDANCY2;9)報告已廢棄的備份RMAN>REPORTOBSOLETE;第8章備份和恢復8.7.4使用恢復管理器進行恢復RMAN備份的數(shù)據(jù)庫只能使用RMAN恢復命令進行恢復。RMAN在恢復目錄中存儲了目標數(shù)據(jù)庫的備份信息,RMAN可以根據(jù)恢復目錄中的信息自動恢復到某一個一致性狀態(tài)。RMAN恢復分為完全恢復和不完全恢復。RMAN用到的恢復命令有RESTORE和RECOVER。其中,RESTORE命令可以將由BACKUP和COPY命令備份的文件復制到目標數(shù)據(jù)庫,RECOVER命令可以對數(shù)據(jù)庫進行同步恢復,通過日志文件對數(shù)據(jù)文件進行更新。RESTORE命令的基本語法如下:RMAN>RESTORE對象名其中,對象名可以為DATAFILE、TABLESPACE、DATABASE、CONTROLFILE、ARCHIVELOG。分別表示對數(shù)據(jù)文件、表空間、數(shù)據(jù)庫、控制文件和歸檔日志文件進行恢復。第8章備份和恢復8.7.4使用恢復管理器進行恢復RECOVER命令進行恢復時,只可以對表空間、數(shù)據(jù)文件和整個數(shù)據(jù)庫進行恢復。其中,表空間只能在數(shù)據(jù)庫正常狀態(tài)下實施恢復,如果數(shù)據(jù)庫無法正常啟動,只能先恢復數(shù)據(jù)文件和數(shù)據(jù)庫。1、恢復控制文件控制文件損壞后,RMAN可以對之進行恢復,如下面的語句:RMAN>RUN{ALLOCATECHANNELC1TYPEDISK;RESTORECONTROL'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'FROMAUTOBACKUP;RESTOREDATABASE;SQL'ALTERDATABASEMOUNT';RECOVERDATABASE;SQL'ALTERDATABASEOPENRESETLOGS';RELEASECHANNELC1;}第8章備份和恢復8.7.4使用恢復管理器進行恢復2、恢復表空間RMAN對表空間恢復之前,必須使該表空間處于脫機狀態(tài),在恢復完成后再將之處于聯(lián)機狀態(tài)。RMAN完成恢復表空間的過程如下面的語句:RMAN>RUN{ALLOCATECHANNELC1TYPEDISK;SQL'ALTERTABLESPACEUSERSOFFLINEIMMEDIATE';RESTORETABLESPACEUSERS;RECOVERTABLESPACEUSERS;SQL'ALTERTABLESPACEUSERSONLINE';}值得注意的是,在執(zhí)行本操作時,數(shù)據(jù)庫必須運行在ARCHIVELOG模式下,否側將不允許對表空間執(zhí)行立即脫機的操作。第8章備份和恢復8.7.4使用恢復管理器進行恢復3、恢復數(shù)據(jù)文件如果表空間中的某一個或幾個數(shù)據(jù)文件損壞,RMAN可以使用SETNEWNAME命令,將數(shù)據(jù)文件還原到指定的新路徑下,然后再通過SWITCHDATA命令將新的路徑信息寫入到控制文件。RMAN>RUN{ALLOCATECHANNELC1TYPEDISK;SQL'ALTERTABLESPACEUSERSOFFLINEIMMEDIATE';SETNEWNAMEFORDATAFILE'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'TO'C:\ORACLE\PRODUCT\10.2.0\ORADATA\USERS01.DBF';SETNEWNAMEFORDATAFILE'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'TO第8章備份和恢復8.7.4使用恢復管理器進行恢復'C:\ORACLE\PRODUCT\10.2.0\ORADATA\USERS02.DBF';RESTORETABLESPACEUSERS;SWITCHDATA;RECOVERTABLESPACEUSERS;SQL'ALTERTABLESPACEUSERSONLINE';}上面的語句對USERS表空間中的USERS01.DBF和USERS02.DBF數(shù)據(jù)文件由原來的路徑還原到上一層目錄。第8章備份和恢復8.7.4使用恢復管理器進行恢復4、恢復全部數(shù)據(jù)庫恢復數(shù)據(jù)庫可以分為兩種情況,一種是數(shù)據(jù)庫運行在非歸檔模式的恢復,另一種是數(shù)據(jù)庫運行在歸檔模式下的恢復。1)對非歸檔模式的數(shù)據(jù)庫做全庫恢復RMAN>RUN{SHUTDOWNIMMEDIATE;STARTUPMOUNT;RESTOREDATABASE;RECOVERDATABASE;ALTERDATABASEOPENRESETLOGS;}2)對歸檔模式的數(shù)據(jù)庫做全庫恢復RMAN>RUN{RESTOREDATABASE;RECOVERDATABASE;ALTERDATABASEOPENRESETLOGS;}第8章備份和恢復8.7.4使用恢復管理器進行恢復5、不完全恢復不完全恢復可以將數(shù)據(jù)庫恢復到某一個一致性的狀態(tài)。不完全恢復只能是基于數(shù)據(jù)庫的恢復,也就是說必須還原所有的數(shù)據(jù)庫文件。不完全恢復有三種方式:基于時間點、基于日志序列號和基于SCN號。1)基于時間點的不完全恢復在明確知道發(fā)生問題的時間點,可以采用基于時間點的不完全恢復。當使用基于時間點的不完全恢復時,需注意日期格式的問題。如下面的語句將數(shù)據(jù)庫恢復到2009年10月12日上午8點整之前。RMAN>RUN{ALLOCATECHANNELC1TYPEDISK;SETUNTILTIME=''T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版體育場館物業(yè)服務合同范本實施細則3篇
- 專屬2024版中央空調(diào)購銷合同書版B版
- 2025年度瓷磚品牌授權代理合同范本3篇
- 2025年智能溫室大棚建設與能源供應服務合同4篇
- 2025年度退休返聘員工勞動合同范本匯編3篇
- 未來教育科技企業(yè)營銷戰(zhàn)略探索
- 疾病防范認識尿毒癥及其早期預警信號
- 科技與天文學的融合未來趨勢與挑戰(zhàn)
- 盆栽種植技巧與節(jié)約生活
- 2025版投資型公寓租賃合同示范文本4篇
- 安徽省淮南四中2025屆高二上數(shù)學期末統(tǒng)考模擬試題含解析
- 保險專題課件教學課件
- 牛津上海版小學英語一年級上冊同步練習試題(全冊)
- 室上性心動過速-醫(yī)學課件
- 建設工程法規(guī)及相關知識試題附答案
- 中小學心理健康教育課程標準
- 四年級上冊脫式計算400題及答案
- 新課標人教版小學數(shù)學六年級下冊集體備課教學案全冊表格式
- 人教精通版三年級英語上冊各單元知識點匯總
- 教案:第三章 公共管理職能(《公共管理學》課程)
- 諾和關懷俱樂部對外介紹
評論
0/150
提交評論