- 相關推薦
淺談ORACLE數據庫中的備份與恢復
備份與恢復是我們使用數據庫中不可缺少的部分,也是我們在使用數據庫時會經常碰到的問題,當我們使用一個數據庫時,總希望數據庫的內容是可靠的、正確的,但由于計算機系統的故障(硬件故障、軟件故障、網絡故障、進程故障和系統故障)影響數據庫系統的操作,影響數據庫中數據的正確性,甚至破壞數據庫,使數據庫中全部或部分數據丟失。因此當發生上述故障后,希望能重新建立一個完整的數據庫,該處理稱為數據庫恢復。恢復子系統是數據庫管理系統的一個重要組成部分。恢復處理隨所發生的故障類型所影響的結構而變化。
1.恢復數據庫所使用的結構
ORACLE數據庫使用幾種結構對可能故障來保護數據:數據庫后備、日志、回滾段和控制文件。
數據庫后備是由構成Oracle數據庫的物理文件的操作系統后備所組成。當介質故障時進行數據庫恢復,利用后備文件恢復毀壞的數據文件或控制文件。
日志,每一個Oracle數據庫實例都提供,記錄數據庫中所作的全部修改。一個實例的日志至少由兩個日志文件組成,當實例故障或介質故障時進行數據庫部分恢復,利用數據庫日志中的改變應用于數據文件,修改數據庫數據到故障出現的時刻。數據庫日志由兩部分組成:在線日志和歸檔日志。
每一個運行的Oracle數據庫實例相應地有一個在線日志,它與Oracle后臺進程LGWR一起工作,立即記錄該實例所作的全部修改。在線日志由兩個或多個預期分配的文件組成,以循環方式使用。
歸檔日志是可選擇的,一個Oracle數據庫實例一旦在線日志填滿后,可形成在線日志的歸檔文件。歸檔的在線日志文件被唯一標識并合成歸檔日志。
回滾段用于存儲正在進行的事務(為未提交的事務)所修改值的老值,該信息在數據庫恢復過程中用于撤消任何非提交的修改。
控制文件,一般用于存儲數據庫的物理結構的狀態。控制文件中某些狀態信息在實例恢復和介質恢復期間用于引導Oracle。
2.在線日志
一個Oracle數據庫的每一實例有一個相關聯的在線日志。一個在線日志由多個在線日志文件組成。在線日志文件填入日志項,日志項記錄的數據用于重構對數據庫所作的全部修改。后臺進程LGWR以循環方式寫入在線日志文件。當當前的在線日志文件寫滿后,LGWR寫入到下一可用在線日志文件當最后一個可用的在線日志文件的檢查點已完成時即可使用。如果歸檔不實施,一個已填滿的在線日志文件一當包含該在線日志文件的檢查點完成,該文件已被歸檔后即可使用。在任何時候,僅有一個在線日志文件被寫入存儲日志項,它被稱為活動的或當前在線日志文件,其它的在線日志文件為不活動的在線日志文件。
Oracle結束寫入一在線日志文件并開始寫入到另一個在線日志文件的點稱為日志開關。日志開關在當前在線日志文件完全填滿,必須繼續寫入到下一個在線日志文件時總出現,也可由DBA強制日志開關。每一日志開關出現時,每一在線日志文件賦給一個新的日志序列號。如果在線日志文件被歸檔,在歸檔日志文件中包含有它的日志序列號。
檢查點機制:當檢查點出現時,檢查點后臺進程記住寫入在線文件的下一日志行的位置,并通知數據庫寫后臺進程將SGA中修改的數據庫緩沖區寫入到磁盤上的數據文件。然后由CKPT修改全部控制文件和數據文件的標頭,反映該最后檢查點。當檢查點不發生,DBWR當需要時僅將最近最少使用的數據庫緩沖區寫入磁盤,為新數據準備緩沖區。
3.歸檔日志
Oracle要將填滿的在線日志文件組歸檔時,則要建立歸檔日志,或稱離線日志。其對數據庫后備和恢復有下列用處:
數據庫后備以及在線和歸檔日志文件,在操作系統或磁盤故障中可保證全部提交的事務可被恢復。
在數據庫打開時和正常系統使用下,如果歸檔日志是永久保持,在線后備可以進行和使用。
如果用戶數據庫要求在任何磁盤故障的事件中不丟失任何數據,那么歸檔日志必須要存在。歸檔已填滿的在線日志文件可能需要DBA執行額外的管理操作。
歸檔機制:決定于歸檔設置,歸檔已填滿的在線日志組的機制可由Oracle后臺進程ARCH自動歸檔或由用戶進程發出語句手工地歸檔。當日志組變為不活動、日志開關指向下一組已完成時,ARCH可歸檔一組,可存取該組的任何或全部成員,完成歸檔組。在線日志文件歸檔之后才可為LGWR重用。當使用歸檔時,必須指定歸檔目標指向一存儲設備,它不同于個有數據文件、在線日志文件和控制文件的設備,理想的是將歸檔日志文件永久地移到離線存儲設備、如磁帶。
數據庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。數據庫在NOARCHIVELOG方式下使用時,不能進行在線日志的歸檔。在該數據庫控制文件指明填滿的組不需要歸檔,所以一當填滿的組成為活動,在日志開關的檢查點完成,該組即可被LGWR重用。在該方式下僅能保護數據庫實例故障,不能保護介質(磁盤)故障。利用存儲在在線日志中的信息,可實現實例故障恢復。
4.數據庫后備
不管為ORACLE數據庫設計成什么樣的后備或恢復模式,數據庫數據文件、日志文件和控制文件的操作系統后備是絕對需要的,它是保護介質故障的策略部分。操作系統后備有完全后備和部分后備
完全后備:一個完全后備將構成ORACLE數據庫的全部數據庫文件、在線日志文件和控制文件的一個操作系統后備。一個完全后備在數據庫正常關閉之后進行,不能在實例故障后進行。在此時,所有構成數據庫的全部文件是關閉的,并與當前點相一致。在數據庫打開時不能進行完全后備。由完全后備得到的數據文件在任何類型的介質恢復模式中是有用的。
部分后備
部分后備為除完全后備外的任何操作系統后備,可在數據庫打開或關閉下進行。如單個表空間中全部數據文件后備、單個數據文件后備和控制文件后備。部分后備僅對在ARCHIVELOG方式下運行數據庫有用,因為存在的歸檔日志,數據文件可由部分后備恢復。在恢復過程中與數據庫其它部分一致。
5.數據庫恢復
實例故障的恢復
當實例意外地(如掉電、后臺進程故障等)或預料地(發出SHUTDOUM ABORT語句)中止時出現實例故障,此時需要實例恢復。實例恢復將數據庫恢復一故障之前的事務一致狀態。如果在在線后備發現實例故障,則需介質恢復。在其它情況Oracle在下次數據庫起動時(對新實例裝配和打開),自動地執行實例恢復。如果需要,從裝配狀態變為打開狀態,自動地激發實例恢復,由下列處理:
(1)為了解恢復數據文件中沒有記錄的數據,進行向前滾。該數據記錄在在線日志,包括對回滾段的內容恢復。
(2)回滾未提交的事務,按步1重新生成回滾段所指定的操作。
(3)釋放在故障時正在處理事務所持有的資源。
(4)解決在故障時正經歷一階段提交的任何懸而未決的分布事務。
【淺談ORACLE數據庫中的備份與恢復】相關文章:
淺談手工備份QQ數據的方法07-02
MySQL數據庫備份守則和方法04-22
用PE如何恢復電腦系統備份06-28
淺談面試中的溝通能力07-04
淺談職場中的應酬技巧06-28
如何iTunes備份07-10
如何備份QQ?07-13
淺談古詩教學中的環境教育07-02
淺談肌理在雕塑創作中的作用07-03