《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > Oracle數據庫非歸檔模式重做日志恢復方法
Oracle數據庫非歸檔模式重做日志恢復方法
2016年微型機與應用第10期
王超,祝永志
(曲阜師范大學 信息科學與工程學院,山東 日照 276800)
摘要: Linux系統是在企業中廣泛使用的操作系統,企業亦多基于該操作系統安裝數據庫。當數據庫運行在非歸檔模式中,且數據庫處于無日志備份的情況時,一旦重做日志文件丟失將會導致數據庫不可用。針對Oracle數據庫重做日志文件丟失問題,提出一種非歸檔模式下的重做日志恢復方法。實驗證明,該方法能有效實現重做日志的無備份恢復。
Abstract:
Key words :

  王超,祝永志

  (曲阜師范大學 信息科學與工程學院,山東 日照 276800)

  摘要Linux系統是在企業中廣泛使用的操作系統,企業亦多基于該操作系統安裝數據庫。當數據庫運行在非歸檔模式中,且數據庫處于無日志備份的情況時,一旦重做日志文件丟失將會導致數據庫不可用。針對Oracle數據庫重做日志文件丟失問題,提出一種非歸檔模式下的重做日志恢復方法。實驗證明,該方法能有效實現重做日志的無備份恢復。

  關鍵詞:Oracle數據庫;非歸檔模式;日志恢復;Linux

  0引言

  Oracle數據庫是廣泛應用的大型關系型數據庫,數據庫的高可用性是一個重要的研究課題,快速準確地恢復數據庫日志文件對提高數據庫可用性有重要意義。本文以Linux操作系統為基礎,針對非歸檔模式下重做日志文件丟失問題提出一種恢復方法。實驗表明,該方法能有效實現非歸檔模式下的重做日志文件恢復,實現數據庫的可用性。

1重做日志概述

  重做日志文件(Redo Log File)用于保存表、索引或其他Oracle對象中添加、刪除或者改變數據的記錄。由于Oracle用循環的方式重復使用重做日志文件,因此每個Oracle數據庫有且至少有兩個重做日志文件。當一個重做日志文件充滿重做日志條目時,如果系統需要實例恢復,則當前的日志文件標記為ACTIVE;如果不需要實例恢復,則標記為INACTIVE;系統從文件開始按序列使用下一個日志文件,并將其標記為CURRENT[1]。在Oracle數據庫體系結構中,數據文件、控制文件、重做日志文件和歸檔日志文件等組成數據庫的文件系統,如圖1所示。

001.jpg

  在現實使用中,為了保證數據庫穩定運行,通常需要對數據庫日志文件備份,日志文件與其鏡像文件記錄相同的日志信息,共同組成日志文件組。為了確保日志文件的安全,在同一個組中的日志文件通常會被放在不同的磁盤中[2]。日志文件丟失可能是由數據庫管理員(Database Administrator,DBA)操作引起不當,如誤刪日志文件,或由于磁盤存儲問題導致數據庫日志文件丟失。在重做日志文件丟失期間,可能會引起數據庫系統無法使用,此時一旦數據庫數據文件丟失,將無法及時恢復,有可能會造成極大的損失。因此,確保重做日志文件的安全性、冗余性對確保數據庫系統穩定是極為重要的。

2日志恢復存在的問題

  2.1歸檔模式

  Oracle數據庫可以運行在歸檔(Archivelog)模式和非歸檔(Noarchivelog)模式。數據庫非歸檔模式只能用于保護數據庫實例失敗,而不能用于保護存儲介質失敗。為了防止數據庫物理文件損壞所導致的數據丟失,數據庫通常運行在歸檔模式下[3]。在實際的使用中,可能由于DBA的錯誤操作使數據庫系統運行在非歸檔模式下,此時一旦重做日志文件丟失,則無法通過歸檔日志恢復重做日志。在此前研究中,數據庫日志的備份與恢復策略大多是基于歸檔模式[4],在非歸檔模式下的數據庫恢復也大多是使用RMAN通過備份文件恢復[56]。

  2.2一致性檢查

  在Oracle數據庫啟動過程中,當啟系統動到裝載數據庫MOUNT狀態時會進行數據一致性檢查[7],如圖2所示。在重做日志丟失的情況下,無法完成數據一致性檢查,為了使數據庫恢復可用,需要通過修改系統隱藏參數,使數據庫在啟動時跳過一致性檢查。

  

