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

下載本文檔

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

文檔簡(jiǎn)介

1第11章數(shù)據(jù)庫備份與恢復(fù)2本章內(nèi)容備份與恢復(fù)概述物理備份與恢復(fù)邏輯備份與恢復(fù)3本章要求了解備份與恢復(fù)的重要性和概念掌握數(shù)據(jù)庫的冷備份方法掌握數(shù)據(jù)庫的熱備份方法掌握數(shù)據(jù)庫完全恢復(fù)方法掌握數(shù)據(jù)不完全恢復(fù)方法掌握邏輯備份和恢復(fù)方法411.1備份與恢復(fù)概述備份與恢復(fù)的基本概念Oracle數(shù)據(jù)庫故障類型及恢復(fù)措施備份的原則與策略恢復(fù)的原則與策略511.1.1備份與恢復(fù)的概念備份與恢復(fù)的作用備份的概念與類型恢復(fù)的概念、類型與恢復(fù)機(jī)制6(1)備份與恢復(fù)的作用數(shù)據(jù)庫系統(tǒng)在運(yùn)行中可能發(fā)生故障,輕則導(dǎo)致事務(wù)異常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中的數(shù)據(jù)部分或全部丟失。數(shù)據(jù)庫備份與恢復(fù)的目的就是為了保證在各種故障發(fā)生后,數(shù)據(jù)庫中的數(shù)據(jù)都能從錯(cuò)誤狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)。7(2)備份的概念與類型概念數(shù)據(jù)庫備份就是對(duì)數(shù)據(jù)庫中部分或全部數(shù)據(jù)進(jìn)行復(fù)制,形成副本,存放到一個(gè)相對(duì)獨(dú)立的設(shè)備上,如磁盤、磁帶,以備將來數(shù)據(jù)庫出現(xiàn)故障時(shí)使用。根據(jù)數(shù)據(jù)備份方式的不同,數(shù)據(jù)庫備份分為:

物理備份:將組成數(shù)據(jù)庫的數(shù)據(jù)文件、重做日志文件、控制文件、初始化參數(shù)文件等操作系統(tǒng)文件進(jìn)行復(fù)制,將形成的副本保存到與當(dāng)前系統(tǒng)獨(dú)立的磁盤或磁帶上。邏輯備份是指利用Oracle提供的導(dǎo)出工具(如Expdp,Export)將數(shù)據(jù)庫中的數(shù)據(jù)抽取出來存放到一個(gè)二進(jìn)制文件中。8根據(jù)數(shù)據(jù)庫備份時(shí)是否關(guān)閉數(shù)據(jù)庫服務(wù)器,物理備份分為:冷備份又稱停機(jī)備份,是指在關(guān)閉數(shù)據(jù)庫的情況下將所有的數(shù)據(jù)庫文件復(fù)制到另一個(gè)磁盤或磁帶上去。熱備份又稱聯(lián)機(jī)備份,是指在數(shù)據(jù)庫運(yùn)行的情況下對(duì)數(shù)據(jù)庫進(jìn)行的備份。要進(jìn)行熱備份,數(shù)據(jù)庫必須運(yùn)行在歸檔日志模式下。9根據(jù)數(shù)據(jù)庫備份的規(guī)模不同,物理備份可分為:完全備份:指對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行備份,包括所有的物理文件。部分備份:對(duì)部分?jǐn)?shù)據(jù)文件、表空間、控制文件、歸檔重做日志文件等進(jìn)行備份。根據(jù)數(shù)據(jù)庫是否運(yùn)行在歸檔模式,物理備份可分為:歸檔備份非歸檔備份10(3)恢復(fù)的概念、類型與恢復(fù)機(jī)制概念數(shù)據(jù)庫恢復(fù)是指在數(shù)據(jù)庫發(fā)生故障時(shí),使用數(shù)據(jù)庫備份還原數(shù)據(jù)庫,使數(shù)據(jù)庫恢復(fù)到無故障狀態(tài)。根據(jù)數(shù)據(jù)庫恢復(fù)時(shí)使用的備份不同,恢復(fù)分為:所謂的物理恢復(fù)就是,利用物理備份來恢復(fù)數(shù)據(jù)庫,即利用物理備份文件恢復(fù)損毀文件,是在操作系統(tǒng)級(jí)別上進(jìn)行的。邏輯恢復(fù)是指利用邏輯備份的二進(jìn)制文件,使用Oracle提供的導(dǎo)入工具(如Impdp,Import)將部分或全部信息重新導(dǎo)入數(shù)據(jù)庫,恢復(fù)損毀或丟失的數(shù)據(jù)。根據(jù)數(shù)據(jù)庫恢復(fù)程度的不同,恢復(fù)可分為:完全恢復(fù):利用備份使數(shù)據(jù)庫恢復(fù)到出現(xiàn)故障時(shí)的狀態(tài)。不完全恢復(fù):利用備份使數(shù)據(jù)庫恢復(fù)到出現(xiàn)故障時(shí)刻之前的某個(gè)狀態(tài)。11數(shù)據(jù)庫的恢復(fù)分3個(gè)步驟進(jìn)行:首先使用一個(gè)完整備份將數(shù)據(jù)庫恢復(fù)到備份時(shí)刻的狀態(tài);然后利用歸檔日志文件和聯(lián)機(jī)重做日志文件中的日志信息,采用前滾技術(shù)(RollForward)重做備份以后已經(jīng)完成并提交的事物;最后利用回滾技術(shù)(RollBack)取消發(fā)生故障時(shí)已寫入日志文件但沒有提交的事物,將數(shù)據(jù)庫恢復(fù)到故障時(shí)刻的狀態(tài)。12在T1和T3時(shí)刻進(jìn)行了兩次數(shù)據(jù)庫備份,在T5時(shí)刻數(shù)據(jù)庫出現(xiàn)故障。如果使用T1時(shí)刻的備份1恢復(fù)數(shù)據(jù)庫,則只能恢復(fù)到T1時(shí)刻的狀態(tài),即不完全恢復(fù);如果使用T3時(shí)刻的備份2恢復(fù)數(shù)據(jù)庫,則可以恢復(fù)到T3時(shí)刻到T5時(shí)刻的任意狀態(tài)(歸檔日志與聯(lián)機(jī)日志)。

1311.1.2Oracle數(shù)據(jù)庫故障類型及

