999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Oracle數據庫非歸檔模式重做日志恢復方法

2016-06-02 11:28:28祝永志曲阜師范大學信息科學與工程學院山東日照276800
網絡安全與數據管理 2016年10期

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

?

Oracle數據庫非歸檔模式重做日志恢復方法

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

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

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

0 引言

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

1 重做日志概述

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

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

圖1 Oracle數據庫系統結構

2 日志恢復存在的問題

2.1歸檔模式

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

2.2一致性檢查

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

圖2 Oracle數據庫啟動過程

2.3身份驗證

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

3 重做日志恢復

3.1恢復方法概述

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

3.2實驗過程

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

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

SQL>startup

此時系統返回如下信息:

Oracle instance started.

……

Databasemounted

ORA-00313:open failed formembers 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;

返回查詢結果如下:

NAME LOG-MODE OPEN-MODE ORCL NOARCHIVELOG MOUNTED

(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 needsmedia 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 forcemount

系統返回如下信息:

……

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';

返回查詢結果如下:

KSPPINM KSPPSTVL -no-recovery-through-resetlogs FALSE -allow-resetlogs-corruption FALSE

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

SQL>alter database archivelog;

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

SQL>archive log list;

Database logmode 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.

王超(1991 -),男,碩士研究生,主要研究方向:分布式數據庫。

祝永志(1964 -),男,碩士,教授,主要研究方向:并行與分布式計算、分布式數據庫。

引用格式:王超,祝永志.Oracle數據庫非歸檔模式重做日志恢復方法[J].微型機與應用,2016,35(10):79-81.

Method of redo log recovery for Oracle database in noarchivelog mode

Wang Chao,Zhu Yongzhi
(School of Information Science and Engineering,Qufu Normal University,Rizhao 276800,China)

Abstract:Linux operating system is widely used in the enterprise,and many enterprise installs database based on this operating system.When the database is running in noarchivelog mode,and there is no log backup for database,once the redo log file is lost,the database is not available.For this problem,a redo log recovery method in noarchivelog mode is proposed.The experiment shows that this method can effectively achieve the recovery of the redo log.

Key words:Oracle database;noarchivelogmode;log recovery;Linux

作者簡介:

收稿日期:(2016-01-25)

中圖分類號:TP311.13

文獻標識碼:A

DOI:10.19358 /j.issn.1674-7720.2016.09.027

主站蜘蛛池模板: 亚洲国产精品久久久久秋霞影院| 久久久久亚洲Av片无码观看| 尤物精品国产福利网站| 波多野结衣二区| 91亚洲视频下载| 成人第一页| 国产成人精品一区二区不卡| 99热这里只有精品2| 久久精品国产精品青草app| 激情爆乳一区二区| 欧美日韩在线第一页| 国产尤物视频网址导航| 视频二区中文无码| 免费人成网站在线观看欧美| 99精品热视频这里只有精品7| 中文字幕人妻av一区二区| 免费无码网站| 亚洲国产黄色| 国产91色在线| 成人午夜免费视频| 亚洲中文字幕av无码区| 欧美日韩国产在线人成app| 亚洲无码免费黄色网址| 国产精品久久久免费视频| 最新国语自产精品视频在| 91精品国产自产91精品资源| 中文字幕人成乱码熟女免费| 国产人免费人成免费视频| 99资源在线| 亚洲成aⅴ人在线观看| 99精品免费欧美成人小视频| a色毛片免费视频| 久久婷婷综合色一区二区| 亚洲福利一区二区三区| 国产成人精品日本亚洲77美色| 国产极品粉嫩小泬免费看| 欧洲熟妇精品视频| 国产欧美视频综合二区| 欧美成人区| 一本大道香蕉高清久久| 久久这里只精品国产99热8| 日本人真淫视频一区二区三区| 亚欧乱色视频网站大全| 欧美色图第一页| 朝桐光一区二区| 美女被躁出白浆视频播放| 亚洲日本一本dvd高清| 欧美国产日韩在线| 老司机aⅴ在线精品导航| 日本黄色不卡视频| 国产一区三区二区中文在线| 国产99精品视频| 国产一级妓女av网站| 国产剧情一区二区| 97se亚洲综合在线天天| 国产玖玖视频| 国产视频a| 国产一级毛片高清完整视频版| 一本大道AV人久久综合| 婷五月综合| 亚洲大学生视频在线播放| 成人在线观看不卡| 欧美午夜视频在线| 久久公开视频| 国产主播在线观看| 欧美啪啪网| 日韩精品成人网页视频在线 | 国产手机在线观看| 国产一级视频久久| 久久久久青草大香线综合精品 | 欧美综合成人| 自拍中文字幕| 亚洲国产无码有码| 午夜在线不卡| 中文无码日韩精品| 精品人妻无码中字系列| 91毛片网| 在线不卡免费视频| 免费国产不卡午夜福在线观看| 色婷婷综合在线| 伊人久久综在合线亚洲91| 国产欧美综合在线观看第七页|