002.jpg

  2.3身份驗證

  在Oracle數據庫日志文件丟失期間,數據庫無法正常啟動并進行基本的身份驗證。此時,對數據庫的操作需要通過SYS用戶進行,需通過操作系統認證(Operating System Authentication,OSA)的方式獲得SYS用戶權限。

3重做日志恢復

  3.1恢復方法概述

  在Linux環境中,對非歸檔模式下故障的Oracle數據庫系統使用數據庫控制文件實現數據庫恢復,并通過修改Linux系統中Oracle數據庫的隱藏參數“_allow_resetlogs_corruption”值實現跳過啟動一致性檢查,實現數據庫啟動,在此基礎上使用resetlogs方法完成重做日志文件的恢復。基于以上方法,進行以下實驗。

  3.2實驗過程

  實驗基于Linux環境中Oracle 11g R2數據庫系統,由于Linux文件系統與Windows文件系統的差別,其恢復過程與在Windows環境中的恢復過程存在一定差異。為了模擬實際使用中重做日志恢復效果,這里手動刪除redo01.log、redo02.log、redo03.log 3個日志文件。在實際操作中建議提前對數據文件備份,防止恢復失敗導致數據丟失。在實驗過程中也對一些常見的系統異常提示進行相應的處理,具體實驗操作如下。

  (1)進入系統命令終端,通過OSA方式獲得SYS用戶權限,按照常規流程使用startup命令啟動Oracle數據庫進程:

  SQL>startup

  此時系統返回如下信息:

  Oracle instance started.

  ……

  Database mounted

  ORA-00313:open failed for members of log group 1 of thread 1

  ORA27037:unable to obtain file status

  Linux ERROR:2:No such file or directory

  Additional information:3

  (2)由于該數據庫文件系統缺少重做日志文件,系統提示無法找到文件,數據庫啟動過程中系統報錯。此時,可以使用下面的命令查詢當前數據庫的實例名、數據庫歸檔模式和打開模式,確定當前狀態所處開啟模式:

  SQL>select name,log_mode from vMYMdatabase;

  返回查詢結果如下:

2.png

  (3)這里的LOG_MODE為NOARCHIVELOG模式,說明數據庫處于非歸檔模式,且當前數據庫開啟到MOUNTED狀態。此時,使用resetlogs方法打開數據庫,輸入以下命令:

  SQL>alter database open resetlogs;

  系統返回信息如下:

  ……

  ERROR at line 1:

  ORA01139:RESETLOGS option only valid after an complete database recovery

  (4)根據系統提示,數據庫如果要使用resetlogs方法,則需要在一個系統恢復之后,因此,需先對數據庫實施數據恢復。在該實驗的情況中,由于實驗環境中僅重做日志文件丟失,而控制文件未丟失,此處可通過使用控制文件對數據庫進行恢復,使用如下命令:

  SQL>recovery database using backup controlfile;

  系統返回異常:

  ……

  ORA00308:cannot open archived log

  ORA27037:unable to obtain file status

  Linuxx86_64 Error:2:No such file or directory

  (5)該問題的產生是由于系統處于非歸檔模式下,系統提示錯誤,歸檔日志無法使用,但實際中數據庫恢復過程已經通過控制文件完成,此時再次使用resetlogs方法進行數據庫日志恢復,系統返回異常:

  ORA01113:file 1 needs media recovery

  ORA01110:data file 1:’/usr/app/oracle/oradata/orcl/

  system01.dbf’

  (6)該異常提示表明:如果要使用resetlogs方法恢復則需要通過恢復媒介,這里由于重做日志文件丟失,無法通過媒介來恢復。因此需要修改隱藏參數,讓Oracle數據庫忽略數據一致性檢查。使用以下命令:

  SQL>alter system set”_allow_resetlogs_corruption”

  =true scope=spfile;

  System altered.

  (7)在修改完此參數后,使用強制數據庫重啟命令啟動數據庫:

  SQL>startup force mount

  系統返回如下信息:

  ……

  Database mounted.

  (8)數據庫裝載成功后,再次使用resetlogs方法執行數據庫恢復。在一段時間之后,系統返回信息“Database altered”。該信息表明數據庫重做日志恢復完成,打開文件所在目錄,實例文件夾中顯示redo01.log、redo02.log、redo03.log 3個日志文件,重啟數據庫即完成恢復。

  (9)修改_allow _resetlogs_corruption參數為系統默認的false,則在啟動時進行數據一致性檢查:

  SQL>alter system reset”_allow_resetlogs_corruption” scope=spfile;

  (10)使用startup force命令重啟數據庫后,查詢修改的隱藏參數值:

  SQL>selcet KSPPINM,KSPPSTVL from xMYMksppi a,

  xMYMksppcv b where a.indx=b.indx and ksppinm like ‘%resetlogs’;

  返回查詢結果如下:

