淺談ORACLE數據庫中的備份與恢復

時(shí)間:2022-06-28 04:48:25 數據庫操作系統 我要投稿
  • 相關(guān)推薦

淺談ORACLE數據庫中的備份與恢復

  備份與恢復是我們使用數據庫中不可缺少的部分,也是我們在使用數據庫時(shí)會(huì )經(jīng)常碰到的問(wèn)題,當我們使用一個(gè)數據庫時(shí),總希望數據庫的內容是可靠的、正確的,但由于計算機系統的故障(硬件故障、軟件故障、網(wǎng)絡(luò )故障、進(jìn)程故障和系統故障)影響數據庫系統的操作,影響數據庫中數據的正確性,甚至破壞數據庫,使數據庫中全部或部分數據丟失。因此當發(fā)生上述故障后,希望能重新建立一個(gè)完整的數據庫,該處理稱(chēng)為數據庫恢復;謴妥酉到y是數據庫管理系統的一個(gè)重要組成部分;謴吞幚黼S所發(fā)生的故障類(lèi)型所影響的結構而變化。

  1.恢復數據庫所使用的結構

  ORACLE數據庫使用幾種結構對可能故障來(lái)保護數據:數據庫后備、日志、回滾段和控制文件。

  數據庫后備是由構成Oracle數據庫的物理文件的操作系統后備所組成。當介質(zhì)故障時(shí)進(jìn)行數據庫恢復,利用后備文件恢復毀壞的數據文件或控制文件。

  日志,每一個(gè)Oracle數據庫實(shí)例都提供,記錄數據庫中所作的全部修改。一個(gè)實(shí)例的日志至少由兩個(gè)日志文件組成,當實(shí)例故障或介質(zhì)故障時(shí)進(jìn)行數據庫部分恢復,利用數據庫日志中的改變應用于數據文件,修改數據庫數據到故障出現的時(shí)刻。數據庫日志由兩部分組成:在線(xiàn)日志和歸檔日志。

  每一個(gè)運行的Oracle數據庫實(shí)例相應地有一個(gè)在線(xiàn)日志,它與Oracle后臺進(jìn)程LGWR一起工作,立即記錄該實(shí)例所作的全部修改。在線(xiàn)日志由兩個(gè)或多個(gè)預期分配的文件組成,以循環(huán)方式使用。

  歸檔日志是可選擇的,一個(gè)Oracle數據庫實(shí)例一旦在線(xiàn)日志填滿(mǎn)后,可形成在線(xiàn)日志的歸檔文件。歸檔的在線(xiàn)日志文件被唯一標識并合成歸檔日志。

  回滾段用于存儲正在進(jìn)行的事務(wù)(為未提交的事務(wù))所修改值的老值,該信息在數據庫恢復過(guò)程中用于撤消任何非提交的修改。

  控制文件,一般用于存儲數據庫的物理結構的狀態(tài)?刂莆募心承顟B(tài)信息在實(shí)例恢復和介質(zhì)恢復期間用于引導Oracle。

  2.在線(xiàn)日志

  一個(gè)Oracle數據庫的每一實(shí)例有一個(gè)相關(guān)聯(lián)的在線(xiàn)日志。一個(gè)在線(xiàn)日志由多個(gè)在線(xiàn)日志文件組成。在線(xiàn)日志文件填入日志項,日志項記錄的數據用于重構對數據庫所作的全部修改。后臺進(jìn)程LGWR以循環(huán)方式寫(xiě)入在線(xiàn)日志文件。當當前的在線(xiàn)日志文件寫(xiě)滿(mǎn)后,LGWR寫(xiě)入到下一可用在線(xiàn)日志文件當最后一個(gè)可用的在線(xiàn)日志文件的檢查點(diǎn)已完成時(shí)即可使用。如果歸檔不實(shí)施,一個(gè)已填滿(mǎn)的在線(xiàn)日志文件一當包含該在線(xiàn)日志文件的檢查點(diǎn)完成,該文件已被歸檔后即可使用。在任何時(shí)候,僅有一個(gè)在線(xiàn)日志文件被寫(xiě)入存儲日志項,它被稱(chēng)為活動(dòng)的或當前在線(xiàn)日志文件,其它的在線(xiàn)日志文件為不活動(dòng)的在線(xiàn)日志文件。

  Oracle結束寫(xiě)入一在線(xiàn)日志文件并開(kāi)始寫(xiě)入到另一個(gè)在線(xiàn)日志文件的點(diǎn)稱(chēng)為日志開(kāi)關(guān)。日志開(kāi)關(guān)在當前在線(xiàn)日志文件完全填滿(mǎn),必須繼續寫(xiě)入到下一個(gè)在線(xiàn)日志文件時(shí)總出現,也可由DBA強制日志開(kāi)關(guān)。每一日志開(kāi)關(guān)出現時(shí),每一在線(xiàn)日志文件賦給一個(gè)新的日志序列號。如果在線(xiàn)日志文件被歸檔,在歸檔日志文件中包含有它的日志序列號。

  檢查點(diǎn)機制:當檢查點(diǎn)出現時(shí),檢查點(diǎn)后臺進(jìn)程記住寫(xiě)入在線(xiàn)文件的下一日志行的位置,并通知數據庫寫(xiě)后臺進(jìn)程將SGA中修改的數據庫緩沖區寫(xiě)入到磁盤(pán)上的數據文件。然后由CKPT修改全部控制文件和數據文件的標頭,反映該最后檢查點(diǎn)。當檢查點(diǎn)不發(fā)生,DBWR當需要時(shí)僅將最近最少使用的數據庫緩沖區寫(xiě)入磁盤(pán),為新數據準備緩沖區。

  3.歸檔日志

  Oracle要將填滿(mǎn)的在線(xiàn)日志文件組歸檔時(shí),則要建立歸檔日志,或稱(chēng)離線(xiàn)日志。其對數據庫后備和恢復有下列用處:

  數據庫后備以及在線(xiàn)和歸檔日志文件,在操作系統或磁盤(pán)故障中可保證全部提交的事務(wù)可被恢復。

  在數據庫打開(kāi)時(shí)和正常系統使用下,如果歸檔日志是永久保持,在線(xiàn)后備可以進(jìn)行和使用。

  如果用戶(hù)數據庫要求在任何磁盤(pán)故障的事件中不丟失任何數據,那么歸檔日志必須要存在。歸檔已填滿(mǎn)的在線(xiàn)日志文件可能需要DBA執行額外的管理操作。

  歸檔機制:決定于歸檔設置,歸檔已填滿(mǎn)的在線(xiàn)日志組的機制可由Oracle后臺進(jìn)程ARCH自動(dòng)歸檔或由用戶(hù)進(jìn)程發(fā)出語(yǔ)句手工地歸檔。當日志組變?yōu)椴换顒?dòng)、日志開(kāi)關(guān)指向下一組已完成時(shí),ARCH可歸檔一組,可存取該組的任何或全部成員,完成歸檔組。在線(xiàn)日志文件歸檔之后才可為L(cháng)GWR重用。當使用歸檔時(shí),必須指定歸檔目標指向一存儲設備,它不同于個(gè)有數據文件、在線(xiàn)日志文件和控制文件的設備,理想的是將歸檔日志文件永久地移到離線(xiàn)存儲設備、如磁帶。

  數據庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。數據庫在NOARCHIVELOG方式下使用時(shí),不能進(jìn)行在線(xiàn)日志的歸檔。在該數據庫控制文件指明填滿(mǎn)的組不需要歸檔,所以一當填滿(mǎn)的組成為活動(dòng),在日志開(kāi)關(guān)的檢查點(diǎn)完成,該組即可被LGWR重用。在該方式下僅能保護數據庫實(shí)例故障,不能保護介質(zhì)(磁盤(pán))故障。利用存儲在在線(xiàn)日志中的信息,可實(shí)現實(shí)例故障恢復。

  4.數據庫后備

  不管為ORACLE數據庫設計成什么樣的后備或恢復模式,數據庫數據文件、日志文件和控制文件的操作系統后備是絕對需要的,它是保護介質(zhì)故障的策略部分。操作系統后備有完全后備和部分后備

  完全后備:一個(gè)完全后備將構成ORACLE數據庫的全部數據庫文件、在線(xiàn)日志文件和控制文件的一個(gè)操作系統后備。一個(gè)完全后備在數據庫正常關(guān)閉之后進(jìn)行,不能在實(shí)例故障后進(jìn)行。在此時(shí),所有構成數據庫的全部文件是關(guān)閉的,并與當前點(diǎn)相一致。在數據庫打開(kāi)時(shí)不能進(jìn)行完全后備。由完全后備得到的數據文件在任何類(lèi)型的介質(zhì)恢復模式中是有用的。

  部分后備

  部分后備為除完全后備外的任何操作系統后備,可在數據庫打開(kāi)或關(guān)閉下進(jìn)行。如單個(gè)表空間中全部數據文件后備、單個(gè)數據文件后備和控制文件后備。部分后備僅對在A(yíng)RCHIVELOG方式下運行數據庫有用,因為存在的歸檔日志,數據文件可由部分后備恢復。在恢復過(guò)程中與數據庫其它部分一致。

  5.數據庫恢復

  實(shí)例故障的恢復

  當實(shí)例意外地(如掉電、后臺進(jìn)程故障等)或預料地(發(fā)出SHUTDOUM ABORT語(yǔ)句)中止時(shí)出現實(shí)例故障,此時(shí)需要實(shí)例恢復。實(shí)例恢復將數據庫恢復一故障之前的事務(wù)一致?tīng)顟B(tài)。如果在在線(xiàn)后備發(fā)現實(shí)例故障,則需介質(zhì)恢復。在其它情況Oracle在下次數據庫起動(dòng)時(shí)(對新實(shí)例裝配和打開(kāi)),自動(dòng)地執行實(shí)例恢復。如果需要,從裝配狀態(tài)變?yōu)榇蜷_(kāi)狀態(tài),自動(dòng)地激發(fā)實(shí)例恢復,由下列處理:

  (1)為了解恢復數據文件中沒(méi)有記錄的數據,進(jìn)行向前滾。該數據記錄在在線(xiàn)日志,包括對回滾段的內容恢復。

  (2)回滾未提交的事務(wù),按步1重新生成回滾段所指定的操作。

  (3)釋放在故障時(shí)正在處理事務(wù)所持有的資源。

  (4)解決在故障時(shí)正經(jīng)歷一階段提交的任何懸而未決的分布事務(wù)。

【淺談ORACLE數據庫中的備份與恢復】相關(guān)文章:

淺談手工備份QQ數據的方法07-02

MySQL數據庫備份守則和方法04-22

職業(yè)素養的Oracle數據庫課程考試改革論文07-03

用PE如何恢復電腦系統備份06-28

淺談面試中的溝通能力07-04

淺談職場(chǎng)中的應酬技巧06-28

如何iTunes備份07-10

如何備份QQ?07-13

淺談古詩(shī)教學(xué)中的環(huán)境教育07-02

淺談肌理在雕塑創(chuàng )作中的作用07-03

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