簡(jiǎn)述遼河油田開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)備份與恢復(fù)
發(fā)布時(shí)間:2012-05-09 10:29所屬分類:計(jì)算機(jī)信息管理論文瀏覽:1次加入收藏 查看PDF文件后下載PDF文件
:遼河油田開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)經(jīng)多年建設(shè)與完善,數(shù)據(jù)庫(kù)內(nèi)容已涵蓋科研、生產(chǎn)、管理等多個(gè)專業(yè),海量的信息資源為DBA有效管理、維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)提出了嚴(yán)格要求。本文通過(guò)長(zhǎng)期實(shí)際工作積累和體會(huì),介紹作為DBA通過(guò)制定和實(shí)施周密的數(shù)據(jù)庫(kù)備份、恢復(fù)策略,以保證油田
摘要:遼河油田開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)經(jīng)多年建設(shè)與完善,數(shù)據(jù)庫(kù)內(nèi)容已涵蓋科研、生產(chǎn)、管理等多個(gè)專業(yè),海量的信息資源為DBA有效管理、維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)提出了嚴(yán)格要求。本文通過(guò)長(zhǎng)期實(shí)際工作積累和體會(huì),介紹作為DBA通過(guò)制定和實(shí)施周密的數(shù)據(jù)庫(kù)備份、恢復(fù)策略,以保證油田開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)長(zhǎng)期安全高效平穩(wěn)運(yùn)行。
關(guān)鍵詞:生產(chǎn) 數(shù)據(jù) 備份 恢復(fù)
前 言
隨著辦公自動(dòng)化和電子商務(wù)的飛速發(fā)展,企業(yè)對(duì)信息系統(tǒng)的依賴性越來(lái)越高,數(shù)據(jù)庫(kù)作為信息系統(tǒng)的核心擔(dān)當(dāng)著重要角色,當(dāng)我們不斷的將所有重要生產(chǎn)數(shù)據(jù)都存儲(chǔ)其中,使用時(shí)總希望數(shù)據(jù)庫(kù)的內(nèi)容是可靠的、正確的、完整的。但由于計(jì)算機(jī)系統(tǒng)的故障(包括機(jī)器故障、介質(zhì)故障、誤操作等),數(shù)據(jù)庫(kù)有時(shí)也能遭到破壞。由此,制定一整套適合企業(yè)自己的數(shù)據(jù)庫(kù)備份、恢復(fù)策略是十分必要,也是企業(yè)信息系統(tǒng)安全、穩(wěn)定運(yùn)行的保證。
一、數(shù)據(jù)庫(kù)應(yīng)用情況
遼河油田網(wǎng)絡(luò)經(jīng)過(guò)不斷的改造升級(jí),主干全部為千兆,桌面達(dá)千兆/百兆,在高效的網(wǎng)絡(luò)平臺(tái)支持下,數(shù)據(jù)庫(kù)服務(wù)器集中在油田信息中心統(tǒng)一管理,數(shù)據(jù)全部由數(shù)據(jù)源頭直接進(jìn)庫(kù);為便于規(guī)范化管理,通過(guò)應(yīng)用系統(tǒng)升級(jí)改造,將SQL SERVER、MYSQL等數(shù)據(jù)庫(kù)統(tǒng)一到ORACLE 920數(shù)據(jù)庫(kù)平臺(tái)。目前各采油廠開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)支持的應(yīng)用覆蓋了油田地質(zhì)靜態(tài)、開(kāi)發(fā)動(dòng)態(tài)、地質(zhì)月報(bào)、監(jiān)測(cè)化驗(yàn)、天然氣開(kāi)發(fā)、采油生產(chǎn)、井下作業(yè)、注汽管理、油氣集輸?shù)葘I(yè)系統(tǒng)及綜合辦公應(yīng)用系統(tǒng);通過(guò)信息整合及二次開(kāi)發(fā),拓展了油水井施工設(shè)計(jì)、新井措施井運(yùn)行跟蹤、生產(chǎn)調(diào)度等應(yīng)用,海量的信息存儲(chǔ)以每日近20M的速度不斷增加。
龐大的數(shù)據(jù)庫(kù)支持著油田各專業(yè)系統(tǒng)的運(yùn)行,數(shù)據(jù)資源的寶貴在企業(yè)中越來(lái)越被廣泛認(rèn)可,為及時(shí)反映油田每日的科研、開(kāi)發(fā)、生產(chǎn)、管理動(dòng)態(tài),數(shù)據(jù)庫(kù)要求7×24小時(shí)不間斷運(yùn)行,并且要保證信息安全,盡可能減少一切因素帶來(lái)的信息損失。這些都給DBA人員提出了嚴(yán)格的工作要求,要求數(shù)據(jù)庫(kù)管理員制定周密的數(shù)據(jù)備份、恢復(fù)策略。
二、數(shù)據(jù)庫(kù)常見(jiàn)故障分析
開(kāi)發(fā)生產(chǎn)數(shù)據(jù)的安全性受到油田技術(shù)、管理人員和各級(jí)領(lǐng)導(dǎo)的高度重視,我們也做了一些有預(yù)見(jiàn)性的防護(hù)工作,但這也不能完全阻止數(shù)據(jù)庫(kù)故障的發(fā)生。數(shù)據(jù)庫(kù)的錯(cuò)誤和故障是復(fù)雜多樣的,有些故障可直接導(dǎo)致數(shù)據(jù)庫(kù)的無(wú)法使用,通過(guò)多年應(yīng)用實(shí)踐,并查閱相關(guān)資料,總結(jié)數(shù)據(jù)庫(kù)常見(jiàn)的故障有:
1、用戶失誤。用戶失誤刪除一行或刪除表。
2、語(yǔ)句失效?梢远x為Oracle無(wú)法執(zhí)行某一條SQL語(yǔ)句。
3、進(jìn)程失效。進(jìn)程失效是進(jìn)程異常終止,這有可能是Oracle本身引起,也可能是用戶(如用戶從SQL*PLUS發(fā)出一個(gè)C命令)引起的。
4、網(wǎng)絡(luò)失效。網(wǎng)絡(luò)失效可能在使用多個(gè)數(shù)據(jù)庫(kù)服務(wù)器時(shí),通過(guò)通信網(wǎng)絡(luò)連結(jié)的客房/服務(wù)器配置或分布式數(shù)據(jù)庫(kù)系統(tǒng)時(shí)產(chǎn)生。
5、實(shí)例失效。實(shí)例失效可能由物理(硬件)或設(shè)計(jì)(軟件)問(wèn)題引起。例如,當(dāng)某一數(shù)據(jù)庫(kù)后臺(tái)進(jìn)程檢測(cè)到硬盤上有問(wèn)題無(wú)法寫(xiě)入時(shí),后臺(tái)進(jìn)程就會(huì)全部終止。
6、介質(zhì)失效。介質(zhì)失效是最危險(xiǎn)的錯(cuò)誤,不僅由于沒(méi)有執(zhí)行合適的備份過(guò)程,可能會(huì)丟失數(shù)據(jù),而且它通常比其它失效的恢復(fù)時(shí)間更長(zhǎng)。介質(zhì)失效的典型例子是磁盤控制器失效或磁頭損壞,這將導(dǎo)致丟失該磁盤上所有Oracle數(shù)據(jù)庫(kù)文件。
通過(guò)分析發(fā)現(xiàn),在常見(jiàn)錯(cuò)誤及故障中,輕者可導(dǎo)致生產(chǎn)數(shù)據(jù)丟失,嚴(yán)重的可失掉全部數(shù)據(jù),這是非?膳碌氖虑椋蠊麑⒑車(yán)重,所以做好開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)的備份刻不容緩。
三、備份策略及實(shí)施
為了最大限度的進(jìn)行數(shù)據(jù)庫(kù)恢復(fù),保證數(shù)據(jù)庫(kù)安全運(yùn)行,就要制定一套確實(shí)可行的備份與恢復(fù)策略,要選擇最合理的備份方法,來(lái)防止介質(zhì)失敗導(dǎo)致用戶數(shù)據(jù)丟失。而Oracle數(shù)據(jù)庫(kù)自身就提供了幾種很好的備份工具和方法:
1、物理備份。物理備份又可分為非歸檔的操作系統(tǒng)備份和歸檔的操作系統(tǒng)備份(Hot Backup),用歸檔的操作系統(tǒng)備份方法可以將數(shù)據(jù)庫(kù)恢復(fù)到介質(zhì)失敗后的失敗點(diǎn),而其它方法只能將數(shù)據(jù)庫(kù)恢復(fù)到介質(zhì)失敗的最后一次備份點(diǎn)。
2、邏輯備份。邏輯備份(logical backup)是創(chuàng)建一個(gè)直接的數(shù)據(jù)庫(kù)備份文件,它不能與歸檔日志文件組合使用。備份時(shí)使用Export工具進(jìn)行備份,使用Import工具進(jìn)行恢復(fù),其方法雖簡(jiǎn)單易行,但備份恢復(fù)時(shí)間較長(zhǎng)。
我們制定的備份目標(biāo)是:“正確備份,安全存放”。綜合這三種備份類型的利弊,根據(jù)各采油廠開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)實(shí)際運(yùn)行情況及數(shù)據(jù)量大小,決定采用歸檔的操作系統(tǒng)備份(Hot Backup)和邏輯備份(Export)相結(jié)合的策略,并把備份時(shí)間安排在數(shù)據(jù)庫(kù)使用率最低、網(wǎng)絡(luò)負(fù)擔(dān)最輕的中午和晚間進(jìn)行。
我們?cè)谳^好的硬件支持環(huán)境下,實(shí)現(xiàn)了雙/多機(jī)、異地存放備份數(shù)據(jù)構(gòu)想。目前的開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)服務(wù)器采用多臺(tái)SUNV880服務(wù)器,其中一部分正常運(yùn)轉(zhuǎn),另一部分作為備用服務(wù)器。把備份時(shí)間安排在每天12:00和19:00各進(jìn)行一次全庫(kù)方式的邏輯備份(Export),同時(shí)為彌補(bǔ)全庫(kù)方式邏輯的備份文件大、恢復(fù)速度慢等不足,在全庫(kù)Export后對(duì)開(kāi)發(fā)動(dòng)態(tài)、采油生產(chǎn)、井下作業(yè)等更新率較高的數(shù)據(jù)進(jìn)行用戶方式的Export,然后將備份數(shù)據(jù)拷貝到備份服務(wù)器上。
(1)每晚24:00對(duì)數(shù)據(jù)庫(kù)所有表空間和控制文件做聯(lián)機(jī)熱備份,然后將備份數(shù)據(jù)拷貝到信息中心內(nèi)的備用服務(wù)器上;
(2)每半年(月數(shù)據(jù)處理完)將全庫(kù)邏輯備份(Export)數(shù)據(jù)刻到光盤上,送檔案室保存;
(3)每月10日左右在備用服務(wù)器上對(duì)備份數(shù)據(jù)進(jìn)行恢復(fù)測(cè)試,以檢驗(yàn)其備份的正確性。
圖1 備份數(shù)據(jù)存放流程圖
3、Hot Backup(熱備份)。
(1)改歸檔方式。數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中對(duì)日志的處理方式不同,Oracle數(shù)據(jù)庫(kù)可運(yùn)行在兩種不同的方式下,即非歸檔方式(NOARCHIVELOG)和歸檔方式(ARCHIVELOG)。Oracle數(shù)據(jù)庫(kù)缺省的運(yùn)行方式是非歸檔方式,但我們備份策略中選擇歸檔的操作系統(tǒng)備份(Hot Backup),所以首先要改變數(shù)據(jù)庫(kù)的運(yùn)行方式。修改數(shù)據(jù)庫(kù)的參數(shù)文件,用ORACLE的管理工具Enterprise Manager Console更直觀、更方便,分別改動(dòng)以下(圖2)、(圖 3)中的參數(shù)。
圖2 更改數(shù)據(jù)庫(kù)參數(shù)文件界面圖
圖3 更改數(shù)據(jù)庫(kù)參數(shù)文件界面圖
(2)重啟數(shù)據(jù)庫(kù)啟動(dòng)歸檔方式
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
(3)聯(lián)機(jī)備份表空間
首先標(biāo)記聯(lián)機(jī)表空間回收的開(kāi)始
SQL> alter tablespace 表空間名 begin backup;
用操作系統(tǒng)命令備份數(shù)據(jù)文件
最后標(biāo)記聯(lián)機(jī)的表空間回收結(jié)束
SQL> alter tablespace 表空間名 end backup;
循環(huán)用此方法將數(shù)據(jù)庫(kù)中所有表空間備份出來(lái)。
(4)聯(lián)機(jī)備份控制文件
SQL> alter database backup controlfile to '文件名' reuse;
每天晚間讓系統(tǒng)自動(dòng)執(zhí)行第3步聯(lián)機(jī)備份表空間和第4步聯(lián)機(jī)備份控制文件,將數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件和控制文件備份出來(lái),然后拷貝到異地的服務(wù)器上,并每隔一小時(shí)向異地服務(wù)器上拷貝一次歸檔的日志文件。
4、Export(邏輯備份)。命令格式如下:
Exp 用戶名/口令 file=db_back log= exp_back.log bueeer=4096 full=y
四、恢復(fù)方法
數(shù)據(jù)庫(kù)的恢復(fù)可分為兩大類:完全恢復(fù)、不完全恢復(fù)。完全恢復(fù)指將數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障的時(shí)間點(diǎn),不丟失任何數(shù)據(jù)。不完全恢復(fù)指將數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障前的某一個(gè)時(shí)間點(diǎn),此時(shí)間點(diǎn)以后的所有改動(dòng)將會(huì)丟失。Oracle數(shù)據(jù)庫(kù)恢復(fù)過(guò)程分兩步進(jìn)行,首先把存放在重做日志文件中的所有重做運(yùn)用到數(shù)據(jù)文件,之后對(duì)重做中所有未提交的事務(wù)進(jìn)行回滾,這樣所有數(shù)據(jù)就恢復(fù)到發(fā)生災(zāi)難那一時(shí)刻了。數(shù)據(jù)庫(kù)的恢復(fù)只能在發(fā)生故障之前的數(shù)據(jù)文件上運(yùn)用重做,將其恢復(fù)到故障時(shí)刻,而不能將數(shù)據(jù)文件反向回滾到之前的某一個(gè)時(shí)刻。
我們?cè)O(shè)計(jì)數(shù)據(jù)庫(kù)恢復(fù)方案時(shí),充分結(jié)合ORACLE恢復(fù)的特點(diǎn)和以往數(shù)據(jù)庫(kù)出現(xiàn)的錯(cuò)誤,以及我們能夠預(yù)想到的故障,把這些錯(cuò)誤進(jìn)行分類,然后對(duì)備份策略進(jìn)行恢復(fù)測(cè)試。因?yàn)閷?duì)數(shù)據(jù)庫(kù)的控制文件和聯(lián)機(jī)日志文件都在不同的磁盤上做了鏡像,所以對(duì)這兩種類型的文件的恢復(fù)基本上不用去考慮了,下面主要說(shuō)一下用戶級(jí)錯(cuò)誤、數(shù)據(jù)文件、所有文件丟失的恢復(fù)方法。
1、用戶誤操作的恢復(fù)。由于用戶誤操作造成數(shù)據(jù)及表的丟失,其補(bǔ)救措施主要是導(dǎo)入最新的邏輯備份。命令格式:
IMP 用戶名/口令 file=db_back log= imp_back.log bueeer=4096 fromuse=cxxt touser=cxxt tables=表名
2、恢復(fù)數(shù)據(jù)文件。當(dāng)發(fā)生介質(zhì)失效時(shí),該磁盤上所有Oracle數(shù)據(jù)庫(kù)文件將丟失,當(dāng)介質(zhì)修復(fù)后,需要對(duì)該磁盤上的數(shù)據(jù)庫(kù)文件進(jìn)行恢復(fù)(只描述數(shù)據(jù)文件的恢復(fù)過(guò)程)。
·關(guān)閉數(shù)據(jù)庫(kù):
SQL> shutdown immediate
·啟動(dòng)數(shù)據(jù)庫(kù)到MOUNT方式:
SQL> startup mount
·脫機(jī)丟失的數(shù)據(jù)文件:
SQL> alter database datafile ‘home3/oradata/cxxt.dbf’ offline;
然后拷貝此數(shù)據(jù)文件的熱備;
·恢復(fù)數(shù)據(jù)文件,然后將其聯(lián)機(jī):
SQL> recover datafile ‘home3/oradata/cxxt.dbf’;
SQL> alter database datafile ‘home3/oradata/cxxt.dbf’ online;
·打開(kāi)數(shù)據(jù)庫(kù):
SQL> alter database open;
3、將數(shù)據(jù)庫(kù)恢復(fù)到另一臺(tái)服務(wù)器上。當(dāng)發(fā)生介質(zhì)失效,而又不能及時(shí)修復(fù)時(shí),我們會(huì)將數(shù)據(jù)庫(kù)恢復(fù)到另一臺(tái)備份服務(wù)器上。
·關(guān)閉數(shù)據(jù)庫(kù)
SQL> shutdown immediate
拷貝所有數(shù)據(jù)文件和控制文件的熱備份到新服務(wù)器上(數(shù)據(jù)庫(kù)文件所存放的目錄最好與損壞的數(shù)據(jù)庫(kù)相同)。
·啟動(dòng)數(shù)據(jù)庫(kù)到MOUNT方式
SQL> startup mount
·恢復(fù)數(shù)據(jù)庫(kù),然后打開(kāi)數(shù)據(jù)庫(kù)
SQL> recover database until cancel using backup controlfile;
SQL> alter database open resetlogs;
4、幾點(diǎn)注意事項(xiàng):
(1) 本文討論所有情況的默認(rèn)前提是數(shù)據(jù)庫(kù)運(yùn)行在歸檔(ARCHIVELOG)方式下,并只涉及到一般常見(jiàn)的情況和最基本的恢復(fù)方法。
(2) 一旦數(shù)據(jù)庫(kù)發(fā)生災(zāi)難,最好在進(jìn)行恢復(fù)之前做一次完全的冷備份,以便在進(jìn)行恢復(fù)時(shí)產(chǎn)生差錯(cuò)還可以進(jìn)行補(bǔ)救。其實(shí)很大一部分?jǐn)?shù)據(jù)丟失是由于不正確的恢復(fù)操作所引起的。
(3) 當(dāng)數(shù)據(jù)庫(kù)完成恢復(fù)之后,尤其是使用resetlogs選項(xiàng)打開(kāi)數(shù)據(jù)庫(kù)之后,要馬上備份數(shù)據(jù)庫(kù)。
(4) 要特別注意當(dāng)進(jìn)行數(shù)據(jù)庫(kù)完全恢復(fù),從發(fā)生故障的時(shí)間點(diǎn)前的備份中恢復(fù)損壞文件時(shí),一定不要使備份中的redo log文件覆蓋當(dāng)前的redo log文件,否則就只能進(jìn)行不完全恢復(fù)并,且要丟失一部分?jǐn)?shù)據(jù)了。
(5) 按ORACLE公司建議,做聯(lián)機(jī)日志和控制文件的鏡像。
五、結(jié)束語(yǔ)
Oracle 提供的備份、恢復(fù)功能非常健全,方式、方法也很多,給DBA提供了較大的選擇空間,備份計(jì)劃越好,在恢復(fù)過(guò)程中選擇的余地越大。以上談到的備份、恢復(fù)策略及方法主要是根據(jù)遼河油田實(shí)際生產(chǎn)情況,綜合企業(yè)信息資源及員工情況而制定的,通過(guò)實(shí)際驗(yàn)證能夠適應(yīng)我廠開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)的運(yùn)行狀況,且簡(jiǎn)便、易行,但距7×24小時(shí)不間斷運(yùn)行的要求還有差距,能夠?qū)崿F(xiàn)真正的雙機(jī)容錯(cuò)備份也是我們的一個(gè)愿望。從企業(yè)信息化角度來(lái)講,油田開(kāi)發(fā)生產(chǎn)數(shù)據(jù)庫(kù)的安全機(jī)制不僅僅是數(shù)據(jù)庫(kù)管理員、信息中心或是信息工作者的職責(zé),更是企業(yè)硬件環(huán)境、員工素質(zhì)、協(xié)作精神等多方面因素綜合考驗(yàn)。
參考文獻(xiàn)
[1](美)瓦普瑞(Velpuri,K.)等.何江華等編譯.Oracle8備份與恢復(fù)手冊(cè).第一版.北京:機(jī)械工業(yè)出版社,1998.10.
[2]滕永昌.Oracle9i數(shù)據(jù)管理員. 2002.02
上一篇:淺析“園林通”綠化管理系統(tǒng)的升級(jí)優(yōu)化與應(yīng)用
下一篇:完善和提高我國(guó)工程造價(jià)管理信息化應(yīng)用水平
相關(guān)文章推薦
- 企業(yè)信息化管理有何策略
- 學(xué)校信息化如何管理與服務(wù)
- 計(jì)算機(jī)專業(yè)實(shí)訓(xùn)基地如何建設(shè)
- 計(jì)算機(jī)專業(yè)課教育如何探索
- 突發(fā)事件信息安全管理對(duì)策研究
- 計(jì)算機(jī)數(shù)據(jù)庫(kù)的主要備份方式及恢
- 計(jì)算機(jī)技術(shù)發(fā)展及未來(lái)趨勢(shì)
- 計(jì)算機(jī)軟件工程維護(hù)措施與方法
- 計(jì)算機(jī)科學(xué)與技術(shù)在現(xiàn)代教育中有
- 計(jì)算機(jī)科學(xué)及技術(shù)有何發(fā)展趨勢(shì)