恢復(fù)措施語句故障進(jìn)程故障用戶錯(cuò)誤實(shí)例失敗網(wǎng)絡(luò)故障介質(zhì)故障14語句故障語句故障是指執(zhí)行SQL語句時(shí)發(fā)生的故障。例如,對(duì)不存在的表執(zhí)行SELECT操作、向已無空間可用的表中執(zhí)行INSERT操作等都會(huì)發(fā)生語句故障,Oracle將返回給用戶一個(gè)錯(cuò)誤信息。語句故障通常不需要DBA干預(yù),Oracle會(huì)自動(dòng)回滾產(chǎn)生錯(cuò)誤的SQL語句操作。進(jìn)程故障進(jìn)程故障是指用戶進(jìn)程、服務(wù)器進(jìn)程或數(shù)據(jù)庫后臺(tái)進(jìn)程由于某種原因而意外終止,此時(shí)該進(jìn)程將無法使用,但不影響其他進(jìn)程的運(yùn)行。Oracle的后臺(tái)進(jìn)程PMON能夠自動(dòng)監(jiān)測(cè)并恢復(fù)故障進(jìn)程。如果該進(jìn)程無法恢復(fù),則需要DBA關(guān)閉并重新啟動(dòng)數(shù)據(jù)庫實(shí)例。15用戶錯(cuò)誤用戶錯(cuò)誤是指用戶在使用數(shù)據(jù)庫時(shí)產(chǎn)生的錯(cuò)誤。例如,用戶意外刪除某個(gè)表或表中的數(shù)據(jù)。用戶錯(cuò)誤無法由Oracle自動(dòng)進(jìn)行恢復(fù),管理員可以使用邏輯備份來恢復(fù)。實(shí)例失敗實(shí)例失敗是指由于某種原因?qū)е聰?shù)據(jù)庫實(shí)例無法正常工作。例如,突然斷電導(dǎo)致數(shù)據(jù)庫服務(wù)器立即關(guān)閉、數(shù)據(jù)庫服務(wù)器硬件故障導(dǎo)致操作系統(tǒng)無法運(yùn)行等。實(shí)例失敗時(shí),需要進(jìn)行實(shí)例重新啟動(dòng),在實(shí)例重新啟動(dòng)的過程中,數(shù)據(jù)庫后臺(tái)進(jìn)程SMON會(huì)自動(dòng)對(duì)實(shí)例進(jìn)行恢復(fù)。16網(wǎng)絡(luò)故障網(wǎng)絡(luò)故障是指由于通信軟件或硬件故障,導(dǎo)致應(yīng)用程序或用戶與數(shù)據(jù)庫服務(wù)器之間的通信中斷。數(shù)據(jù)庫的后臺(tái)進(jìn)程PMON將自動(dòng)監(jiān)測(cè)并處理意外中斷的用戶進(jìn)程和服務(wù)器進(jìn)程。介質(zhì)故障介質(zhì)故障是指由于各種原因引起的數(shù)據(jù)庫數(shù)據(jù)文件、控制文件或重做日志文件的損壞,導(dǎo)致系統(tǒng)無法正常運(yùn)行。例如,磁盤損壞導(dǎo)致文件系統(tǒng)被破壞。介質(zhì)故障是數(shù)據(jù)庫備份與恢復(fù)中主要關(guān)心的故障類型,需要管理員提前做好數(shù)據(jù)庫的備份,否則將導(dǎo)致數(shù)據(jù)庫無法恢復(fù)。1711.1.3備份原則與策略在剛建立數(shù)據(jù)庫時(shí),應(yīng)該立即進(jìn)行數(shù)據(jù)庫的完全備份;將所有的數(shù)據(jù)庫備份保存在一個(gè)獨(dú)立磁盤上(必須是與當(dāng)前數(shù)據(jù)庫系統(tǒng)正在使用的文件不同的磁盤);應(yīng)該保持控制文件的多路復(fù)用,且控制文件的副本應(yīng)該存放在不同磁盤控制器下的不同磁盤設(shè)備上;應(yīng)該保持多個(gè)聯(lián)機(jī)日志文件組,每個(gè)組中至少應(yīng)該保持兩個(gè)日志成員,同一日志組的多個(gè)成員應(yīng)該分散存放在不同磁盤上;至少保證兩個(gè)歸檔重做日志文件的歸檔目標(biāo),不同歸檔目標(biāo)應(yīng)該分散于不同磁盤;如果條件允許,盡量保證數(shù)據(jù)庫運(yùn)行于歸檔模式;根據(jù)數(shù)據(jù)庫數(shù)據(jù)變化的頻率情況確定數(shù)據(jù)庫備份規(guī)律;18在歸檔模式下,當(dāng)數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時(shí),如創(chuàng)建或刪除表空間、添加數(shù)據(jù)文件、重做日志文件等,應(yīng)該備份數(shù)據(jù)庫的控制文件;在非歸檔模式下,當(dāng)數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時(shí),應(yīng)該進(jìn)行數(shù)據(jù)庫的完全備份;在歸檔模式下,對(duì)于經(jīng)常使用的表空間,可以采用表空間備份方法提高備份效率;在歸檔模式下,通常不需要對(duì)聯(lián)機(jī)重做日志文件進(jìn)行備份;使用RESETLOGS方式打開數(shù)據(jù)庫后,應(yīng)該進(jìn)行一個(gè)數(shù)據(jù)庫的完全備份;對(duì)于重要的表中的數(shù)據(jù),可以采用邏輯備份方式進(jìn)行備份。1911.1.4恢復(fù)原則與策略根據(jù)數(shù)據(jù)庫介質(zhì)故障原因,確定采用完全介質(zhì)恢復(fù)還是不完全介質(zhì)恢復(fù);如果數(shù)據(jù)庫運(yùn)行在非歸檔模式,則當(dāng)介質(zhì)故障發(fā)生時(shí),只能進(jìn)行數(shù)據(jù)庫的不完全恢復(fù),將數(shù)據(jù)庫恢復(fù)到最近的備份時(shí)刻的狀態(tài);如果數(shù)據(jù)庫運(yùn)行在歸檔模式,則當(dāng)一個(gè)或多個(gè)數(shù)據(jù)文件損壞時(shí),可以使用備份的數(shù)據(jù)文件進(jìn)行完全或不完全恢復(fù)數(shù)據(jù)庫;如果數(shù)據(jù)庫運(yùn)行在歸檔模式,則當(dāng)數(shù)據(jù)庫的控制文件損壞時(shí),可以使用備份的控制文件實(shí)現(xiàn)數(shù)據(jù)庫的不完全恢復(fù);如果數(shù)據(jù)庫運(yùn)行在歸檔模式,則當(dāng)數(shù)據(jù)庫的聯(lián)機(jī)日志文件損壞時(shí),可以使用備份的數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件不完全恢復(fù)數(shù)據(jù)庫;如果執(zhí)行了不完全恢復(fù),則當(dāng)重新打開數(shù)據(jù)庫時(shí)應(yīng)該使用RESETLOGS選項(xiàng)。2011.2物理備份與恢復(fù)冷備份熱備份非歸檔模式下數(shù)據(jù)庫的恢復(fù)歸檔模式下數(shù)據(jù)庫的完全恢復(fù)歸檔模式下數(shù)據(jù)庫的不完全恢復(fù)利用OEM進(jìn)行物理備份與恢復(fù)212211.2.1冷備份概述關(guān)閉數(shù)據(jù)庫實(shí)例。用操作系統(tǒng)的實(shí)用工具備份所有的物理文件,包括數(shù)據(jù)文件、控制文件、聯(lián)機(jī)重做日志文件等。23關(guān)閉數(shù)據(jù)庫,開始備份故障時(shí)刻

備份恢復(fù)

