国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

專家在線:全面介紹恢復Oracle數據庫

2024-08-29 13:34:44
字體:
來源:轉載
供稿:網友
  這是截取自Damir Bersinic 和John Watson合著的《Oracle Database 10g OCP Certification All-In-One Exam Guide》書中第20章,Oracle出版社出版copyright 2006 ,McGraw-Hill分公司?! ≡谶@章中你將會學到的是:
  • 用控制文件挽回損失
  • 用redo日志文件挽回損失
  • 用系統要害數據文件挽回損失
  • 用非系統要害數據文件挽回損失
  要損壞Oracle數據是不可能的。環境恢復的機制保證了這一點,就是使用redo和undo來將數據庫返回到環境失敗之前的一個一致性狀態中去。然而,在媒介失敗之后丟失數據是可能的——假如數據庫治理員沒有予以適當的警惕。  預先防范是簡單的:在歸檔日志模式下運行數據庫;多路傳送控制文件,在線日志文件,以及文檔日志文件;支持數據文件和文檔日志文件。在媒介失敗之后,備份和文檔日志可以用于恢復數據庫到失敗前的點,不丟失任意一行已經被提交的數據。但是,盡管環境恢復的確是自動化的,不可避免的——媒介恢復是一個手工的過程。本章內容將會講述基本的恢復技術。可以用于更加復雜問題的比較高級的技術,將會在下章中涉及?! 〔豢杀苊庑浴浇榈幕謴褪莻€手工的過程。本章討論的是基本的恢復技術。更高級的,可以應用于更加復雜問題的技術,將會在稍后的章節中繼續討論。  恢復結構和處理過程  在媒介失敗之后,有不同的技術用于恢復,根據哪個文件被損壞的情況。數據庫由3種文件類型組成:控制文件、在線redo日志文件,以及數據文件?;謴涂刂莆募驮诰€redo日志文件的過程是一個繁瑣的過程,它們是通過多路傳送的?;謴鸵粋€或者多個數據文件的過程是比較復雜的,但是很直接。損壞的控制文件可以通過多路傳送的拷貝或者用CREATE CONTROLFILE命令重新創建的控制文件來進行恢復。在極端的情況下,它可以從備份中重新存儲,但是這一點在媒介失敗之后是從來不需要的,假如你遵循的是一個合適的多路策略。損壞的在線redo文件也可以被重新生成,Oracle提供了一條ALTER DATABASE CLEAR LOGFILE GROUP #(#是損壞成員的組的號碼)命令,它可以刪除并且重新創建日志文件組的成員。假如數據庫運行的是文檔日志模式(也應該是這樣的),日志文件組必須在Oracle答應執行清楚日志文件命令之前進行歸檔。這是因為,清除一個沒有歸檔的日志文件組,就意味著文檔日志流會丟失一個日志文件,因此恢復就是不可能的了。這樣的命令還可以有一些變化,ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #,它可以刪除并重新創建日志文件,即使是它沒有成功地歸檔,但是在執行了這條命令之后,它絕對就是執行整個數據庫備份的一個至關重要的部分。  一個受到損壞的日志文件需要使用備份和文檔日志。在媒介失敗導致日志文件的損壞之后,有兩種選擇用于恢復:完全恢復,意思是不丟失數據;還有不完全恢復,這時你通過在它完成之前停止恢復過程故意丟失一部分工作。不完全恢復是一個高級的程序,將會在第27章中講述。完全恢復過程有兩個階段。首先,被損壞的文件必須從備份中重新存儲。第二個,重新存儲的文件必須被恢復,通過使用文檔日志中的redo信息來把它及時地向前推進,直到它與數據庫的其它部分同步?! y驗貼士:在Oracle環境中,“重新存儲”的意思是用備份替換掉一個損壞或者丟失的文件;“恢復”的意思是通過使用文檔日志使文件與數據庫的其它部分同步?! ∫驗樵诰€redo日志從來沒有被RMAN備份過,那么RMAN就不能用來恢復損壞;修理由于媒介失敗導致的在線日志文件損壞可以通過SQL*Plus完成,或者是通過數據庫控制??刂莆募蛿祿募伎梢酝ㄟ^RMAN來重新存儲或者恢復;實際上,假如你把它們備份到備份集中去,RMAN就是你惟一的選項?! ∫蜷_一個數據庫,所有的控制文件拷貝,至少是每個在線日志文件組中的一個文件,還有所有的在線日志文件,都必須要顯示出來并且同步。假如,在啟動過程中,SMON發現情況不對勁,啟動就無法完成。假如一個控制文件拷貝損壞了或者丟失了,啟動就用NOMOUNT模式來終止。一條描述哪個(或者哪些)拷貝被損壞了的消息就會發送給警報日志。假設控制文件是好的,SMON就繼續打開數據庫。在這個過程中,它檢查所有在線數據文件的頭。假如頭有丟失或者損壞,就會寫適當的錯誤消息給警報日志,數據庫會繼續保持預備的模式。假如所有的在線文件都顯示出來,并且沒有損壞,但是其中的一個或者多個沒有同步,SMON會嘗試通過使用在線redo日志來對它們進行同步。這就是環境恢復的過程,在第18章有具體介紹,這個過程是自動進行的。假如所需的在線日志找不到,那么數據庫就無法打開。假如一個或者多個數據文件從備份中重新存儲了,那么它們可能會非常過時,在線redo日志也無法走那么遠的時間去恢復它們:這是你就必須使用文檔日志文件來恢復了,這是一個必須手工啟動的過程——從SQL*Plus中,假如你用的是操作系統的命令備份的話,或者使用RMAN,假如(是Oracle強烈推薦的)你是用RMAN來提交備份的。
  假如媒介損壞發生在數據庫打開的時候,那么影響的范圍就基于有哪些文件受到影響。任何控制文件拷貝的損壞都會導致數據庫環境立即終止。假如受到損壞的數據文件是SYSTEM表空間或者活動的undo表空間,那么影響是一樣的。但是對任何在線日志的損壞都不會導致環境的終止,只要還有部分日志文件組存在的話。實際上,環境會繼續工作,你的終端用戶也甚至不會注重到。但是錯誤消息會寫到警報日志中去,這種情況也需要立即糾正;這樣的糾正能夠并且應該是在線的,當人們繼續工作的時候?! 〖偃鐡p壞的數據文件時表空間的一部分,而不是SYSTEM或者其他活動的undo表空間,也不會導致環境的失敗,但是很明顯,終端用戶可能會有問題,因為數據庫的部分內容消失了。你的應用程序如何應對這種情況是不可預期的——它是完全根據應用程序是如何組織的。對損壞數據文件的重新存儲或者恢復都可以在線完成,假如它們不是屬于SYSTEM或者undo表空間的數據文件。最后,假如是組成你的臨時表空間的臨時文件受到損壞,終端用戶也完全不會注重到。Oracle不會去驗證臨時文件的存在,除非要使用它們了,并且一個經過良好調整的數據庫也許永遠也不會用到它們。這就是說,臨時文件可以在它們受到注重之前消失一陣子。同樣也意味著損壞的臨時文件可以被刪除或者重新創建,在任何時間,除非正好在那個時候要用到它。  在備份中重新存儲可以通過RMAN或者操作系統工具來完成。但是假如你的RMAN備份是備份集合,而不是映像的拷貝,重新存儲就只能通過RMAN來完成了:沒有其他的方法從數據集中解壓縮數據文件。重新存儲后的恢復也可以通過SQL*Plus命令,或者用RMAN來完成,但是也有同樣的約束條件:只有RMAN可以從備份集中解壓縮文檔日志。   從媒介失敗中恢復   媒介失敗之后的重新存儲和恢復在下一章中會進行更加具體的描述,并且在第二個OCP考試中也會具體考察,但是了解一下初級考試中的簡單問題的基本恢復也是很有必要的。這些簡單的問題是丟失了多路控制文件中的一個,和一個在線redo日志文件,以及要害和非要害數據文件丟失之后的完全恢復。  多路控制文件丟失的恢復  只要拯救了現有控制文件的多路拷貝,恢復損失的控制文件就是簡單的。只要用拯救回來的控制文件的拷貝替換它就可以了。要從備份中重新存儲被損壞的或者丟失的控制文件拷貝在這樣的情況下是沒有用處的,因為控制文件的所有的拷貝都必須是同樣的;很明顯,一個重新存儲的拷貝不會與其他幸存的拷貝同步,更不用說是數據庫的其它部分了?! 嶋H上,在損壞發生的瞬間,環境就會終止。而像往常一樣,數據庫治理員的第一個反應就是壞了的環境應該重新啟動。在NOMOUNT模式下,這不會成功的,并且會返回一個錯誤消息。警報日志將會描述哪個控制文件拷貝丟失了,還會在這個部分列出那些非默認情況的初始化參數——實際上使用了多少控制文件,以及它們都在哪里。在這一點上,你要注重三點。第一點,你需要編輯參數文件來刪除對丟失或者損壞的控制文件的參考?! ∵@樣很好,但是你的數據庫現在就要運行就會少了一部分多路拷貝,這有可能會違反你的安全條款。一個更好的選擇就是用幸存下來的拷貝來替換損壞的文件,或者真的去更改CONTROL_FILES初始化參數來刪掉對那些被損壞的文件的參考,重新參考一些新的文件,然后拷貝那些幸存的控制文件到那里去?! y驗貼士:恢復控制文件的丟失是必須要承擔停機時間的。它無法在線完成?! y驗20-1:從控制文件的丟失中恢復  在這個測驗中,假設你丟失了多路控制文件,并且要用一個拷貝來替換它?! ?、用SQL*Plus連接到你的數據庫上去,然后確保你的控制文件是多路傳輸到這個查詢的:  8、SQL> select * from v$controlfile;  這個查詢必須返回至少2行。假如沒有的話,多路傳輸你的控制文件?! ?、假設你的數據庫受到攻擊,一個控制文件損壞了,并且你的一個控制文件名字更改了。注重,在Windows上你必須首先停止Windows服務,否則Windows不會讓你更改文件名,然后再重新啟動這個服務。  10、輸入啟動命令。這次啟動會終止在nomount模式,并且返回“ORA-00205: error in identifying controlfile, check alert log for more info”錯誤消息?! ?1、拷貝幸存的控制文件到你重新命名的文件路徑上去,名字也改為你重新設定的名字?! ?2、再次輸入啟動命令,這次就會成功了。  問題示例:  丟失這些文件會導致打開的數據庫崩潰?(3項選擇)  9、一個多路控制文件  10、一個多路在線日志文件  11、一個多路文檔日志文件  12、一個活動的undo表空間數據文件  13、一個活動的臨時表空間臨時文件  14、一個SYSAUX表空間中的數據文件  15、一個SYSTEM表空間中的數據文件  16、一個包含了要害用戶數據的數據文件  一個多路控制文件的拷貝損壞。你應該怎么做?(單選)  6、用幸存的拷貝替換  7、用RMAN重新存儲  8、用操作系統命令重新存儲  9、用CREATE CONTROLFILE命令重新創建 right">(出處:清風軟件下載學院)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆尧县| 武功县| 陕西省| 正镶白旗| 庆云县| 凤翔县| 新宾| 阿克苏市| 元江| 大新县| 慈利县| 乌拉特后旗| 资中县| 公主岭市| 郓城县| 榆中县| 闻喜县| 浦北县| 宽甸| 六盘水市| 甘德县| 河西区| 文化| 商洛市| 微博| 吉木萨尔县| 米泉市| 英吉沙县| 商南县| 新巴尔虎左旗| 天镇县| 安顺市| 无为县| 清涧县| 明光市| 庆安县| 陈巴尔虎旗| 南通市| 灵璧县| 祁阳县| 灵山县|