0514-86177077
9:00-17:00(工作日)
Oracle物理結構故障是指構成數(shù)據(jù)庫的各個物理文件損壞而導致的各種數(shù)據(jù)庫故障。這些故障可能是由于硬件故障造成的,也可能是人為誤操作而引起。所以我們首先要判斷問題的起因,如果是硬件故障則首先要解決硬件問題。在無硬件問題的前提下我們才能按照下面的處理方發(fā)來進一步處理。 控制文件損壞: 控制文件記錄了關于oracle的重要配置信息,如數(shù)據(jù)庫名、字符集名字、各個數(shù)據(jù)文件、日志文件的位置等等信息。控制文件的損壞,會導致數(shù)據(jù)庫異常關閉。一旦缺少控制文件,數(shù)據(jù)庫也無法啟動,這是一種比較嚴重的錯誤。 損壞單個控制文件: 1. 確保數(shù)據(jù)庫已經(jīng)關閉,如果沒有用下面的命令來關閉數(shù)據(jù)庫: svrmgrl>shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,確定所有控制文件的路徑。 3. 用操作系統(tǒng)命令將其它正確的控制文件覆蓋錯誤的控制文件。 4. 用下面的命令重新啟動數(shù)據(jù)庫: svrmgrl>startup; 5. 用適當?shù)姆椒ㄟM行數(shù)據(jù)庫全備份。 損壞所有的控制文件: 1. 確保數(shù)據(jù)庫已經(jīng)關閉,如果沒有用下面的命令來關閉數(shù)據(jù)庫: svrmgrl>shutdown immediate; 2. 從相應的備份結果集中恢復最近的控制文件。對于沒有采用帶庫備份的點可以直接從磁帶上將最近的控制文件備份恢復到相應目錄;對于采用帶庫備份的點用相應的rman腳本來恢復最近的控制文件。 3. 用下面的命令來創(chuàng)建產(chǎn)生數(shù)據(jù)庫控制文件的腳本: svrmgrl>startup mount; svrmgrl>alter database backup controlfile to trace noresetlogs; 4. 修改第三步產(chǎn)生的trace文件,將其中關于創(chuàng)建控制文件的一部分語句拷貝出來并做些修改,使得它能夠體現(xiàn)最新的數(shù)據(jù)庫結構。假設產(chǎn)生的sql文件名字為createcontrol.sql. 注意: Trace文件的具體路徑可以在執(zhí)行完第3)步操作后查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件來確定。 5. 用下面命令重新創(chuàng)建控制文件: svrmgrl>shutdown abort; svrmgrl>startup nomount; svrmgrl>@createcontrol.sql; 6. 用適當?shù)姆椒ㄟM行數(shù)據(jù)庫全備份。 重做日志文件損壞: 數(shù)據(jù)庫的所有增、刪、改都會記錄入重做日志。如果當前激活的重做日志文件損壞,會導致數(shù)據(jù)庫異常關閉。非激活的重做日志最終也會因為日志切換變?yōu)榧せ畹闹刈鋈罩?,所以損壞的非激活的重做日志最終也會導致數(shù)據(jù)庫的異常終止。在ipas/mSwitch中每組重做日志只有一個成員,所以在下面的分析中只考慮重做日志組損壞的情況,而不考慮單個重做日志成員損壞的情況。 確定損壞的重做日志的位置及其狀態(tài): 1. 如果數(shù)據(jù)庫處于可用狀態(tài): select * from v$logfile; svrmgrl>select * from v$log; 2. 如果數(shù)據(jù)庫處于已經(jīng)異常終止: svrmlgr>startup mount; svrmgrl>select * from v$logfile; svrmgrl>select * from v$log; 其中,logfile的狀態(tài)為INVALID表示這組日志文件出現(xiàn)已經(jīng)損壞;log狀態(tài)為Inactive:表示重做日志文件處于非激活狀態(tài);Active: 表示重做日志文件處于激活狀態(tài);Current:表示是重做日志為當前正在使用的日志文件。 損壞的日志文件處于非激活狀態(tài): 1. 刪除相應的日志組: svrmgrl>alter database drop logfile group group_number; 2. 重新創(chuàng)建相應的日志組: svrmgrl>alter database add log file group group_number ('log_file_descritpion',…) size log_file_size; 損壞的日志文件處于激活狀態(tài)且為非當前日志: 1. 清除相應的日志組: svrmgrl>alter database clear unarchived logfile group group_number; 損壞的日志文件為當前活動日志文件: 用命令清除相應的日志組: svrmgrl>alter database clear unarchived logfile group group_number; 如果清除失敗,則只能做基于時間點的不完全恢復。 打開數(shù)據(jù)庫并且用適當?shù)姆椒ㄟM行數(shù)據(jù)庫全備份: svrmgrl>alter database open;
上一頁
標簽:池州 襄陽 通化 嘉峪關 股票投資 南平 聊城 南平
上一篇:oracle快速刪除重復的記錄
下一篇:Oracle SQL性能優(yōu)化系列學習一
Copyright ? 1999-2012 誠信 合法 規(guī)范的巨人網(wǎng)絡通訊始建于2005年
蘇ICP備15040257號-8