重裝備份副本恢復(fù)丟失數(shù)據(jù)備份完成如果沒有啟用歸檔模式,數(shù)據(jù)庫不能恢復(fù)到備份完成后的任意時(shí)刻。如果啟用歸檔模式,從冷備份結(jié)束后到出現(xiàn)故障這段時(shí)間的數(shù)據(jù)庫恢復(fù),可以利用聯(lián)機(jī)日志文件和歸檔日志文件實(shí)現(xiàn)。24冷備份步驟確定數(shù)據(jù)庫各種物理文件關(guān)閉數(shù)據(jù)庫備份所有相關(guān)的數(shù)據(jù)庫物理文件重新啟動(dòng)數(shù)據(jù)庫25啟動(dòng)SQL*Plus,以SYSDBA身份登錄數(shù)據(jù)庫查詢當(dāng)前數(shù)據(jù)庫所有數(shù)據(jù)文件、控制文件、聯(lián)機(jī)重做日志文件的位置。SELECTfile_nameFROMdba_data_files;SELECTmemberFROMv$logfile;SELECTvalueFROMv$parameterWHEREname='control_files';關(guān)閉數(shù)據(jù)庫SHUTDOWNIMMEDIATE復(fù)制所有數(shù)據(jù)文件、聯(lián)機(jī)重做日志文件以及控制文件到備份磁盤。重新啟動(dòng)數(shù)據(jù)庫STARTUP2611.2.2熱備份數(shù)據(jù)庫完全熱備份的步驟:?jiǎn)?dòng)SQL*Plus,以SYSDBA身份登錄數(shù)據(jù)庫將數(shù)據(jù)庫設(shè)置為歸檔模式以表空間為單位,進(jìn)行數(shù)據(jù)文件備份備份控制文件備份其他物理文件27備份數(shù)據(jù)文件查看當(dāng)前數(shù)據(jù)庫有哪些表空間,以及每個(gè)表空間中有哪些數(shù)據(jù)文件。SELECTtablespace_name,file_nameFROMdba_data_filesORDERBYtablespace_name;分別對(duì)每個(gè)表空間中的數(shù)據(jù)文件進(jìn)行備份,其方法為將需要備份的表空間(如USERS)設(shè)置為備份狀態(tài)。ALTERTABLESPACEUSERSBEGINBACKUP;將表空間中所有的數(shù)據(jù)文件復(fù)制到備份磁盤。結(jié)束表空間的備份狀態(tài)。ALTERTABLESPACEUSERSENDBACKUP;對(duì)數(shù)據(jù)庫中所有表空間分別采用該步驟進(jìn)行備份。28備份控制文件當(dāng)執(zhí)行了下列操作時(shí)應(yīng)該進(jìn)行控制文件備份ALTERDATABASEADDLOGFILEALERTDATABASEADDLOGFILEMEMBERALTERDATABASERENAMEFILEALTERDATABASEDROPLOGFILEGROUPALTERDATABASEDROPLOGFILEMEMBERCREATETABLESPACEALTERTABLESPACEADDDATAFILEALTERTABLESPACERENAMEDATAFILEDROPTABLESPACE29控制文件備份方法將控制文件備份為二進(jìn)制文件。ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\BACKUP\CONTROL.BKP';

將控制文件備份為文本文件。ALTERDATABASEBACKUPCONTROLFILETOTRACE;

30其他文件的備份歸檔當(dāng)前的聯(lián)機(jī)重做日志文件。ALTERSYSTEMARCHIVELOGCURRENT;備份歸檔重做日志文件,將所有的歸檔重做日志文件復(fù)制到備份磁盤中。備份初始化參數(shù)文件,將初始化參數(shù)文件復(fù)制到備份磁盤中。3111.2.3非歸檔模式下數(shù)據(jù)庫的恢復(fù)非歸檔模式下數(shù)據(jù)庫的恢復(fù)主要指利用非歸檔模式下的冷備份恢復(fù)數(shù)據(jù)庫。步驟為:關(guān)閉數(shù)據(jù)庫。SHUTDOWNIMMEDIATE將備份的所有數(shù)據(jù)文件、控制文件、聯(lián)機(jī)重做日志文件還原到原來所在的位置。重新啟動(dòng)數(shù)據(jù)庫。STARTUP注意非歸檔模式下的數(shù)據(jù)庫恢復(fù)是不完全恢復(fù),只能將數(shù)據(jù)庫恢復(fù)到最近一次完全冷備份的狀態(tài)。

3211.2.4歸檔模式下數(shù)據(jù)庫的完全恢復(fù)概述數(shù)據(jù)庫級(jí)完全恢復(fù)表空間級(jí)完全恢復(fù)數(shù)據(jù)文件級(jí)完全恢復(fù)數(shù)據(jù)庫完全恢復(fù)示例33(1)概述概念歸檔模式下數(shù)據(jù)庫的完全恢復(fù)是指歸檔模式下一個(gè)或多個(gè)數(shù)據(jù)文件損壞,利用熱備份的數(shù)據(jù)文件替換損壞的數(shù)據(jù)文件,再結(jié)合歸檔日志文件和聯(lián)機(jī)重做日志文件,采用前滾技術(shù)重做自備份以來的所有改動(dòng),采用回滾技術(shù)回滾未提交的操作,以恢復(fù)到數(shù)據(jù)庫故障時(shí)刻的狀態(tài)。34

恢復(fù)的級(jí)別數(shù)據(jù)庫級(jí)完全恢復(fù):主要應(yīng)用于所有或多數(shù)數(shù)據(jù)文件損壞的恢復(fù);表空間級(jí)完全恢復(fù):對(duì)指定表空間中的數(shù)據(jù)文件進(jìn)行恢復(fù);數(shù)據(jù)文件級(jí)完全恢復(fù):是針對(duì)特定的數(shù)據(jù)文件進(jìn)行恢復(fù)。

注意數(shù)據(jù)庫級(jí)的完全恢復(fù)只能在數(shù)據(jù)庫裝載但沒有打開的狀態(tài)下進(jìn)行,而表空間級(jí)完全恢復(fù)和數(shù)據(jù)文件級(jí)完全恢復(fù)可以在數(shù)據(jù)庫處于裝載狀態(tài)或打開的狀態(tài)下進(jìn)行。

35歸檔模式下數(shù)據(jù)庫完全恢復(fù)的基本語法:RECOVER[AUTOMATIC][FROM'location'][DATABASE|TABLESPACEtspname|DATAFILEdfname]參數(shù)說明

AUTOMATIC:進(jìn)行自動(dòng)恢復(fù),不需要DBA提供重做日志文件名稱;location:制定歸檔重做日志文件的位置。默認(rèn)為數(shù)據(jù)庫默認(rèn)的歸檔路徑。36(2)數(shù)據(jù)庫級(jí)完全恢復(fù)

數(shù)據(jù)庫級(jí)完全恢復(fù)的步驟:如果數(shù)據(jù)庫沒有關(guān)閉,則強(qiáng)制關(guān)閉數(shù)據(jù)庫。SHUTDOWNABORT利用備份的數(shù)據(jù)文件還原所有損壞的數(shù)據(jù)文件。將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT執(zhí)行數(shù)據(jù)庫恢復(fù)命令。RECOVERDATABASE打開數(shù)據(jù)庫。ALTERDATABASEOPEN;

37(3)表空間級(jí)完全恢復(fù)

以EXAMPLE表空間的數(shù)據(jù)文件example01.dbf損壞為例模擬表空級(jí)的完全恢復(fù)。數(shù)據(jù)庫處于裝載狀態(tài)下的恢復(fù)數(shù)據(jù)庫處于打開狀態(tài)下的恢復(fù)

38數(shù)據(jù)庫處于裝載狀態(tài)下的恢復(fù)如果數(shù)據(jù)庫沒有關(guān)閉,則強(qiáng)制關(guān)閉數(shù)據(jù)庫。SHUTDOWNABORT利用備份的數(shù)據(jù)文件example01.dbf還原損壞的數(shù)據(jù)文件example01.dbf。將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT執(zhí)行表空間恢復(fù)命令。RECOVERTABLESPACEEXAMPLE打開數(shù)據(jù)庫。ALTERDATABASEOPEN;39數(shù)據(jù)庫處于打開狀態(tài)下的恢復(fù)①如果數(shù)據(jù)庫已經(jīng)關(guān)閉,則將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT②將損壞的數(shù)據(jù)文件設(shè)置為脫機(jī)狀態(tài)。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;③打開數(shù)據(jù)庫。