1.png

  (11)啟用Oracle數據庫的歸檔模式,增強數據庫系統的可用性:

  SQL>alter database archivelog;

  使用命令查看歸檔日志列表:

  SQL>archive log list;

  Database log mode Archive Mode Automatic archival Enable

  得到以上返回信息說明數據庫已經運行在歸檔模式下,實驗完成。

4結論

  通過實驗證明,本文提出的Oracle數據庫重做日志的恢復方法能夠有效實現在Linux系統下非歸檔模式重做日志文件的恢復,實現Oracle數據庫系統的故障恢復,提高數據庫系統的可用性。

  參考文獻

  [1] BRYLA B,LONEY K.Oracle database 11g DBA handbook[M].New York:McGrawHill,2007.

  [2] 王偉平.Oracle 11g網絡大講堂[M].北京:清華大學出版社,2013.

  [3] 賀亞茹.Oracle數據庫日志文件損壞時修復方法的實驗研究[J].計算機應用,2009,29(S2):393395.

  [4]韋德強.Oracle數據庫的備份與恢復策略[J].電腦知識與技術,2010,6(19):53675370.

  [5] 王良瑩.Oracle數據庫故障恢復技術剖析[J].電腦編程技巧與維護,2011,50(14):123124, 135.

  [6] 劉超,張明安.基于Oracle數據庫系統的備份與恢復技術研究[J].軟件,2014,35(3):125128.

  [7] 周文瓊,王樂球.Oracle數據庫啟動過程研究與實踐[J].軟件導刊,2011,10(7):169171.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩一级欧洲| 欧美一二三区精品| 亚洲自拍偷拍网址| 亚洲精品日韩综合观看成人91| 国产亚洲一区二区三区| 国产精品久久久一本精品| 欧美日韩视频在线| 欧美日韩美女| 欧美日韩国产色综合一二三四 | 亚洲网站在线| 亚洲视频在线观看视频| 亚洲视频免费| 亚洲一区二区四区| 亚洲欧美成人| 欧美在线在线| 久久久免费av| 久久婷婷亚洲| 免费不卡在线观看| 欧美激情 亚洲a∨综合| 欧美精品偷拍| 欧美日精品一区视频| 国产精品久久久久久久久久久久| 国产精品日产欧美久久久久| 国产精品亚洲精品| 国产午夜精品理论片a级大结局| 国产一区二区三区最好精华液| 精品999在线播放| 亚洲丰满在线| 日韩一级裸体免费视频| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区日韩在线观看| 亚洲一区国产| 欧美呦呦网站| 日韩视频中文| 亚洲女同在线| 久久久一区二区三区| 免费亚洲一区| 国产精品成人免费| 国产日韩一区二区三区在线播放| 狠狠入ady亚洲精品经典电影| 亚洲国产精品va在线看黑人动漫| 99国产精品| 西西裸体人体做爰大胆久久久| 久久国产精品黑丝| 99人久久精品视频最新地址| 亚洲男人第一av网站| 久久久久9999亚洲精品| 欧美成人中文字幕| 国产精品xnxxcom| 国产一区二区三区直播精品电影| 91久久国产精品91久久性色| 亚洲天堂网在线观看| 久久精品视频免费| 亚洲婷婷综合色高清在线| 久久精品国产999大香线蕉| 欧美/亚洲一区| 国产精品美女999| 尤物精品在线| 亚洲午夜在线观看视频在线| 亚洲福利视频在线| 亚洲一二三级电影| 久久三级福利| 国产精品s色| 永久久久久久| 亚洲永久免费av| 亚洲欧洲日夜超级视频| 亚洲欧美日韩综合aⅴ视频| 久久综合九色综合久99| 欧美调教视频| 亚洲电影免费在线观看| 亚洲综合导航| 亚洲另类一区二区| 久久精品国产免费看久久精品| 欧美另类变人与禽xxxxx| 国产精品区一区| 亚洲国产精品va在线看黑人动漫| 亚洲免费婷婷| 日韩一级裸体免费视频| 久久精品国产综合精品| 欧美三区美女| 亚洲第一综合天堂另类专| 亚洲欧美中文在线视频| 99精品视频网| 老巨人导航500精品| 国产精品一级在线| 亚洲美女区一区| 亚洲国产日韩综合一区| 欧美一级理论片| 欧美视频久久| 亚洲欧洲一区二区三区| 亚洲第一在线视频| 久久成人亚洲| 国产精品区一区二区三区| 亚洲精品美女在线观看播放| 亚洲国产精品t66y| 久久精品国产99国产精品澳门| 国产精品大全| 亚洲精品影院在线观看| 亚洲黄色小视频| 久久免费的精品国产v∧| 国产精品中文字幕欧美| 一本到12不卡视频在线dvd| 亚洲久久一区二区| 免费看亚洲片| 亚洲第一主播视频| 久久精品99无色码中文字幕| 欧美在线观看一区二区| 国产精品免费视频观看| 艳妇臀荡乳欲伦亚洲一区| 一本色道久久精品| 欧美人与禽性xxxxx杂性| 亚洲国产色一区| 亚洲精品久久久久| 欧美国产成人在线| 尤物九九久久国产精品的分类| 久久精品水蜜桃av综合天堂| 久久久久亚洲综合| 韩国精品在线观看| 久久国产手机看片| 老牛国产精品一区的观看方式| 国内精品一区二区三区| 久久国产精品久久久久久| 久久精品91| 国语自产精品视频在线看抢先版结局 | 久久精品欧美日韩精品| 国产一区二区三区高清| 欧美在线www| 美女精品国产| 亚洲国产精品尤物yw在线观看| 亚洲精品视频免费在线观看| 欧美激情影院| 日韩一级精品| 亚洲欧美日韩一区| 国产欧美 在线欧美| 欧美一区二区三区免费视频| 久久亚洲私人国产精品va媚药| 在线观看不卡| 日韩视频一区二区| 欧美日韩色一区| 亚洲四色影视在线观看| 欧美在线资源| 激情久久综合| 亚洲精品综合在线| 欧美视频精品一区| 亚洲欧美日韩精品久久奇米色影视 | 亚洲一区二区在线免费观看视频 | 国产精品国产三级国产专播精品人| 在线中文字幕一区| 欧美影院视频| 激情成人综合| 一区二区三区偷拍| 国产精品午夜电影| 亚洲大黄网站| 欧美日韩国产影片| 亚洲欧美成人网| 噜噜爱69成人精品| 99国产精品99久久久久久粉嫩| 性欧美8khd高清极品| 精品成人久久| 亚洲香蕉网站| 国产主播精品| 99热在这里有精品免费| 国产精品一区二区久久久| 久久精品女人的天堂av| 欧美人与性禽动交情品| 亚洲欧美日韩国产精品| 欧美电影资源| 亚洲欧美韩国| 欧美高清视频一区二区三区在线观看| 一区二区三区久久精品| 久久免费99精品久久久久久| 日韩一区二区免费看| 久久精品国产99国产精品澳门| 亚洲日本欧美天堂| 久久国产一二区| 日韩视频免费看| 久久久亚洲一区| av成人动漫| 美女脱光内衣内裤视频久久影院| 一区二区三区欧美在线| 免费试看一区| 香蕉久久夜色精品国产| 欧美日韩视频在线一区二区| 久久黄色级2电影| 国产精品久久9| 亚洲精品一区二区在线观看| 国产欧美精品日韩| 一区二区高清| 尤物99国产成人精品视频| 香蕉久久精品日日躁夜夜躁| 亚洲第一在线综合在线| 欧美伊人久久| 日韩午夜av电影| 老司机aⅴ在线精品导航| 亚洲无线一线二线三线区别av| 欧美1区3d| 久久精品毛片| 国产欧美一区二区视频| 亚洲宅男天堂在线观看无病毒| 亚洲福利专区|