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

主站蜘蛛池模板: 亚洲 成人国产| 精品少妇人妻一区二区| 极品私人尤物在线精品首页| 99精品国产电影| 国产在线91在线电影| 91精品小视频| 国产呦精品一区二区三区下载| 欧美精品在线免费| 亚洲综合色婷婷中文字幕| 波多野结衣无码视频在线观看| 午夜毛片免费观看视频 | 亚洲精品在线观看91| 乱系列中文字幕在线视频| 无码电影在线观看| 中文字幕1区2区| 91精品久久久久久无码人妻| 国产精品白浆无码流出在线看| 99成人在线观看| 精品视频一区二区三区在线播| 91精品情国产情侣高潮对白蜜| 人妖无码第一页| 亚洲欧美色中文字幕| 久久精品无码国产一区二区三区| 欧美综合区自拍亚洲综合天堂| 亚洲国产精品日韩欧美一区| 亚洲国产天堂久久综合226114| 激情午夜婷婷| 久久永久精品免费视频| 波多野结衣亚洲一区| 日韩毛片在线播放| 热九九精品| 欧美一级在线看| 国产人人射| 国产成人精品高清在线| 亚洲日韩高清无码| 自偷自拍三级全三级视频| 国产肉感大码AV无码| 中文天堂在线视频| 亚国产欧美在线人成| 91精品伊人久久大香线蕉| 99re热精品视频国产免费| 日韩中文无码av超清| 国产最爽的乱婬视频国语对白| 欧美日韩一区二区在线免费观看 | 国产激爽大片高清在线观看| 一区二区日韩国产精久久| 国产喷水视频| 日本AⅤ精品一区二区三区日| 亚洲国产天堂久久综合226114| 在线观看精品自拍视频| 色综合狠狠操| 久久国产热| AV不卡在线永久免费观看| 欧美19综合中文字幕| 黄色三级网站免费| 欧美色视频在线| 国产日韩精品欧美一区喷| 亚洲三级电影在线播放| 欧美国产日韩在线观看| 国产亚洲一区二区三区在线| 中文字幕1区2区| 人妻中文久热无码丝袜| 精品人妻一区二区三区蜜桃AⅤ| 亚洲日韩久久综合中文字幕| 国产欧美中文字幕| 人妻中文久热无码丝袜| 亚洲欧洲日韩综合色天使| 国产美女一级毛片| 成人综合在线观看| 亚洲大尺码专区影院| 久久人妻xunleige无码| 午夜免费小视频| 国产一在线| 一级毛片免费高清视频| 亚洲成网777777国产精品| 人妻无码一区二区视频| 国产无遮挡裸体免费视频| 成人国产精品2021| 国产精品yjizz视频网一二区| m男亚洲一区中文字幕| 成人另类稀缺在线观看| 国产欧美性爱网|