ALTERDATABASEOPEN;④將損壞的數(shù)據(jù)文件所在的表空間脫機(jī)。ALTERTABLESPACEEXAMPLEOFFLINEFORRECOVER;40⑤利用備份的數(shù)據(jù)文件example01.dbf還原損壞的數(shù)據(jù)文件example01.dbf。⑥執(zhí)行表空間恢復(fù)命令。RECOVERTABLESPACEEXAMPLE;⑦將表空間聯(lián)機(jī)。ALTERTABLESPACEEXAMPLEONLINE;如果數(shù)據(jù)文件損壞時(shí)數(shù)據(jù)庫正處于打開狀態(tài),則可以直接執(zhí)行步驟(4)~(7)。41(4)數(shù)據(jù)文件級(jí)完全恢復(fù)

以數(shù)據(jù)文件D:\oracle\product\10.2.0\oradata\orcl\example01.dbf損壞為例模擬數(shù)據(jù)文件級(jí)的完全恢復(fù)。數(shù)據(jù)庫處于裝載狀態(tài)下的恢復(fù)數(shù)據(jù)庫處于打開狀態(tài)下的恢復(fù)42數(shù)據(jù)庫處于裝載狀態(tài)下的恢復(fù)如果數(shù)據(jù)庫沒有關(guān)閉,則強(qiáng)制關(guān)閉數(shù)據(jù)庫。SHUTDOWNABORT利用備份的數(shù)據(jù)文件example01.dbf還原損壞的數(shù)據(jù)文件example01.dbf。將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT執(zhí)行數(shù)據(jù)文件恢復(fù)命令。RECOVERDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF';將數(shù)據(jù)文件聯(lián)機(jī)。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE打開數(shù)據(jù)庫。ALTERDATABASEOPEN;43數(shù)據(jù)庫處于打開狀態(tài)下的恢復(fù)如果數(shù)據(jù)庫已經(jīng)關(guān)閉,則將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT將損壞的數(shù)據(jù)文件設(shè)置為脫機(jī)狀態(tài)。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'OFFLINE;打開數(shù)據(jù)庫。

ALTERDATABASEOPEN;利用備份的數(shù)據(jù)文件example01.dbf還原損壞的數(shù)據(jù)文件example01.dbf。44執(zhí)行數(shù)據(jù)文件恢復(fù)命令。RECOVERDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF';將數(shù)據(jù)文件聯(lián)機(jī)。ALTERDATABASEDATAFILE'D:\oracle\product\10.2.0\oradata\orcl\EXAMPLE01.DBF'ONLINE;如果數(shù)據(jù)文件損壞時(shí)數(shù)據(jù)庫正處于打開狀態(tài),則可以直接執(zhí)行步驟(2)、(4)~(6)。45(5)數(shù)據(jù)庫完全恢復(fù)示例

以SYSTEM表空間的數(shù)據(jù)文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf損壞為例演示歸檔模式下的完全恢復(fù)操作。

首先進(jìn)行一次歸檔模式下的數(shù)據(jù)庫完整備份。以SYSDBA身份登錄數(shù)據(jù)庫進(jìn)行下列操作。CREATETABLEtest_rec(IDNUMBERPRIMARYKEY,NAMECHAR(20))TABLESPACESYSTEM;INSERTINTOtest_recVALUES(1,'ZHANGSAN');COMMIT;INSERTINTOtest_recVALUES(2,'LISI');COMMIT;ALTERSYSTEMSWITCHLOGFILE;SELECT*FROMtest_rec;SHUTDOWNABORT;46刪除SYSTEM表空間的數(shù)據(jù)文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf,以模擬數(shù)據(jù)文件損壞的情形。用備份的數(shù)據(jù)文件D:\oracle\product\10.2.0\oradata\orcl\system01.dbf還原損壞(本文為被刪除)的數(shù)據(jù)文件。執(zhí)行恢復(fù)操作。由于SYSTEM表空間不能在數(shù)據(jù)庫打開后進(jìn)行恢復(fù),因此只能在數(shù)據(jù)庫處于裝載狀態(tài)時(shí)進(jìn)行恢復(fù)。STARTUPMOUNTRECOVERDATABASE;ALTERDATABASEOPEN;SELECT*FROMtest_rec;4711.2.5歸檔模式下數(shù)據(jù)庫的不完全恢復(fù)數(shù)據(jù)庫不完全恢復(fù)概述數(shù)據(jù)文件損壞的數(shù)據(jù)庫不完全恢復(fù)的步驟數(shù)據(jù)庫不完全恢復(fù)的示例控制文件損壞的數(shù)據(jù)庫不完全恢復(fù)48(1)數(shù)據(jù)庫不完全恢復(fù)概述概念在歸檔模式下,數(shù)據(jù)庫的不完全恢復(fù)主要是指歸檔模式下數(shù)據(jù)文件損壞后,沒有將數(shù)據(jù)庫恢復(fù)到故障時(shí)刻的狀態(tài)。在進(jìn)行數(shù)據(jù)庫不完全恢復(fù)之前,首先確保對(duì)數(shù)據(jù)庫進(jìn)行了完全備份;在進(jìn)行數(shù)據(jù)文件損壞的不完全恢復(fù)時(shí)必須先使用完整的數(shù)據(jù)文件備份將數(shù)據(jù)庫恢復(fù)到備份時(shí)刻的狀態(tài)。在不完全恢復(fù)后,需要使用RESETLOGS選項(xiàng)打開數(shù)據(jù)庫,原來的重做日志文件被清空,新的重做日志文件序列號(hào)重新從1開始,因此原來的歸檔日志文件都不再起作用了,應(yīng)該移走或刪除;打開數(shù)據(jù)庫后,應(yīng)該及時(shí)備份數(shù)據(jù)庫,因?yàn)樵瓉淼膫浞荻家呀?jīng)無效了。49不完全恢復(fù)類型:基于時(shí)間的不完全恢復(fù):將數(shù)據(jù)庫恢復(fù)到備份與故障時(shí)刻之間的某個(gè)特定時(shí)刻?;诔蜂N的不完全恢復(fù):數(shù)據(jù)庫的恢復(fù)隨用戶輸入CANCEL命令而中止?;赟CN的不完全恢復(fù):將數(shù)據(jù)庫恢復(fù)到指定的SCN值時(shí)的狀態(tài)。50不完全恢復(fù)的語法為RECOVER[AUTOMATIC][FROM'location'][DATABASE][UNTILTIMEtime|CANCEL|CHANGEscn][USINGBACKUPCONTROLFILE]51(2)數(shù)據(jù)文件損壞的數(shù)據(jù)庫不完全恢復(fù)的步驟如果數(shù)據(jù)庫沒有關(guān)閉,則強(qiáng)制關(guān)閉數(shù)據(jù)庫。SHUTDOWNABORT用備份的所有數(shù)據(jù)文件還原當(dāng)前數(shù)據(jù)庫的所有數(shù)據(jù)文件,即將數(shù)據(jù)庫的所有數(shù)據(jù)文件恢復(fù)到備份時(shí)刻的狀態(tài)。將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT執(zhí)行數(shù)據(jù)文件的不完全恢復(fù)命令。RECOVERDATABASEUNTILTIMEtime;(基于時(shí)間恢復(fù))RECOVERDATABASEUNTILCANCEL;(基于撤銷恢復(fù))RECOVERDATABASEUNTILCHANGEscn;(基于SCN恢復(fù))可以通過查詢數(shù)據(jù)字典視圖V$LOG_HISTORY獲得時(shí)間和SCN的信息。不完全恢復(fù)完成后,使用RESETLOGS選項(xiàng)啟動(dòng)數(shù)據(jù)庫。ALTERDATABASEOPENRESETLOGS;52(3)數(shù)據(jù)庫不完全恢復(fù)的示例53(4)控制文件損壞的數(shù)據(jù)庫不完全恢復(fù)如果數(shù)據(jù)庫沒有關(guān)閉,則強(qiáng)制關(guān)閉數(shù)據(jù)庫。SHUTDOWNABORT用備份的所有數(shù)據(jù)文件和控制文件還原當(dāng)前數(shù)據(jù)庫的所有數(shù)據(jù)文件、控制文件,即將數(shù)據(jù)庫的所有數(shù)據(jù)文件、控制文件恢復(fù)到備份時(shí)刻的狀態(tài)。將數(shù)據(jù)庫啟動(dòng)到MOUNT狀態(tài)。STARTUPMOUNT執(zhí)行不完全恢復(fù)命令。RECOVERDATABASEUNTILTIMEtimeUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCANCELUSINGBACKUPCONTROLFILE;RECOVERDATABASEUNTILCHANGEscnUSINGBACKUPCONTROLFILE;不完全恢復(fù)完成后,使用RESETLOGS選項(xiàng)啟動(dòng)數(shù)據(jù)庫。ALTERDATABASEOPENRESETLOGS;5411.2.6利用OEM進(jìn)行物理備份與恢復(fù)備份與恢復(fù)設(shè)置備份數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫55(1)備份與恢復(fù)設(shè)置

