




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫程序員面試分類真題18簡答題1.
OGG環(huán)境中如何使用OS命令?正確答案:可以使用sh命令臨時執(zhí)行OS命令,如下:
[考點]OGG
2.
OGG的告警日志文件的位置在哪里?正確答案:OGG的告警日志文件為$OGG_HOME/ggserr.log,如下:
[考點]OGG
3.
Logdump工具的作用是什么?正確答案:Logdump(LogFileDumpUtility)是一個OGG白帶的trail文件分析工具,而且能加深對OGG工作原理的理解,非常值得花時間來研究它。Logdump組件默認在安裝目錄,是個可執(zhí)行文件。直接輸入logdump按回車鍵即可進入Logdump界面。[考點]OGG
4.
在一套復制環(huán)境中使用不同版本OGG需要注意什么問題?正確答案:分為以下幾種情況:
1)若源端OGG版本低,目標端OGG版本高,則此種配置不需要做任何的額外改動,與兩端是相同OGG版本的同步是完全一樣的參數(shù)設置。
2)若源端OGG版本高,目標端OGG版本低,則此種配置需要在源頭的抽取進程和傳輸進程的參數(shù)文件中設置TrailFile的格式,設置為與目的端OGG版本一樣的格式,如下:
EXTTRAIL<wailfile>,FORMATRELEASE10.0
RMTTRAIL<trailfile>,FORMATRELEASE10.0
注意,以上命令中的10.0是目的端OGG的版本號。[考點]OGG
5.
錯誤“OGG-00446Couldnotfindarchivedlogforsequence”如何處理?正確答案:如果面試官問到維護OGG曾經碰到的一次故障處理過程,那么就可以拿這個錯誤作為案例來說明。OGG-00446主要是歸檔文件丟失引起,處理辦法就是將缺失的歸檔日志找回來。如果找不到所需歸檔日志,那么可以按照如下2種辦法來處理。
第一種辦法是改變抽取進程的時間,但這可能會導致數(shù)據(jù)不一致,執(zhí)行方法如下:
GGSCI(HP-HP)1>alterextractextl,beginnow
第二種辦法是重新初始化,重新初始化過程如下。
源庫查詢到當前的SCN:
SQL>SELECTCURRENT_SCNFROMV$DATABASE;
CURRENT_SCN
------------
12242466771468
基于SCN導出所需要的數(shù)據(jù):
expdpXXX/XXXdirectory=DMPdumpfile=xpadb_20160125_01.dmpLOGFILE=xpadb_20160125.log
TABLES=BASE_ACTIONPOWER,BASE_BANKFLASHBACK_SCN=12242466771468
目標庫導入所需要的數(shù)據(jù):
impdpXXX/XXXDIRECTORY=OGGDDUMPFILE=xpadb20160125_01.dmpLOGFILE=impdp.xpadb_20160125_01.logREMAP_SCHEMA=xpadb:xpadrptREMAP_TABLESPACE=xpaddat:xpaddata
目標庫重新開啟應用進程:
[考點]OGG
6.
RMAN是什么?RMAN的特點有哪些?正確答案:為了更好地實現(xiàn)數(shù)據(jù)庫的備份和恢復工作,Oracle提供了恢復管理器(RecoveryManager,RMAN)。RMAN是一個可以用來備份、恢復和還原數(shù)據(jù)庫的應用程序,是隨Oracle服務器軟件一同安裝的Oracle工具軟件,通過執(zhí)行相應的RMAN命令可以實現(xiàn)備份和恢復操作。RMAN可以用來備份和恢復數(shù)據(jù)庫文件、歸檔日志、控制文件和系統(tǒng)參數(shù)文件,也可以用來執(zhí)行完全或不完全的數(shù)據(jù)庫恢復。RMAN有三種不同的用戶接口:COMMANDLINE方式、GUI方式(集成在OEM中的備份管理器)、API方式(用于集成到第三方的備份軟件中)。
RMAN具有如下特點:
1)功能類似物理備份,但比物理備份強大N倍。
2)可以把備份打包成備份集,也可以按固定大小分割備份集。
3)備份與恢復的過程可以自動管理。
4)可以使用腳本(存在RecoveryCatalog中)。
5)RMAN會檢測和報告損壞的數(shù)據(jù)塊。
6)可以跳過未使用的數(shù)據(jù)塊。在執(zhí)行RMAN備份時,RMAN不會備份從未被寫入的數(shù)據(jù)塊。而傳統(tǒng)的備份方法無法知道已經使用了哪些數(shù)據(jù)塊。
7)備份壓縮,也可以壓縮空塊。RMAN使用一種Oracle特有的二進制壓縮模式來節(jié)省備份設備上的空間。盡管傳統(tǒng)的備份方法也可以使用操作系統(tǒng)的壓縮技術,但RMAN使用的壓縮算法是定制的,能夠最大限度地壓縮數(shù)據(jù)塊中一些典型的數(shù)據(jù)。
8)執(zhí)行增量備份,可以在塊級別上實現(xiàn)增量。如果不使用增量備份,那么每次RMAN都備份已使用塊;如果使用增量備份,那么每次RMAN都備份上次備份以來變化的數(shù)據(jù)塊,這樣可以節(jié)省大量的磁盤空間、I/O時間、CPU時間和備份時間。
9)塊級別的恢復??梢灾贿€原或修復標識為損壞的少量數(shù)據(jù)塊。在RMAN修復損壞的數(shù)據(jù)塊時,表空間的其他部分以及表空間中的對象仍可以聯(lián)機。
10)在備份時不需要將表空間置于熱備份模式。
11)可以使用RMAN來測試備份而不需要實際還原它們。[考點]RMAN
7.
RMAN可以用來備份哪些文件?不能用來備份哪些文件?正確答案:RMAN可以用來備份:①數(shù)據(jù)庫:包括數(shù)據(jù)文件、控制文件、SPFILE(ServerParameterFile)文件;②表空間;③歸檔文件;④備份集。
RMAN不能用來備份:①聯(lián)機日志文件(OnlineRedoLogs);②非READ/WRITE狀態(tài)的可傳輸表空間;③PFILE(ParameterFile)文件。[考點]RMAN
8.
物理備份和邏輯備份分別是什么?正確答案:物理備份是指將數(shù)據(jù)庫的所有物理文件完整復制到備份位置的一個過程。物理備份是所有物理文件的一個副本,例如,數(shù)據(jù)文件、控制文件、歸檔日志等。該副本能被存儲在本地磁盤或磁帶。物理備份是備份或恢復的基礎,包括冷備份(非歸檔模式)和熱備份(歸檔模式)。物理備份既可以在數(shù)據(jù)庫打開的狀態(tài)下進行,也可在數(shù)據(jù)庫關閉的狀態(tài)下進行,但是邏輯備份和恢復則只能在數(shù)據(jù)庫打開的狀態(tài)下進行。
邏輯備份是指使用工具exp或expdp將數(shù)據(jù)庫對象的結構和數(shù)據(jù)導出到二進制文件的過程。當數(shù)據(jù)庫對象被誤操作而損壞后就可以使用工具imp或impdp利用備份的文件把數(shù)據(jù)對象導入數(shù)據(jù)庫中進行恢復。邏輯備份是物理備份方式的一種補充,多用于數(shù)據(jù)遷移。
[考點]RMAN
9.
若一張表被執(zhí)行了TRUNCATE操作,則如何恢復數(shù)據(jù)?正確答案:在求職數(shù)據(jù)庫相關的崗位的時候,經常會被問到一個問題:在開發(fā)或維護過程中誤操作TRUNCATE了一張表,如何恢復?這個時候應該由簡到難地回答,可以按照如下的步驟進行回答:
1)是否有測試庫,測試庫的表數(shù)據(jù)和當前數(shù)據(jù)是否一致,若一致,則可以考慮從測試庫把表數(shù)據(jù)導入被刪除的庫中。
2)是否有exp或expdp邏輯備份,若有,則可以導入被刪除的庫中。
3)是否有RMAN備份,若有,則可以將數(shù)據(jù)恢復到其他地方,然后將數(shù)據(jù)庫exp出來,最后導入被刪除的庫中。
4)數(shù)據(jù)庫是否開啟了閃回,如果開了閃回則可以利用閃回數(shù)據(jù)庫的特性找回數(shù)據(jù)。
5)利用表空間基于時間點的恢復技術(TSPITR)來恢復。
6)是否有歸檔,若有則可以采用LogMiner進行日志挖掘。
7)若以上這些辦法都不能恢復,則可以嘗試無備份情況下的恢復。這里推薦兩種辦法,fy_recoverdata包和gdul工具,關于這兩種工具的具體使用案例可以參考作者的博客。[考點]RMAN
10.
Oracle的SCN是什么?正確答案:SCN(SystemChangeNumber,系統(tǒng)改變號)是一個由系統(tǒng)內部維護的序列號,SCN在數(shù)據(jù)庫全局是唯一的。當系統(tǒng)需要更新的時候自動增加,它是系統(tǒng)中維持數(shù)據(jù)的一致性和順序恢復的重要標志,是數(shù)據(jù)庫中非常重要的一種數(shù)據(jù)結構。在數(shù)據(jù)庫中,SCN作為一種時鐘機制來標記數(shù)據(jù)庫動作,比如,當事務發(fā)生時,數(shù)據(jù)庫會用一個SCN來標記它。
在數(shù)據(jù)庫中,SCN可以說是無處不在,例如,數(shù)據(jù)文件頭、控制文件、數(shù)據(jù)塊頭、日志文件等都標記著SCN。也正因為如此,數(shù)據(jù)庫的一致性維護和SCN密切相關。不管是數(shù)據(jù)的備份還是恢復都離不開SCN。由于SCN描述的是數(shù)據(jù)一致性的狀態(tài),所以,它會在各種涉及數(shù)據(jù)一致性的場合中起到重要作用。[考點]RMAN
11.
SCN可以分為哪幾類?正確答案:SCN可以分為4類,系統(tǒng)檢查點SCN(SystemCheckpointSCN)、文件檢查點SCN(DatafileCheckpointSCN)、開始SCN(StartSCN)和結束SCN(StopSCN),參考下表。
[考點]RMAN
12.
如何查看系統(tǒng)當前SCN?正確答案:Oracle數(shù)據(jù)庫提供了兩種直接查看系統(tǒng)當前SCN的方法,一種是通過查詢V$DATABASE中的CURRENT_SCN列,另外一種就是通過DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER得到,如下:
一般情況下,SCN1列和SCN2列的結果一致,但在系統(tǒng)比較繁忙的時候,可能SCN2比SCN1稍微大一點。[考點]RMAN
13.
SCN與時間戳如何相互轉換?正確答案:一個SCN值總是發(fā)生在某一個特定的時刻,只不過由于粒度的不一樣,通常會存在多個SCN對應同一個時間戳的情況。Oracle10g提供了兩個新函數(shù)用于SCN和時間戳進行相互轉換,這兩個函數(shù)分別是SCN_TO_TIMESTAMP和TIMESTAMP_TO_SCN,通過對SCN和時間戳進行轉換,極大方便了Oracle的很多備份和恢復過程。
1)SCN_TO_TIMESTAMP(scn_number):將SCN轉換成時間戳。
2)TIMESTAMP_TO_SCN(timestamp):將時間戳轉換成SCN。
通過以上這兩個函數(shù),最終Oracle將SCN和時間的關系建立起來。在Oracle10g之前,是沒有辦法通過函數(shù)轉換得到SCN和時間的對應關系的,一般可以通過LogMiner分析日志獲得。但是這兩種函數(shù)轉換要依賴于數(shù)據(jù)庫內部表SMON_SCN_TIME,對于久遠的SCN則不能轉換。[考點]RMAN
14.
恢復分為哪些類型?正確答案:恢復分為實例恢復和介質恢復,具體分類如下圖所示。
[考點]RMAN
15.
Oracle數(shù)據(jù)庫的介質恢復包含哪兩個過程?正確答案:介質恢復是基于物理備份恢復數(shù)據(jù),它是Oracle數(shù)據(jù)庫出現(xiàn)介質故障時恢復的重要保障。介質恢復包括塊恢復、數(shù)據(jù)文件恢復、表空間恢復和整個數(shù)據(jù)庫的恢復。介質恢復主要是針對錯誤類型中的介質失敗,如果是少量的塊失敗,那么可以使用介質恢復中的塊恢復來快速修復;但如果是其他情況的丟失,那么需要根據(jù)具體情況,可使用數(shù)據(jù)文件恢復、表空間恢復甚至全庫恢復。
Oracle數(shù)據(jù)庫的介質恢復實際上包含了兩個過程:數(shù)據(jù)庫還原(RESTORE)與數(shù)據(jù)庫恢復(RECOVER),具體如下:
1)數(shù)據(jù)庫還原是指利用備份的數(shù)據(jù)庫文件來替換已經損壞的數(shù)據(jù)庫文件或者將其恢復到一個新的位置。RMAN在進行還原操作時,會利用恢復目錄(有建立恢復目錄的話就使用目標數(shù)據(jù)庫的控制文件)來獲取備份信息,并從中選擇最合適的備份進行修復操作。當選擇備份時,有以下兩個原則:①選擇距離恢復目錄時刻最近的備份;②優(yōu)先選擇鏡像復制,其次才是備份集。
2)數(shù)據(jù)庫恢復是指數(shù)據(jù)文件的介質恢復,即為修復后的數(shù)據(jù)文件應用聯(lián)機或歸檔日志,從而將修復的數(shù)據(jù)庫文件更新到當前時刻或指定時刻下的狀態(tài)。在執(zhí)行恢復數(shù)據(jù)庫時,需要使用RECOVER命令。
還原是將某個時間點的數(shù)據(jù)文件的副本再拷貝回去,還原后的數(shù)據(jù)庫處于不一致的狀態(tài),或不是最新的狀態(tài),還需要執(zhí)行恢復操作?;謴途褪鞘褂脷w檔日志文件和聯(lián)機Redo日志文件將不一致的數(shù)據(jù)庫應用到一致性狀態(tài)。需要注意的是,還原只是建立在數(shù)據(jù)庫備份的基礎版本上,例如,如果數(shù)據(jù)庫備份包括0級備份和很多1級備份,還原只是應用0級備份,恢復過程會根據(jù)情況自動應用1級備份或Redo日志將數(shù)據(jù)庫恢復到一致性的狀態(tài)。[考點]RMAN
16.
數(shù)據(jù)庫的恢復過程分為哪兩類?正確答案:數(shù)據(jù)庫的恢復過程根據(jù)恢復數(shù)據(jù)的程度又分為完全恢復(CompleteRecovery)和不完全恢復(IncomnleteRecoverv),如下圖所示。
1)完全恢復是一種沒有數(shù)據(jù)丟失的恢復方式,能夠恢復到最新的聯(lián)機Redo日志中已提交的數(shù)據(jù)。在傳統(tǒng)恢復方式中,因介質失敗破壞了數(shù)據(jù)文件之后,可以在數(shù)據(jù)庫、表空間和數(shù)據(jù)文件上執(zhí)行完全介質恢復。
2)不完全恢復是一種與完全恢復相反的恢復方式,是一種丟失數(shù)據(jù)的恢復方式,也稱為數(shù)據(jù)庫基于時間點恢復(Point-in-TimeRecovery),是將整個數(shù)據(jù)庫恢復到之前的某個時間點、日志序列號或者SCN號。
如果是完全恢復,那么數(shù)據(jù)庫就是最新的一致性狀態(tài);如果是不完全恢復,那么數(shù)據(jù)庫就是非最新的一致性狀態(tài)。對于非歸檔模式的數(shù)據(jù)庫來說,不能執(zhí)行不完全恢復。不完全恢復意味著會缺失一些事務處理,即恢復目標時間和當前時間之間所做的所有數(shù)據(jù)修改都會丟失。在很多情況下,這正是想要的結果,因為可能需要撤銷對數(shù)據(jù)庫進行的一些更改?;謴偷竭^去的某一時間點是刪除誤更改的一種方法。
不完全恢復的選項見下表。不完全恢復方式RMAN選項用戶管理備份選項恢復到某個時間點UNTILTIMEUNTILTIME恢復到某個日志序列號UNTILSUQUENCEUNTILCANCEL恢復到某個SCN號UNTILSCNUNTILCHANGE[考點]RMAN
17.
Oracle數(shù)據(jù)庫的不完全恢復有哪些類型?正確答案:不完全恢復的幾種類型見下表。
[考點]RMAN
18.
什么是實例恢復?正確答案:實例恢復可確保數(shù)據(jù)庫在一個實例失敗后仍能回到一個一致性的狀態(tài)。Redo日志記錄了對實例的所有更改。單實例數(shù)據(jù)庫擁有一個重做線程,而一個RAC數(shù)據(jù)庫擁有多個重做線程,且RAC數(shù)據(jù)庫的每個實例擁有一個重做線程。當事務提交時,LGWR將內存中的重做條目和事務SCN同時寫入聯(lián)機Redo日志。但是,DBWn進程只在最有利的時機將已修改的數(shù)據(jù)塊寫入數(shù)據(jù)文件。所以,未提交的更改可能會暫時存在于數(shù)據(jù)文件中,而已提交的更改也可能還不在數(shù)據(jù)文件中。
當數(shù)據(jù)庫突然崩潰,而還沒有來得及將BufferCache里的臟塊刷新到數(shù)據(jù)文件里,同時在實例崩潰時正在運行著的事務被突然中斷,則事務為中間狀態(tài),也就是既沒有提交也沒有回滾。這時數(shù)據(jù)文件里的內容不能體現(xiàn)實例崩潰時的狀態(tài)。這樣關閉的數(shù)據(jù)庫是不一致的。當下次啟動實例時,Oracle會由SMON進程自動進行實例恢復。實例啟動時,SMON進程會去檢查控制文件中所記錄的、每個在線的、可讀寫的數(shù)據(jù)文件的EndSCN號。在數(shù)據(jù)庫正常運行過程中,該EndSCN號始終為NULL,而當數(shù)據(jù)庫正常關閉時,會進行完全檢查點,并用檢查點SCN號更新該字段,所以可以通過EndSCN號是否為NULL來判斷是否需要實例恢復。在數(shù)據(jù)庫實例崩潰時,Oracle還來不及更新該字段,則該字段仍然為NULL。當數(shù)據(jù)庫再次啟動時,SMON進程發(fā)現(xiàn)該字段為空時,就知道實例在上次沒有正常關閉,于是由SMON進程就開始進行實例恢復了。
對于單實例的數(shù)據(jù)庫而言,實例恢復一般是在數(shù)據(jù)庫實例異常故障后、數(shù)據(jù)庫重啟時進行,當數(shù)據(jù)庫執(zhí)行了SHUTDOWNABORT或者由于操作系統(tǒng)、主機等原因宕機重啟后,在執(zhí)行ALTERDATABASEOPEN的時候,就會自動做實例恢復。在RAC環(huán)境中,如果某個實例宕機了,那么剩下的實例將會代替宕掉的實例做實例恢復。除非是所有的實例都宕機了,這樣的話,第一個執(zhí)行ALTERDATABASEOPEN的實例將會做實例恢復。這也是在RAC環(huán)境中,Redo日志是實例私有的組件,但是Redo日志的文件必須存放在共享存儲上的原因。[考點]RMAN
19.
Oracle數(shù)據(jù)庫的實例恢復分為哪兩個階段?正確答案:實例恢復的第一階段稱為前滾(RollingForward)或者緩存恢復(CacheRecovery);實例恢復的第二階段稱為回滾(RollingBack)或者事務恢復(TransactionRecovery)。前滾和回滾是Oracle數(shù)據(jù)庫實例發(fā)生意外崩潰、重新啟動的時候,由SMON進行的自動恢復的過程。所謂的前滾,是應用Redo來恢復BufferCache的數(shù)據(jù),將BufferCache恢復到Crash之前狀態(tài),所以此時BufferCache中既有崩潰時已經提交但還沒有寫入數(shù)據(jù)文件的臟塊,還有事務被突然終止而導致的既沒有提交又沒有回滾的事務的臟塊(也就是沒有COMMIT,但是DBWn已經將改變的數(shù)據(jù)刷新到底層磁盤)。前滾完成之后就可以確保聯(lián)機Redo日志中所有已提交的事務操作的數(shù)據(jù)寫回到數(shù)據(jù)文件中。接下來,前滾之后,任何未提交的更改必須被撤銷,而回滾是在數(shù)據(jù)庫做完前滾操作后并打開數(shù)據(jù)庫的情況下完成的,SMON會利用Undo信息將未提交的事務全部進行回滾。具體來說,SMON進程在完成前滾后,查看Undo段頭(Undo段的第1個數(shù)據(jù)塊)記錄的事務表(每個事務在使用Undo塊時,首先要在該Undo塊所在的Undo段頭記錄一個條目,該條目里記錄了該事務相關的信息,其中包括是否提交等),將其中既沒有提交也沒有回滾,而是在實例崩潰時被異常終止的事務全部回滾。[考點]RMAN
20.
實例恢復和介質恢復的區(qū)別是什么?正確答案:Redo日志是Oracle為確保已經提交的事務不會丟失而建立的一種機制。實際上,Redo日志的存在是為兩種場景準備的,一種稱為實例恢復(InstanceRecovery),另一種稱為介質恢復(MediaRecovery)。
Redo日志的數(shù)據(jù)是按照THREAD來組織的,對于單實例系統(tǒng)來說,只有一個THREAD;對于RAC系統(tǒng)來說,可能存在多個THREAD。每個數(shù)據(jù)庫實例擁有一組獨立的Redo日志文件,擁有獨立的LogBuffer,某個實例的變化會被獨立地記錄到一個THREAD的Redo日志文件中。
有關實例恢復和介質恢復的區(qū)別見下表。分類實例恢復介質恢復簡介數(shù)據(jù)庫沒有正常關閉(即非一致性關閉,例如斷電、硬件故障、關鍵后臺進程出現(xiàn)故障(PMON、LGWR等),執(zhí)行了SHUTDOWNABORT或STARTUPFORCE命令)會導致數(shù)據(jù)庫實例在重啟時自動使用聯(lián)機Redo日志和Undo數(shù)據(jù)執(zhí)行實例恢復,具體恢復的工作是由SMON這個后臺進程來完成的,SMON自動應用聯(lián)機Redo日志文件中的條目和讀取Undo表空間中的數(shù)據(jù)完成實例恢復而不需要任何用戶干預。一個單實例數(shù)據(jù)庫或者RAC數(shù)據(jù)庫所有實例失敗之后,第一個打開數(shù)據(jù)庫的實例會自動執(zhí)行實例恢復,這種形式的實例恢復稱為崩潰恢復(CrashRecovery)。在RAC環(huán)境中,若RAC數(shù)據(jù)庫的一部分但不是所有實例失敗后,在RAC中幸存的實例自動執(zhí)行失敗實例的恢復介質恢復是當存儲的數(shù)據(jù)文件出現(xiàn)故障(例如,數(shù)據(jù)文件丟失、損壞)的時候進行的,介質恢復無法自動進行,必須手動執(zhí)行RECOVERDATABASE或者RECOVERDATAFILE命令來實施。在做介質恢復的時候,需要使用歸檔日志。介質恢復是基于物理備份恢復數(shù)據(jù),是Oracle數(shù)據(jù)庫出現(xiàn)介質故障時恢復的重要保障發(fā)生時機當EndSCN不等于StartSCN的時候,數(shù)據(jù)庫需要做實例恢復。若數(shù)據(jù)庫異常關閉,則EndSCN號將為空,數(shù)據(jù)庫就需要做實例恢復當SystemCheckpointSCN、DatafileCheckpointSCN和StartSCN三者中有一個不同時就需要做介質恢復恢復的目的在數(shù)據(jù)庫發(fā)生故障時,確保BufferCache中的數(shù)據(jù)不會丟失;確保數(shù)據(jù)庫可以處于一致性狀態(tài)。只有當聯(lián)機Redo日志文件和Undo表空間的介質沒有被破壞才能確保實例恢復能夠成功當數(shù)據(jù)文件發(fā)生故障時,能夠恢復數(shù)據(jù)利用資源OnlineRedo、ActiveRedo和UndoBackupSet、ArchiveLog、Online和InactiveRedo等過程利用Redo前滾(重做);打開數(shù)據(jù)庫;利用Undo回滾RESTORE:RECOVER是否自動完成自動完成手動恢復,需要DBA干預,分為完全和不完全恢復是否需要開啟歸檔不需要開啟歸檔模式需要開肩歸檔模式舉例用戶在8:30:00觸發(fā)了5個事務,分別是T1、T2、T3、T4、T5。在8:38:00之前,T3和T5完成,在8:38:00產生了一個檢查點事件,此時系統(tǒng)將對數(shù)據(jù)的更改都寫入數(shù)據(jù)文件中。在8:38:27時,出現(xiàn)故障,導致實例異常關閉,在8:38:00至8:38:27之間的操作僅僅記錄在Redo日志中,并沒有將這些更改寫入數(shù)據(jù)文件中。當實例重新啟動時,SMON將執(zhí)行實例恢復。例如,在8:43:00分重啟實例,SMON執(zhí)行實例恢復,整個執(zhí)行過程可以分為兩個部分:前滾和回滾。前滾是指8:38:00至8:38:27:00之間的操作應用到數(shù)據(jù)文件上,由于這些操作都記錄在Redo日志中,因此只需要從Redo日志中讀取這些操作并執(zhí)行即可。前滾執(zhí)行完畢后,SMON進程立即打開數(shù)據(jù)庫,此時,數(shù)據(jù)庫處于實例異常關閉前的狀態(tài)。打開數(shù)據(jù)庫后進入回滾,回滾階段是指將未提交的事務回滾,即將示例中T1、T2和T4回滾,在8:45:00時,實例恢復執(zhí)行完畢在系統(tǒng)重啟后發(fā)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)文件被rm刪除了,這個時候需要執(zhí)行RESTOREDATABASE和RECOVERDATABASE命令進行介質恢復[考點]RMAN
21.
DELETE了一條數(shù)據(jù)并且提交了,該如何找回?正確答案:在Oracle中可以通過閃回技術來找回已經刪除并且提交了的數(shù)據(jù)。當然,除了閃回技術外還可以采用LogMiner(使用該工具可以輕松獲得Redo日志文件包含歸檔日志文件中的具體內容)進行日志挖掘,找出其撤銷SQL并執(zhí)行就可以找回DELETE語句刪除的數(shù)據(jù)。[考點]RMAN
22.
rm-rf誤操作后如何恢復數(shù)據(jù)庫?正確答案:如果執(zhí)行了rm-rf操作刪除了所有的基于FS的數(shù)據(jù)文件,但是數(shù)據(jù)庫還處于OPEN狀態(tài),那么,在這種情況下如何快速地恢復數(shù)據(jù)庫呢?這里的前提條件是沒有任何可用的RMAN備份、數(shù)據(jù)庫冷備份等,也就是說,沒有任何備份。在這種情況下可以通過系統(tǒng)的文件句柄號來恢復數(shù)據(jù)文件。[考點]RMAN
23.
在丟失歸檔的情況下如何進行數(shù)據(jù)文件的恢復?正確答案:如果一個表空間的數(shù)據(jù)文件損壞,在有備份的情況下,那么可以使用數(shù)據(jù)文件的備份進行還原,但是還需要歸檔文件進行恢復,才能使數(shù)據(jù)文件到達一個最新的一致性狀態(tài),從而才能打開數(shù)據(jù)庫。如果需要的歸檔文件無法提供,比如被刪除了,那么在這種情況下如何打開數(shù)據(jù)庫呢?
在這種情況下由于缺少歸檔,數(shù)據(jù)庫無法恢復,但是如果與該表空間相關的數(shù)據(jù)改變很少或者基本沒有改變的情況下可以通過改變數(shù)據(jù)文件頭的SCN號,讓其和SystemCheckpointSCN、DatafileCheckpointSCN號一致,就可以讓Oracle避開對該文件的檢查,Oracle就不會去做介質恢復,而只做實例恢復,這樣就可以實現(xiàn)完全恢復,及時打開數(shù)據(jù)庫。
一般來說,推進數(shù)據(jù)文件頭的SCN號有兩種處理辦法:第一,利用BBED(BlockBrowerandEditor)修改數(shù)據(jù)文件頭,推進SCN號來打開數(shù)據(jù)庫;第二,設置隱含參數(shù)“_ALLOW_RESETLOGS_CORRUPTION”為TRuE來打開數(shù)據(jù)庫,該參數(shù)默認為FALSE,待數(shù)據(jù)庫打開后,要將該參數(shù)從參數(shù)文件中去掉,命令如下:
ALTERSYSTEMSET"_ALLOW_RESETLOGS_CORRUPTION"=TRUESCOPE=SPFILE;--跳過數(shù)據(jù)庫一致性檢查
ALTERSYSTEMRESET"_ALLOW_RESETLOGS_CORRUPTION"SCOPE=SPFILESID='*';--取消該參數(shù)[考點]RMAN
24.
數(shù)據(jù)文件OFFLINE之后必須要做的一件事是什么?正確答案:數(shù)據(jù)文件OFFLINE之后必須要做的一件事就是立刻執(zhí)行一次RECOVER操作,這樣無論
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吳家窯11號線施工方案
- 路基堆土預壓施工方案
- 提灌站維護施工方案
- 福建海鮮冷庫施工方案
- 鉆空施工方案
- 年加工300萬噸尾礦廢料改擴建及技術改造項目環(huán)評報告表
- 一級建造師瀝青施工方案
- 海南汽車變速箱保稅維修項目環(huán)評報告表
- 蒼南縣二模數(shù)學試卷
- 洛陽戶外兒童游樂施工方案
- 浙江杭州余杭區(qū)余杭街道招考聘用編外人員16人(必考題)模擬卷及答案
- 腹腔穿刺術(僅供參考)課件
- 四川大學C語言上機考試題
- 2022年蕪湖職業(yè)技術學院職業(yè)適應性測試題庫及答案解析
- 幼小銜接拼音課程 課件(共49張PPT)
- 免費推廣軟件大全匯總
- 建筑公司一般部門設置與崗位職責
- 法蘭理論重量表正式版
- 三年級下冊口算天天100題(A4打印版)(共32頁)
- 企業(yè)經營沙盤模擬課件 99頁PPT
- 汽車行業(yè)MSA測量系統(tǒng)分析(共98頁).ppt
評論
0/150
提交評論