亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Oracle數(shù)據(jù)庫非歸檔模式重做日志恢復(fù)方法

        2016-06-02 11:28:28祝永志曲阜師范大學(xué)信息科學(xué)與工程學(xué)院山東日照276800
        關(guān)鍵詞:Oracle數(shù)據(jù)庫

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

        ?

        Oracle數(shù)據(jù)庫非歸檔模式重做日志恢復(fù)方法

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

        摘 要:Linux系統(tǒng)是在企業(yè)中廣泛使用的操作系統(tǒng),企業(yè)亦多基于該操作系統(tǒng)安裝數(shù)據(jù)庫。當(dāng)數(shù)據(jù)庫運(yùn)行在非歸檔模式中,且數(shù)據(jù)庫處于無日志備份的情況時(shí),一旦重做日志文件丟失將會(huì)導(dǎo)致數(shù)據(jù)庫不可用。針對(duì)Oracle數(shù)據(jù)庫重做日志文件丟失問題,提出一種非歸檔模式下的重做日志恢復(fù)方法。實(shí)驗(yàn)證明,該方法能有效實(shí)現(xiàn)重做日志的無備份恢復(fù)。

        關(guān)鍵詞:Oracle數(shù)據(jù)庫;非歸檔模式;日志恢復(fù);Linux

        0 引言

        Oracle數(shù)據(jù)庫是廣泛應(yīng)用的大型關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)庫的高可用性是一個(gè)重要的研究課題,快速準(zhǔn)確地恢復(fù)數(shù)據(jù)庫日志文件對(duì)提高數(shù)據(jù)庫可用性有重要意義。本文以Linux操作系統(tǒng)為基礎(chǔ),針對(duì)非歸檔模式下重做日志文件丟失問題提出一種恢復(fù)方法。實(shí)驗(yàn)表明,該方法能有效實(shí)現(xiàn)非歸檔模式下的重做日志文件恢復(fù),實(shí)現(xiàn)數(shù)據(jù)庫的可用性。

        1 重做日志概述

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

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

        圖1 Oracle數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

        2 日志恢復(fù)存在的問題

        2.1歸檔模式

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

        2.2一致性檢查

        在Oracle數(shù)據(jù)庫啟動(dòng)過程中,當(dāng)啟系統(tǒng)動(dòng)到裝載數(shù)據(jù)庫MOUNT狀態(tài)時(shí)會(huì)進(jìn)行數(shù)據(jù)一致性檢查[7],如圖2所示。在重做日志丟失的情況下,無法完成數(shù)據(jù)一致性檢查,為了使數(shù)據(jù)庫恢復(fù)可用,需要通過修改系統(tǒng)隱藏參數(shù),使數(shù)據(jù)庫在啟動(dòng)時(shí)跳過一致性檢查。

        圖2 Oracle數(shù)據(jù)庫啟動(dòng)過程

        2.3身份驗(yàn)證

        在Oracle數(shù)據(jù)庫日志文件丟失期間,數(shù)據(jù)庫無法正常啟動(dòng)并進(jìn)行基本的身份驗(yàn)證。此時(shí),對(duì)數(shù)據(jù)庫的操作需要通過SYS用戶進(jìn)行,需通過操作系統(tǒng)認(rèn)證(Operating System Authentication,OSA)的方式獲得SYS用戶權(quán)限。

        3 重做日志恢復(fù)

        3.1恢復(fù)方法概述

        在Linux環(huán)境中,對(duì)非歸檔模式下故障的Oracle數(shù)據(jù)庫系統(tǒng)使用數(shù)據(jù)庫控制文件實(shí)現(xiàn)數(shù)據(jù)庫恢復(fù),并通過修改Linux系統(tǒng)中Oracle數(shù)據(jù)庫的隱藏參數(shù)“-allow-resetlogscorruption”值實(shí)現(xiàn)跳過啟動(dòng)一致性檢查,實(shí)現(xiàn)數(shù)據(jù)庫啟動(dòng),在此基礎(chǔ)上使用resetlogs方法完成重做日志文件的恢復(fù)?;谝陨戏椒ǎM(jìn)行以下實(shí)驗(yàn)。

        3.2實(shí)驗(yàn)過程

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

        (1)進(jìn)入系統(tǒng)命令終端,通過OSA方式獲得SYS用戶權(quán)限,按照常規(guī)流程使用startup命令啟動(dòng)Oracle數(shù)據(jù)庫進(jìn)程:

        SQL>startup

        此時(shí)系統(tǒng)返回如下信息:

        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)由于該數(shù)據(jù)庫文件系統(tǒng)缺少重做日志文件,系統(tǒng)提示無法找到文件,數(shù)據(jù)庫啟動(dòng)過程中系統(tǒng)報(bào)錯(cuò)。此時(shí),可以使用下面的命令查詢當(dāng)前數(shù)據(jù)庫的實(shí)例名、數(shù)據(jù)庫歸檔模式和打開模式,確定當(dāng)前狀態(tài)所處開啟模式:

        SQL>select name,log-mode from vMYMdatabase;

        返回查詢結(jié)果如下:

        NAME LOG-MODE OPEN-MODE ORCL NOARCHIVELOG MOUNTED

        (3)這里的LOG-MODE為NOARCHIVELOG模式,說明數(shù)據(jù)庫處于非歸檔模式,且當(dāng)前數(shù)據(jù)庫開啟到MOUNTED狀態(tài)。此時(shí),使用resetlogs方法打開數(shù)據(jù)庫,輸入以下命令:

        SQL>alter database open resetlogs;

        系統(tǒng)返回信息如下:

        ……

        ERROR at line 1:

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

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

        SQL>recovery database using backup controlfile;

        系統(tǒng)返回異常:

        ……

        ORA-00308:cannot open archived log

        ORA-27037:unable to obtain file status

        Linux-x86-64 Error:2:No such file or directory

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

        ORA-01113:file 1 needsmedia recovery

        ORA-01110:data file 1:' /usr/app/oracle/oradata/orcl/

        system01.dbf'

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

        SQL>alter system set”-allow-resetlogs-corruption”

        =true scope=spfile;

        System altered.

        (7)在修改完此參數(shù)后,使用強(qiáng)制數(shù)據(jù)庫重啟命令啟動(dòng)數(shù)據(jù)庫:

        SQL>startup forcemount

        系統(tǒng)返回如下信息:

        ……

        Database mounted.

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

        (9)修改-allow-resetlogs-corruption參數(shù)為系統(tǒng)默認(rèn)的false,則在啟動(dòng)時(shí)進(jìn)行數(shù)據(jù)一致性檢查:

        SQL>alter system reset”-allow-resetlogs-corruption”scope=spfile;

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

        SQL>selcet KSPPINM,KSPPSTVL from xMYMksppi a,

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

        返回查詢結(jié)果如下:

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

        (11)啟用Oracle數(shù)據(jù)庫的歸檔模式,增強(qiáng)數(shù)據(jù)庫系統(tǒng)的可用性:

        SQL>alter database archivelog;

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

        SQL>archive log list;

        Database logmode Archive Mode Automatic archival Enable

        得到以上返回信息說明數(shù)據(jù)庫已經(jīng)運(yùn)行在歸檔模式下,實(shí)驗(yàn)完成。

        4 結(jié)論

        通過實(shí)驗(yàn)證明,本文提出的Oracle數(shù)據(jù)庫重做日志的恢復(fù)方法能夠有效實(shí)現(xiàn)在Linux系統(tǒng)下非歸檔模式重做日志文件的恢復(fù),實(shí)現(xiàn)Oracle數(shù)據(jù)庫系統(tǒng)的故障恢復(fù),提高數(shù)據(jù)庫系統(tǒng)的可用性。

        參考文獻(xiàn)

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

        [2]王偉平.Oracle 11g網(wǎng)絡(luò)大講堂[M].北京:清華大學(xué)出版社,2013.

        [3]賀亞茹.Oracle數(shù)據(jù)庫日志文件損壞時(shí)修復(fù)方法的實(shí)驗(yàn)研究[J].計(jì)算機(jī)應(yīng)用,2009,29(S2):393-395.

        [4]韋德強(qiáng).Oracle數(shù)據(jù)庫的備份與恢復(fù)策略[J].電腦知識(shí)與技術(shù),2010,6(19):5367-5370.

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

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

        [7]周文瓊,王樂球.Oracle數(shù)據(jù)庫啟動(dòng)過程研究與實(shí)踐[J].軟件導(dǎo)刊,2011,10(7):169-171.

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

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

        引用格式:王超,祝永志.Oracle數(shù)據(jù)庫非歸檔模式重做日志恢復(fù)方法[J].微型機(jī)與應(yīng)用,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

        作者簡(jiǎn)介:

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

        中圖分類號(hào):TP311.13

        文獻(xiàn)標(biāo)識(shí)碼:A

        DOI:10.19358 /j.issn.1674-7720.2016.09.027

        猜你喜歡
        Oracle數(shù)據(jù)庫
        Oracle數(shù)據(jù)庫安全管理策略的優(yōu)化
        Oracle數(shù)據(jù)庫應(yīng)用問題與解決方案分析
        Oracle數(shù)據(jù)庫安全問題分析及策略
        Oracle數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)
        一種Oracle數(shù)據(jù)庫表空間監(jiān)控方法
        《Oracle數(shù)據(jù)庫》課程教學(xué)模式探究 
        亚洲欧美成人一区二区在线电影| 国产激情综合五月久久| 亚洲性无码av中文字幕| 国产无套内射久久久国产| 亚洲av成人噜噜无码网站| 欧美 日韩 国产 成人 在线观看| 欧美成人免费高清视频| 欧美日韩亚洲国产无线码| av在线一区二区精品| 久久精品国产亚洲av麻豆色欲| 99视频30精品视频在线观看| 精品三级久久久久久久电影| 久久精品日本美女视频| 水蜜桃在线观看一区二区国产| 亚洲av无码国产精品色午夜软件| 国产伦久视频免费观看视频| 亚洲偷自拍另类图片二区| av在线免费观看你懂的| 国产专区国产精品国产三级| 夫妇交换性三中文字幕 | 亚洲一区二区三区99区| 中文字幕精品人妻丝袜| 成人艳情一二三区| 国产成人麻豆精品午夜福利在线| 99久久久精品免费| 精品精品国产三级av在线| 国产精品多人p群无码| 少妇放荡的呻吟干柴烈火动漫| 久久精品国产亚洲一区二区| av永远在线免费观看| 日本熟妇另类一区二区三区| 又爽又黄又无遮挡网站| 国产精品女同一区二区| 一区二区三区中文字幕有码| 国产主播一区二区三区蜜桃| 久激情内射婷内射蜜桃人妖| 日韩精品网| 亚洲精品中文字幕91| 亚洲最大av网站在线观看| 国产白丝在线| 国产av自拍在线观看|