565758(2)備份數(shù)據(jù)庫5960616263(3)恢復(fù)數(shù)據(jù)庫6465666711.3邏輯備份與恢復(fù)邏輯備份與恢復(fù)概述使用Expdp導(dǎo)出數(shù)據(jù)使用Impdp導(dǎo)入數(shù)據(jù)使用OEM導(dǎo)出、導(dǎo)入數(shù)據(jù)6811.3.1邏輯備份與恢復(fù)概述邏輯備份與恢復(fù)的特點(diǎn)數(shù)據(jù)泵技術(shù)69(1)邏輯備份與恢復(fù)的特點(diǎn)概述邏輯備份是指利用Oracle提供的導(dǎo)出工具,將數(shù)據(jù)庫中選定的記錄集或數(shù)據(jù)字典的邏輯副本以二進(jìn)制文件的形式存儲(chǔ)到操作系統(tǒng)中。邏輯備份的二進(jìn)制文件稱為轉(zhuǎn)儲(chǔ)文件,以dmp格式存儲(chǔ)。邏輯恢復(fù)是指利用Oracle提供的導(dǎo)入工具將邏輯備份形成的轉(zhuǎn)儲(chǔ)文件導(dǎo)入數(shù)據(jù)庫內(nèi)部,進(jìn)行數(shù)據(jù)庫的邏輯恢復(fù)。與物理備份與恢復(fù)不同,邏輯備份與恢復(fù)必須在數(shù)據(jù)庫運(yùn)行的狀態(tài)下進(jìn)行,因此當(dāng)數(shù)據(jù)庫發(fā)生介質(zhì)損壞而無法啟動(dòng)時(shí),不能利用邏輯備份恢復(fù)數(shù)據(jù)庫。因此,數(shù)據(jù)庫備份與恢復(fù)是以物理備份與恢復(fù)為主,邏輯備份與恢復(fù)為輔的。70邏輯備份與恢復(fù)有以下特點(diǎn)及用途:可以在不同版本的數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)移植,可以從Oracle數(shù)據(jù)庫的低版本移植到高版本;可以在不同操作系統(tǒng)上運(yùn)行的數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)移植,例如可以從WindowsNT系統(tǒng)遷移到Unix系統(tǒng)等;可以在數(shù)據(jù)庫模式之間傳遞數(shù)據(jù),即先將一個(gè)模式中的對(duì)象進(jìn)行備份,然后再將該備份導(dǎo)入到數(shù)據(jù)庫其他模式中;數(shù)據(jù)的導(dǎo)出與導(dǎo)入與數(shù)據(jù)庫物理結(jié)構(gòu)沒有關(guān)系,是以對(duì)象為單位進(jìn)行的,這些對(duì)象在物理上可能存儲(chǔ)于不同的文件中;對(duì)數(shù)據(jù)庫進(jìn)行一次邏輯備份與恢復(fù)操作能重新組織數(shù)據(jù),消除數(shù)據(jù)庫中的鏈接及磁盤碎片,從而使數(shù)據(jù)庫的性能有較大的提高;除了進(jìn)行數(shù)據(jù)的備份與恢復(fù)外,還可以進(jìn)行數(shù)據(jù)庫對(duì)象定義、約束、權(quán)限等的備份與恢復(fù)。71(2)數(shù)據(jù)泵技術(shù)概述在Oracle9i及其之前的數(shù)據(jù)庫版本中提供了Export和Import實(shí)用程序用于邏輯備份與恢復(fù)。在Oracle10g數(shù)據(jù)庫中又推出了數(shù)據(jù)泵技術(shù),即DataPumpExport(Expdp)和DataPumpImport(Impdp)實(shí)用程序用于邏輯備份與恢復(fù)。需要注意,這兩類邏輯備份與恢復(fù)實(shí)用程序之間不兼容。使用Export備份的轉(zhuǎn)儲(chǔ)文件,不能使用Impdp進(jìn)行導(dǎo)入;同樣,使用Expdp備份的轉(zhuǎn)儲(chǔ)文件,也不能使用Import工具進(jìn)行導(dǎo)入。72兩類邏輯備份與恢復(fù)實(shí)用程序比較Export和Import是客戶端實(shí)用程序,可以在服務(wù)器端使用,也可以在客戶端使用;Expdp和Impdp是服務(wù)器端實(shí)用程序,只能在數(shù)據(jù)庫服務(wù)器端使用。利用Expdp,Impdp在服務(wù)器端多線程并行地執(zhí)行大量數(shù)據(jù)的導(dǎo)出與導(dǎo)入操作。數(shù)據(jù)泵技術(shù)具有重新啟動(dòng)作業(yè)的能力,即當(dāng)發(fā)生數(shù)據(jù)泵作業(yè)故障時(shí),DBA或用戶進(jìn)行干預(yù)修正后,可以發(fā)出數(shù)據(jù)泵重新啟動(dòng)命令,使作業(yè)從發(fā)生故障的位置繼續(xù)進(jìn)行。73使用數(shù)據(jù)泵技術(shù)準(zhǔn)備工作在使用Expdp,Impdp程序之前需要?jiǎng)?chuàng)建DIRECTORY對(duì)象,并將該對(duì)象的READ,WRITE權(quán)限授予用戶。例如:CREATEORREPLACEDIRECTORYdumpdirAS'D:\ORACLE\BACKUP';

GRANTREAD,WRITEONDIRECTORYdumpdirTOSCOTT;如果用戶要導(dǎo)出或?qū)敕峭J降膶?duì)象,還需要具有EXP_FULL_DATABASE和IMP_FULL_DATABASE權(quán)限。例如:GRANTEXP_FULL_DATABASE,IMP_FULL_DATABASETOSCOTT;

