Oracle重做日志

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為明山企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站制作,明山網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
Oracle的重做日志文件(Online redo logfile)循環(huán)記錄了數(shù)據(jù)庫所有的事務(wù) 它的大小 個(gè)數(shù)和存儲(chǔ)位置對(duì)數(shù)據(jù)庫性能和恢復(fù)有重要影響 它一般由大小相同的幾組文件構(gòu)成 我們可以查看數(shù)據(jù)庫視圖v$logfile知道redo logfile的個(gè)數(shù)和存儲(chǔ)位置 對(duì)每一個(gè)Oracle數(shù)據(jù)庫都要求至少具有兩個(gè)聯(lián)機(jī)重做日志
每一次新的事務(wù)提交時(shí) Oracle將該事務(wù)寫入日志文件 但并非此時(shí)也將修改的數(shù)據(jù)塊寫回原數(shù)據(jù)文件 由于內(nèi)存讀寫和磁盤I/O存在幾個(gè)數(shù)量級(jí)的效率差別 Oracle通過減少數(shù)據(jù)文件的物理I/O讀寫來大大提高數(shù)據(jù)庫的性能 同時(shí) 又通過優(yōu)先寫日志文件來保證數(shù)據(jù)的正確性和一致性 基于這種機(jī)制 重做日志文件在數(shù)據(jù)庫的實(shí)例恢復(fù)和介質(zhì)恢復(fù)時(shí)至關(guān)重要 是oracle數(shù)據(jù)庫最重要的物理文件之一
如果數(shù)據(jù)庫在啟動(dòng)時(shí)檢測(cè)到重做日志丟失 數(shù)據(jù)庫將無法啟動(dòng) 如果數(shù)據(jù)庫在運(yùn)行時(shí)切換日志文件組 檢測(cè)到下一組或者全部的重做日志丟失 數(shù)據(jù)庫將會(huì)崩潰 由于磁盤介質(zhì)損壞或者人為的誤刪除文件 造成嚴(yán)重后果的事件近期時(shí)有發(fā)生 本文列舉了重做日志丟失的數(shù)據(jù)庫恢復(fù) 但如果按照冗余原則合理分布日志文件組的成員 如果工程師了解日志文件的基本原理和使用原則 就完全可以避免出現(xiàn)下列問題
恢復(fù)方法
故障現(xiàn)象
SQL startup mount
Oracle Instance Started
Database mounted
ORA : open failed for members of log group of thread
ORA : online log thread : /ORACLE/ORADATA/H /REDO LOG
ORA : unable to open file
OSD : unable to open file
O/S Error: (OS ) The system cannot find the file specified
恢復(fù)注意事項(xiàng)
以下所列舉的恢復(fù)方法 都屬于不完全恢復(fù)或者強(qiáng)制恢復(fù) 會(huì)丟失當(dāng)前重做日志中的事務(wù)數(shù)據(jù) 一旦操作不當(dāng) 將帶來數(shù)據(jù)丟失等嚴(yán)重后果 請(qǐng)遵循以下幾個(gè)恢復(fù)原則
請(qǐng)勿在生產(chǎn)系統(tǒng)上試用
如果生產(chǎn)系統(tǒng)出現(xiàn)重做日志文件丟失的故障 請(qǐng)勿自行操作破壞現(xiàn)場(chǎng) 應(yīng)該立刻聯(lián)系Oracle工程師
恢復(fù)成功之后 需要馬上做一次數(shù)據(jù)庫的全備份
建議重做日志文件一定要實(shí)現(xiàn)鏡象在不同的磁盤上 避免這種情況的發(fā)生
恢復(fù)方法
首先檢查重做日志文件狀態(tài) 看看報(bào)錯(cuò)的日志文件的狀態(tài)是否為Current
SQL select * from v$log;
SQL select * from v$logfile;
如果重做日志文件狀態(tài)為Inactive 我們可以直接清除該日志文件的內(nèi)容
SQL alter database clear logfile /ORACLE/ORADATA/H /REDO LOG ;
如果重做日志文件狀態(tài)為Current 恢復(fù)工作較為復(fù)雜 有以下四種情況
)通過下面步驟 數(shù)據(jù)庫順利打開
SQL recover database until cancel;
Type Cancel when prompted
SQLalter database open resetlogs;
)第一種情況的 recover database until cancel 操作遇到ORA ORA ORA 錯(cuò)誤 需要整個(gè)數(shù)據(jù)庫的物理備份 并根據(jù)歸檔日志恢復(fù)到錯(cuò)誤時(shí)間點(diǎn) 前提是數(shù)據(jù)庫是歸檔模式
restore old backup
SQL startup mount
SQL recover database until cancel using backup controlfile;
SQL alter database open resetlogs;
)如果數(shù)據(jù)庫是非歸檔模式 只能恢復(fù)整個(gè)物理備份 然后直接打開數(shù)據(jù)庫 這種情況將丟失物理備份至故障發(fā)生前的全部數(shù)據(jù)
)如果數(shù)據(jù)庫是非歸檔模式 且沒有物理備份 只能通過特殊的隱含參數(shù) 允許數(shù)據(jù)庫不一致的狀況下打開數(shù)據(jù)庫 這種恢復(fù)方法是沒有辦法之后的恢復(fù)方法 將導(dǎo)致數(shù)據(jù)庫不一致 一般情況下不要采用 如確有需要 請(qǐng)?jiān)贠racle的技術(shù)人員指導(dǎo)下使用該方法
???????? 關(guān)閉數(shù)據(jù)庫
SQLshutdown immediate
???????? 在initsid ora中加入如下參數(shù)
_allow_resetlogs_corruption=TRUE
???????? 重新啟動(dòng)數(shù)據(jù)庫 利用until cancel恢復(fù)
SQLrecover database until cancel;
Cancel
???????? 打開數(shù)據(jù)庫
SQLalter database open resetlogs;
???????? 數(shù)據(jù)庫被打開后 馬上執(zhí)行一個(gè)全庫導(dǎo)出
關(guān)閉數(shù)據(jù)庫 在initsid ora中去掉_all_resetlogs_corrupt參數(shù)
lishixinzhi/Article/program/Oracle/201311/16743
很多網(wǎng)友在把某個(gè)數(shù)據(jù)庫實(shí)例的REDO ~ LOG三個(gè)重做日志刪掉后 會(huì)出現(xiàn)無法正常登陸數(shù)據(jù)庫的現(xiàn)象 下面的示例是具體的恢復(fù)過程 希望能為大家解決難題
一
c:/sqlplus /nolog
二
sqlconnect /@instancename as sysdba;
三
startup mount; 啟動(dòng)實(shí)例 安裝數(shù)據(jù)庫 但不打開數(shù)據(jù)庫 可以開始操作控制文件 日志文件 數(shù)據(jù)文件等
四
select * from v$logfile; 察看Redo文件的信息
五;
select * from v$log; 察看Redo日志的狀態(tài) 一般有unused current clearing clearing
六 非當(dāng)前(current)的未歸檔日志文件恢復(fù)alter database clear logfile group N;
N就是日志組的順序號(hào)
歸檔日志文件恢復(fù) alter database clear logfile unarchived group N;
lishixinzhi/Article/program/Oracle/201311/19024
具體看你多路復(fù)用了幾個(gè)控制文件,如果多余兩個(gè),則把正常的一個(gè)控制文件復(fù)制成原來丟失的兩個(gè),來啟動(dòng)數(shù)據(jù)庫即可。
如果只復(fù)用了兩個(gè)控制文件,則只能使用控制文件的備份來恢復(fù)了。
如果連控制文件都沒有備份,則只能重建控制文件。
oraclebin文件夾丟失能直接拷貝一個(gè)過來。oraclebin文件夾丟失,但因?yàn)閿?shù)據(jù)庫中所有的oraclebin文件都是鏡像的,將丟失的文件再拷貝一個(gè)過來就可以恢復(fù)。所以oraclebin文件夾丟失能直接拷貝一個(gè)過來。
新聞標(biāo)題:oracle丟失了怎么辦 oracle誤刪用戶后如何恢復(fù)
本文URL:http://chinadenli.net/article44/hghhhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、品牌網(wǎng)站設(shè)計(jì)、ChatGPT、Google、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)