Oracle物理結(jié)構(gòu)故障的實(shí)際解決方案
Oracle物理結(jié)構(gòu)故障就是指構(gòu)成數(shù)據(jù)庫(kù)中的各個(gè)物理文件損壞,導(dǎo)致各種不同數(shù)據(jù)庫(kù)的故障。這些相關(guān)的故障主要是因?yàn)橛布收显斐傻?,也有種可能是人為誤操作而引起。所以我們首先要判斷問題的起因,如果是硬件故障則首先要解決硬件問題。在無(wú)硬件問題的前提下我們才能按照下面的處理方發(fā)來(lái)進(jìn)一步處理。
控制文件損壞:
控制文件記錄了關(guān)于oracle的重要配置信息,如數(shù)據(jù)庫(kù)名、字符集名字、各個(gè)數(shù)據(jù)文件、日志文件的位置等等信息??刂莆募膿p壞,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)異常關(guān)閉。一旦缺少控制文件,數(shù)據(jù)庫(kù)也無(wú)法啟動(dòng),這是一種比較嚴(yán)重的錯(cuò)誤。
可以通過查詢數(shù)據(jù)庫(kù)的日志文件來(lái)定位損壞了的控制文件。日志文件位于$ORACLE_BASE/admin/bdump/alert_ORCL.ora.
損壞單個(gè)控制文件:
1. 確保數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉,如果沒有用下面的命令來(lái)關(guān)閉數(shù)據(jù)庫(kù):
- svrmgrl>shutdown immediate;
2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,確定所有控制文件的路徑。
3. 用操作系統(tǒng)命令將其它正確的控制文件覆蓋錯(cuò)誤的控制文件。
4. 用下面的命令重新啟動(dòng)數(shù)據(jù)庫(kù)
- svrmgrl>startup;
5. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份。
損壞所有的控制文件:
1. 確保數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉,如果沒有用下面的命令來(lái)關(guān)閉數(shù)據(jù)庫(kù):
- svrmgrl>shutdown immediate;
2. 從相應(yīng)的備份結(jié)果集中恢復(fù)最近的控制文件。對(duì)于沒有采用帶庫(kù)備份的點(diǎn)可以直接從磁帶上將最近的控制文件備份恢復(fù)到相應(yīng)目錄;對(duì)于采用帶庫(kù)備份的點(diǎn)用相應(yīng)的rman腳本來(lái)恢復(fù)最近的控制文件。
3. 用下面的命令來(lái)創(chuàng)建產(chǎn)生數(shù)據(jù)庫(kù)控制文件的腳本:
- svrmgrl>startup mount;
- svrmgrl>alter database backup controlfile to trace noresetlogs;
4. 修改第三步產(chǎn)生的trace文件,將其中關(guān)于創(chuàng)建控制文件的一部分語(yǔ)句拷貝出來(lái)并做些修改,使得它能夠體現(xiàn)***的數(shù)據(jù)庫(kù)Oracle物理結(jié)構(gòu)故障。假設(shè)產(chǎn)生的sql文件名字為createcontrol.sql.
注意:
Trace文件的具體路徑可以在執(zhí)行完第3)步操作后查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件來(lái)確定。
5. 用下面命令重新創(chuàng)建控制文件:
- svrmgrl>shutdown abort;
- svrmgrl>startup nomount;
- svrmgrl>@createcontrol.sql;
6. 用適當(dāng)?shù)姆椒ㄟM(jìn)行數(shù)據(jù)庫(kù)全備份。
重做日志文件損壞:
數(shù)據(jù)庫(kù)的所有增、刪、改都會(huì)記錄入重做日志。如果當(dāng)前激活的重做日志文件損壞,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)異常關(guān)閉。非激活的重做日志最終也會(huì)因?yàn)槿罩厩袚Q變?yōu)榧せ畹闹刈鋈罩荆該p壞的非激活的重做日志最終也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的異常終止。在ipas/mSwitch中每組重做日志只有一個(gè)成員,所以在下面的分析中只考慮重做日志組損壞的情況,而不考慮單個(gè)重做日志成員損壞的情況。
上述的相關(guān)內(nèi)容就是對(duì)Oracle物理結(jié)構(gòu)故障的處理方法的部分描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
文章出自: http://www.programbbs.com/doc/3406.htm
【編輯推薦】