7411.3.2使用Expdp導(dǎo)出數(shù)據(jù)Expdp調(diào)用接口Expdp導(dǎo)出模式Expdp幫助及參數(shù)Expdp應(yīng)用實(shí)例75(1)Expdp調(diào)用接口

命令行接口(Command-LineInterface):在命令行中直接指定參數(shù)設(shè)置。參數(shù)文件接口(ParameterFileInterface):將需要的參數(shù)設(shè)置放到一個(gè)文件中,在命令行中用PARFILE參數(shù)指定參數(shù)文件。交互式命令接口(Interactive-CommandInterface):用戶可以通過交互命令進(jìn)行導(dǎo)出操作管理。76(2)Expdp導(dǎo)出模式

全庫導(dǎo)出模式(FullExportMode):通過參數(shù)FULL指定,導(dǎo)出整個(gè)數(shù)據(jù)庫。模式導(dǎo)出模式(SchemaMode):通過參數(shù)SCHEMAS指定,是默認(rèn)的導(dǎo)出模式,導(dǎo)出指定模式中的所有對(duì)象。表導(dǎo)出模式(TableMode):通過參數(shù)TABLES指定,導(dǎo)出指定模式中指定的所有表、分區(qū)及其依賴對(duì)象。表空間導(dǎo)出模式(TablespaceMode):通過參數(shù)TABLESPACES指定,導(dǎo)出指定表空間中所有表及其依賴對(duì)象的定義和數(shù)據(jù)。傳輸表空間導(dǎo)出模式(TransportableTablespace):通過參數(shù)TRANSPORT_TABLESPACES指定,導(dǎo)出指定表空間中所有表及其依賴對(duì)象的定義。通過該導(dǎo)出模式以及相應(yīng)導(dǎo)入模式,可以實(shí)現(xiàn)將一個(gè)數(shù)據(jù)庫表空間的數(shù)據(jù)文件復(fù)制到另一個(gè)數(shù)據(jù)庫中。77(3)Expdp幫助及參數(shù)

獲取Expdp幫助信息C:\>expdpHELP=YExpdp參數(shù)78(4)Expdp應(yīng)用實(shí)例

命令行方式導(dǎo)出:表導(dǎo)出模式導(dǎo)出scott模式下的emp表和dept表,轉(zhuǎn)儲(chǔ)文件名稱為emp_dept.dmp,日志文件命名為emp_dept.log,作業(yè)命名為emp_dept_job,導(dǎo)出操作啟動(dòng)3個(gè)進(jìn)程。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptLOGFILE=emp_dept.logJOB_NAME=emp_dept_jobPARALLEL=3命令行方式導(dǎo)出:模式導(dǎo)出模式。導(dǎo)出scott模式下的所有對(duì)象及其數(shù)據(jù)。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logSCHEMAS=scottJOB_NAME=exp_scott_schema79命令行方式導(dǎo)出:表空間導(dǎo)出模式。導(dǎo)出EXAMPLE,USERS表空間中的所有對(duì)象及其數(shù)據(jù)。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users命令行方式導(dǎo)出:傳輸表空間導(dǎo)出模式導(dǎo)出EXAMPLE,USERS表空間中數(shù)據(jù)對(duì)象的定義信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tts.dmpTRANSPORT_TABLESPACES=example,usersTRANSPORT_FULL_CHECK=YLOGFILE=tts.log注意:當(dāng)前用戶不能使用傳輸表空間導(dǎo)出模式導(dǎo)出自己的默認(rèn)表空間。80命令行方式導(dǎo)出:數(shù)據(jù)庫導(dǎo)出模式將當(dāng)前數(shù)據(jù)全部導(dǎo)出,不寫日志文件。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式導(dǎo)出:按條件查詢導(dǎo)出導(dǎo)出scott.emp表中部門號(hào)大于10,且工資大于2000的員工信息。C:\>expdpscott/tigerDIRECTORY=dumpdirDUMPFILE=exp2.dmpTABLES=empQUERY='emp:"WHEREdeptno=10ANDsal>2000"'NOLOGFILE=Y81參數(shù)文件方式導(dǎo)出首先創(chuàng)建一個(gè)名為scott.txt的參數(shù)文件,并存放到d:\backup目錄下,其內(nèi)容為:SCHEMAS=scottDUMPFILE=filter.dmpDIRECTORY=dumpdirLOGFILE=filter.logINCLUDE=TABLE:"IN('EMP','DEPT')"INCLUDE=INDEX:"LIKE'EMP%'"INCLUDE=PROCEDURE然后在命令行中執(zhí)行下列命令。C:\>expdpscott/tigerPARFILE=d:\scott.txt

82交互命令方式導(dǎo)出在當(dāng)前運(yùn)行作業(yè)的終端中按Ctrl+C組合鍵,進(jìn)入交互式命令狀態(tài);在另一個(gè)非運(yùn)行導(dǎo)出作業(yè)的終端中,通過導(dǎo)出作業(yè)名稱來進(jìn)行導(dǎo)出作業(yè)的管理。83示例執(zhí)行一個(gè)作業(yè)。C:\>expdpscott/tigerFULL=YDIRECTORY=dumpdirDUMPFILE=fulldb1.dmp,fulldb2.dmpFILESIZE=2GPARALLEL=3LOGFILE=expfull.logJOB_NAME=expfull作業(yè)開始執(zhí)行后,按Ctrl+C組合鍵。在交互模式中輸入導(dǎo)出作業(yè)的管理命令,根據(jù)提示進(jìn)行操作。

Export>STOP_JOB=IMMEDIATEAreyousureyouwishtostopthisjob([Y]/N):Y8411.3.3使用Impdp導(dǎo)入數(shù)據(jù)Impdp調(diào)用接口Impdp導(dǎo)入模式Impdp幫助及參數(shù)Impdp應(yīng)用實(shí)例85(1)Impdp調(diào)用接口

命令行接口(Command-LineInterface)參數(shù)文件接口(ParameterFileInterface)交互式命令接口(Interactive-CommandInterface)86(2)Impdp導(dǎo)入模式全庫導(dǎo)入模式(FullImportMode)模式導(dǎo)入模式(SchemaMode)表導(dǎo)入模式(TableMode)表空間導(dǎo)入模式(TablespaceMode)傳輸表空間導(dǎo)入模式(TransportableTablespace)87(3)Impdp幫助及參數(shù)

在操作系統(tǒng)的命令提示符窗口中輸入impdpHELP=Y命令,可以查看Impdp程序的使用、關(guān)鍵字(參數(shù))、交互命令等介紹。88(4)Impdp應(yīng)用實(shí)例

命令行方式導(dǎo)入:表導(dǎo)入模式使用邏輯備份文件emp_dept.dmp恢復(fù)scott模式下的emp表和dept表中數(shù)據(jù)。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=YCONTENT=DATA_ONLY如果表結(jié)構(gòu)也不存在了,則應(yīng)該導(dǎo)入表的定義以及數(shù)據(jù)。

