監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買(mǎi)價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

簡(jiǎn)介數(shù)據(jù)庫(kù)中備份與恢復(fù)問(wèn)題

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

文章來(lái)源:泛普軟件

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

1 恢復(fù)數(shù)據(jù)庫(kù)所使用的結(jié)構(gòu)

ORACLE數(shù)據(jù)庫(kù)使用幾種結(jié)構(gòu)對(duì)可能故障來(lái)保護(hù)數(shù)據(jù):數(shù)據(jù)庫(kù)后備、日志、回滾段和控制文件。

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

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

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

歸檔日志是可選擇的,一個(gè)Oracle數(shù)據(jù)庫(kù)實(shí)例一旦在線日志填滿后,可形成在線日志的歸檔文件。歸檔的在線日志文件被唯一標(biāo)識(shí)并合成歸檔日志。

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

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

2 在線日志

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

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

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

3 歸檔日志

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

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

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

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

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

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

4 數(shù)據(jù)庫(kù)后備

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

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

部分后備

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

5 數(shù)據(jù)庫(kù)恢復(fù)

實(shí)例故障的恢復(fù)

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

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

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

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

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

發(fā)布:2007-04-21 13:52    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
哈爾濱OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普哈爾濱OA軟件行業(yè)資訊其他應(yīng)用

哈爾濱OA軟件 哈爾濱OA新聞動(dòng)態(tài) 哈爾濱OA管理信息化 哈爾濱OA快博 哈爾濱OA軟件行業(yè)資訊 哈爾濱軟件開(kāi)發(fā)公司 哈爾濱門(mén)禁系統(tǒng) 哈爾濱物業(yè)管理軟件 哈爾濱倉(cāng)庫(kù)管理軟件 哈爾濱餐飲管理軟件 哈爾濱網(wǎng)站建設(shè)公司