C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptNOLOGFILE=Y89命令行方式導(dǎo)入:模式導(dǎo)入模式使用備份文件scott.dmp恢復(fù)scott模式。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpSCHEMAS=scottJOB_NAME=imp_scott_schema如果要將一個(gè)備份模式的所有對(duì)象導(dǎo)入另一個(gè)模式中,可以使用REMAP_SCHEMAN參數(shù)設(shè)置。例如,將備份的scott模式對(duì)象導(dǎo)入oe模式中。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=scott.dmpLOGFILE=scott.logREMAP_SCHEMA=scott:oeJOB_NAME=imp_oe_schema90命令行方式導(dǎo)入:表空間導(dǎo)入模式利用EXAMPLE,USERS表空間的邏輯備份tsp.dmp恢復(fù)USERS,EXAMPLE表空間。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpTABLESPACES=example,users如果要將備份的表空間導(dǎo)入另一個(gè)表空間中,可以使用REMAP_TABLESPACE參數(shù)設(shè)置。例如,將USERS表空間的邏輯備份導(dǎo)入IMP_TBS表空間,命令為C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=tsp.dmpREMAP_TABLESPACE=users:imptbs91命令行方式導(dǎo)入:傳輸表空間導(dǎo)入模式。將表空間USERS導(dǎo)入數(shù)據(jù)庫鏈接source_dblink所對(duì)應(yīng)的遠(yuǎn)程數(shù)據(jù)庫中。C:\>impdpscott/tigerDIRECTORY=dumpdirNETWORK_LINK=source_dblinkTRANSPORT_TABLESPACES=usersTRANSPORT_FULL_CHECK=NTRANSPORT_DATAFILES='D:\ORACLE\USERS01.DBF'

92命令行方式導(dǎo)入:數(shù)據(jù)庫導(dǎo)入模式利用完整數(shù)據(jù)庫的邏輯備份恢復(fù)數(shù)據(jù)庫。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=expfull.dmpFULL=YNOLOGFILE=Y命令行方式導(dǎo)入:按條件查詢導(dǎo)入C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=emp,deptQUERY='emp:"WHEREdeptno=20ANDsal>2000"'NOLOGFILE=Y93命令行方式導(dǎo)入:追加導(dǎo)入如果表中已經(jīng)存在數(shù)據(jù),可以利用備份向表中追加數(shù)據(jù)。C:\>impdpscott/tigerDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpTABLES=empTABLE_EXISTS_ACTION=APPEND94參數(shù)文件方式導(dǎo)入首先創(chuàng)建一個(gè)名為empdept.txt的參數(shù)文件,并存放到d:\backup目錄下,其內(nèi)容為TABLES=emp,deptDIRECTORY=dumpdirDUMPFILE=emp_dept.dmpPARALLEL=3然后在命令行中執(zhí)行下列命令就可以實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入操作。C:\>impdpscott/tigerPARFILE=d:\empdetp.txt95交互命令方式導(dǎo)入與Expdp交互執(zhí)行方式類似,在Impdp命令執(zhí)行作業(yè)導(dǎo)入的過程中,可以使用Impdp的交互命令對(duì)當(dāng)前運(yùn)行的導(dǎo)入作業(yè)進(jìn)行控制管理。9611.3.4使用OEM導(dǎo)出、導(dǎo)入數(shù)據(jù)創(chuàng)建目錄對(duì)象數(shù)據(jù)導(dǎo)出數(shù)據(jù)導(dǎo)入97(1)創(chuàng)建目錄對(duì)象

9899100101(2)數(shù)據(jù)導(dǎo)出

102103104105106107108109(3)數(shù)據(jù)導(dǎo)入110111112113114115總結(jié)備份與恢復(fù)的重要性和概念備份與恢復(fù)的類型數(shù)據(jù)庫的冷備份數(shù)據(jù)庫的熱備份數(shù)據(jù)庫完全恢復(fù)數(shù)據(jù)不完全恢復(fù)邏輯備份和恢復(fù)演講完畢,謝謝觀看!附錄資料:不需要的可以自行刪除?oracle數(shù)據(jù)庫培訓(xùn)內(nèi)容*基本概念*Oracle的體系結(jié)構(gòu)SQL*Plus的使用及常用命令*SQL*NET的配置和使用數(shù)據(jù)庫的備份(exp/imp)其它常見問題?一、基本概念什么是數(shù)據(jù)庫:是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的集合。這些數(shù)據(jù)無有害或不必要的冗余,為多種應(yīng)用服務(wù)。數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的應(yīng)用程序。對(duì)數(shù)據(jù)庫插入新數(shù)據(jù)、修改和檢索原有數(shù)據(jù)均能用一種公用的和可控的方法進(jìn)行。數(shù)據(jù)庫能做什么:數(shù)據(jù)庫的基本功能就是存儲(chǔ)數(shù)據(jù),而且能夠?yàn)橛脩籼峁┍憬荨⒖焖俚牟檎?、修改、添加和刪除數(shù)據(jù)等功能。什么是SQL語言:是運(yùn)用于數(shù)據(jù)庫的語言。它除了具有數(shù)據(jù)庫查詢、插入、刪除、修改等功能外,可以獨(dú)立使用,也可以嵌入其它主語言中使用。它的語法類似于英語。?什么是oracle:oracle是以高級(jí)結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一。?二、Oracle的體系結(jié)構(gòu)(1)物理結(jié)構(gòu)

ORACLE數(shù)據(jù)庫在物理上是存儲(chǔ)于硬盤的各種文件。它是活動(dòng)的,可擴(kuò)充的,隨著數(shù)據(jù)的添加和應(yīng)用程序的增大而變化。datafilesredologfilescontrolfilesparameterfile

數(shù)據(jù)文件日志文件控制文件參數(shù)文件

datafilesredologfilescontrolfileparameterfiles*.dbf*.logInitoraid.ora*.ctl?(2)session(連接)

Oracle是多用戶、多任務(wù)、可分布式管理的數(shù)據(jù)庫,同

時(shí)可有許多個(gè)用戶對(duì)數(shù)據(jù)庫操作。oracleuseruserusersession……?

ORACLE數(shù)據(jù)庫在邏輯上是由許多表空間構(gòu)成。主要分為系統(tǒng)表空間和非系統(tǒng)表空間。非系統(tǒng)表空間內(nèi)存儲(chǔ)著各項(xiàng)應(yīng)用的數(shù)據(jù)、索引、程序等相關(guān)信息。我們準(zhǔn)備上馬一個(gè)較大的ORACLE應(yīng)用系統(tǒng)時(shí),應(yīng)該創(chuàng)建它所獨(dú)占的表空間,同時(shí)定義物理文件的存放路徑和所占硬盤的大小。Oracle數(shù)據(jù)存儲(chǔ)單位a、block數(shù)據(jù)塊:2k最小的I-O單位,伴隨database產(chǎn)生而產(chǎn)生,不可變b、extent一組連續(xù)的數(shù)據(jù)塊:是用戶所能分配存儲(chǔ)的最小單位c、segment段:有共同結(jié)構(gòu)的一個(gè)或幾個(gè)區(qū)域(extent)d、tablespace表空間:一組物理數(shù)據(jù)的邏輯組合,(象邏輯間數(shù)據(jù)倉庫)e、file文件:屬于某個(gè)表空間的物理文件f、database數(shù)據(jù)庫:一組表空間所構(gòu)成的邏輯的可共享的數(shù)據(jù)。(3)存儲(chǔ)結(jié)構(gòu)?表空間tablespacesystemRBSnosystem把system表空間單獨(dú)放在一個(gè)硬盤上做成一組鏡像toolsuserstempapplicationdataapplicationindex分開存放減少爭(zhēng)用?segment段的分類data數(shù)據(jù)段存儲(chǔ)對(duì)象object(table,view,index,sequence...)index索引段temporary臨時(shí)段用做(join,groupby,orderbysorting操作)rollback回滾段用于記錄修改前后信息bootstrap啟動(dòng)段存儲(chǔ)數(shù)據(jù)字典系統(tǒng)信息不能讀寫,放在系統(tǒng)表空間內(nèi),約占40幾個(gè)block?datasegment中可能有十種不同類型的存儲(chǔ)對(duì)象(1)table(2)view實(shí)為一個(gè)select語句(3)index(一個(gè)表不多于3個(gè))(4)cluster(簇)(5)sequence序列(6)synonyms用于定義某個(gè)遠(yuǎn)程數(shù)據(jù)庫同義詞,實(shí)現(xiàn)分式數(shù)據(jù)庫管理透明(7)snapsot快照(8)storedprocedure(function)(9)package程序包(10)dbtrigger數(shù)據(jù)觸發(fā)器,處理updata,delete,insert中可能出現(xiàn)的問題?常用的ORACLE的數(shù)據(jù)庫字段類型字段類型中文說明限制條件其它說明CHAR固定長(zhǎng)度字符串最大長(zhǎng)度2000bytesVARCHAR2可變長(zhǎng)度的字符串最大長(zhǎng)度4000bytes可做索引的最大長(zhǎng)度749DATE日期(日-月-年)LONG超長(zhǎng)字符串最大長(zhǎng)度2G(231-1)足夠存儲(chǔ)大部頭著作RAW固定長(zhǎng)度的二進(jìn)制數(shù)據(jù)最大長(zhǎng)度2000bytes可存放多媒體圖象聲音等LONGRAW可變長(zhǎng)度的二進(jìn)制數(shù)據(jù)最大長(zhǎng)度2G同上NUMBER(P,S)數(shù)字類型P為整數(shù)位,S為小數(shù)位INTEGER整數(shù)類型小的整數(shù)FLOAT浮點(diǎn)數(shù)類型NUMBER(38),雙精度REAL實(shí)數(shù)類型NUMBER(63),精度更高……?三、SQL*Plus的使用及常用命令進(jìn)入sql*plus;數(shù)據(jù)查詢操作(select);改變數(shù)據(jù)操作(insert、update、delete);其它常用sql和sql*plus命令(spool、create、drop、desc、connect、grant……)。?數(shù)據(jù)查詢操作簡(jiǎn)單查詢select列名1,列名2,列名3……from表名where條件orderby列名1,列名2……;?邏輯運(yùn)算符>>=<<=<>或!=其它(not)inis(not)betweenandandor單值函數(shù)nvl----空值替換函數(shù)abs---絕對(duì)值函數(shù)mod---求模函數(shù)power---求冪函數(shù)sqrt-----平方根函數(shù)exp,ln,log----對(duì)數(shù)函數(shù)sin,cos等----三角函數(shù)?唯一性查詢關(guān)鍵字:distinctselectdistinct列名from表名where條件;?模糊查詢select列名1,列名2,列名3……from表名where列名1like‘_%mm’orderby列名1,列名2……;關(guān)鍵字:(not)like通配符:%_?聯(lián)接查詢select表名1.列名1,表名2.列名2,列名3……from表名1,表名2……where條件orderby表名1.列名1,表名2.列名2……;?子查詢單值子查詢

多值子查詢select列名1,列名2,列名3……from表名1where列名1=(select列名1from表名2where條件)orderby列名1,列名2……;select列名1,列名2,列名3……from表名1where列名1in(select列名1from表名2where條件)orderby列名1,列名2……;?組值函數(shù)avg---平均值函數(shù)count---非空值數(shù)目max---最大值函數(shù)min---最小值函數(shù)sum---求和函數(shù)distinct---唯一性函數(shù)分組查詢select列名1,列名2,sum(列名3)……from表名where條件groupby列名1,列名2……;關(guān)鍵字:groupby?改變數(shù)據(jù)操作Insert插入操作insertinto表名1(列名1,列名2……)values(值1,值2……);注意:⑴值表中的數(shù)據(jù)用逗號(hào)間隔;⑵字符型和日期型要用單引號(hào)括起來;⑶缺省的日期格式為dd-man-yy。insertinto表名1usingselect列名1,列名2……from表名2where條件;?Update修改操作可修改單個(gè)字段、修改多行、修改單個(gè)列。update表名set列名=值或表達(dá)式where條件;?Delete刪除deletefrom表名where條件;注意⑴不能只刪除行的一部分⑵where子句決定哪一行將被刪除。如里省略了where子句,則所有的行都將被刪除。?其它常用sql命令Createtable---創(chuàng)建表;例子Droptable---刪除表,sql同時(shí)自動(dòng)刪除該表上的索引、特權(quán),但并不刪除相關(guān)的視圖或同義詞;Grant---授權(quán)Connect-----連上Oracle,做最基本操作resource----具有程序開發(fā)最基本的權(quán)限dba----------數(shù)據(jù)庫管理員所有權(quán)限?@-------運(yùn)行指定的命令文件,作用等價(jià)于start命令;/---------運(yùn)行sql緩沖區(qū)的命令,與run命令等價(jià);Connect---退出當(dāng)前賬號(hào),向指定的用戶帳號(hào)登錄;Desc-----顯示指定表的結(jié)構(gòu);Exit-----中止sql*plus,返回操作系統(tǒng);Spool---將屏幕顯示內(nèi)容輸出到一個(gè)文件上;Spooloff--輸出文件結(jié)束;其它常用sql*plus命令?四、SQL*NET的配置和使用1配置網(wǎng)絡(luò)協(xié)議TCP/IP

2測(cè)試網(wǎng)絡(luò)是否連通3在Windows95上選擇“開始”按鈕,選定“程序”中的“OracleforWindows95”下的“SQL*NetEasyConfiguration”,在“SQL*NetEasyConfiguration”窗口中選擇“AddDatabaseAlias”,在“ChooseDatabaseAlias”對(duì)話框中“DatabaseAlias”項(xiàng)中鍵入數(shù)據(jù)庫別名,按“OK”按鈕確認(rèn)。

在“ChooseTCP/IPHostNameandDatabase”對(duì)話框中的TCP/IPHostname項(xiàng)中鍵入SERVER的IP地址,在“DatabaseInstance”項(xiàng)中鍵入Oracle的實(shí)例名。在“ConfirmAddingDatabaseAlias”對(duì)話框中可以看到你新增加的數(shù)據(jù)庫別名。按“YES”按鈕,按“OK”,退出“SQL*NetEasyConfiguration”。?五、數(shù)據(jù)庫備份(exp/imp)EXPORT將數(shù)據(jù)庫中數(shù)據(jù)備份成一個(gè)二進(jìn)制系統(tǒng)文件稱為“導(dǎo)出轉(zhuǎn)儲(chǔ)文件”(EXPORTDUMPFILE),并將重新生成數(shù)據(jù)庫寫入文件中。它有三種模式:a.用戶模式:導(dǎo)出用戶所有對(duì)象以及對(duì)象中的數(shù)據(jù);b.表模式:導(dǎo)出用戶所有表或者指定的表;c.整個(gè)數(shù)據(jù)庫:導(dǎo)出數(shù)據(jù)庫中所有對(duì)象。IMPORT導(dǎo)入:導(dǎo)入的過程是導(dǎo)出的逆過程,這個(gè)命令先讀取導(dǎo)出來的導(dǎo)出轉(zhuǎn)儲(chǔ)二進(jìn)制文件,并運(yùn)行文件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論