新聞中心
筆者在打開Oracle數(shù)據(jù)庫(kù)準(zhǔn)備做東西得時(shí)候,突然電腦藍(lán)屏,系統(tǒng)崩潰了。重啟后,啟動(dòng)實(shí)例,準(zhǔn)備連接Oracle數(shù)據(jù)庫(kù)繼續(xù)使用,卻發(fā)現(xiàn)無法連接,一直報(bào):

成都創(chuàng)新互聯(lián)公司專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,雙線服務(wù)器托管服務(wù)有保障!
- SQL> conn system/test@test
- ERROR:
- ORA-12514: TNS: 監(jiān)聽程序當(dāng)前無法識(shí)別連接描述符中請(qǐng)求的服務(wù)
一開始以為數(shù)據(jù)庫(kù)還沒啟動(dòng)完畢,于是重啟了數(shù)據(jù)庫(kù)服務(wù),依然不能成功連接,當(dāng)時(shí)沒有懷疑數(shù)據(jù)庫(kù)有問題,因?yàn)橹耙灿龅竭^多次在打開oracle數(shù)據(jù)庫(kù)的情況下系統(tǒng)崩潰的情況,重啟系統(tǒng)后還是能正常使用的。
多次連接不上之后,才想起來去看下alter文件,一看果然出現(xiàn)問題了:
- Sun Jul 17 13:26:15 2011
- Recovery of Online Redo Log: Thread 1 Group 2 Seq 3 Reading mem 0
- Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\TEST\REDO02.LOG
- Sun Jul 17 13:26:15 2011
- Errors in file d:\oracle\product\10.2.0\db_1\admin\test\bdump\test_dbw0_2904.trc:
- ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_kcbzdh+583] [PC:0x4A41AF] [ADDR:0xECDC0214] [UNABLE_TO_READ] []
在這個(gè)地方看到重做日志文件Group 2的REDO02.LOG需要恢復(fù)。
這里,因?yàn)槭切聨?kù),沒什么重要數(shù)據(jù),所以只要數(shù)據(jù)庫(kù)能恢復(fù)就OK了。采取以下措施:
刪掉這個(gè)文件,重啟打開數(shù)據(jù)庫(kù):
- SQL> startup mount
- ORACLE 例程已經(jīng)啟動(dòng)。
- Total System Global Area 167772160 bytes
- Fixed Size 1247876 bytes
- Variable Size 71304572 bytes
- Database Buffers 88080384 bytes
- Redo Buffers 7139328 bytes
- 數(shù)據(jù)庫(kù)裝載完畢。
接著執(zhí)行以下代碼:
- SQL> alter database open;
- alter database open
- *
- 第 1 行出現(xiàn)錯(cuò)誤:
- ORA-00313: 無法打開日志組 2 (用于線程 1) 的成員
- ORA-00312: 聯(lián)機(jī)日志 2 線程 1:
- ‘D:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\TEST\REDO02.LOG’
- ORA-27041: 無法打開文件
- OSD-04002: 無法打開文件
- O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。
- SQL> select group#,sequence#,status from v$log;
- GROUP# SEQUENCE# STATUS
- ———- ———- —————-
- 1 2 INACTIVE
- 3 1 INACTIVE
- 2 3 CURRENT
因?yàn)閯倓偽覄h除了當(dāng)前的日志文件,所以報(bào)錯(cuò)無法自動(dòng)恢復(fù)打開了。
- SQL> alter database drop logfile member ‘D:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\T
- EST\REDO02.LOG’;
- alter database drop logfile member ‘D:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\TEST\R
- EDO02.LOG’
- *
- 第 1 行出現(xiàn)錯(cuò)誤:
- ORA-00361: 無法刪除最后一個(gè)日志成員
- D:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\TEST\REDO02.LOG (組 2)
無法刪除,但又不想rename log,把剛剛刪除的REDO02.LOG恢復(fù)回去。
- SQL> alter database recover;
- 數(shù)據(jù)庫(kù)已更改。
- SQL> alter database open;
- 數(shù)據(jù)庫(kù)已更改。
- SQL> shutdown immediate;
- 數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。
- 已經(jīng)卸載數(shù)據(jù)庫(kù)。
- ORACLE 例程已經(jīng)關(guān)閉。
- SQL> startup
- ORACLE 例程已經(jīng)啟動(dòng)。
- Total System Global Area 167772160 bytes
- Fixed Size 1247876 bytes
- Variable Size 71304572 bytes
- Database Buffers 88080384 bytes
- Redo Buffers 7139328 bytes
- 數(shù)據(jù)庫(kù)裝載完畢。
- 數(shù)據(jù)庫(kù)已經(jīng)打開。
- SQL>
這樣Oracle數(shù)據(jù)庫(kù)又可以恢復(fù)使用了。
注意:上述方法只能適用于本機(jī)的測(cè)試環(huán)境或者不重要的測(cè)試環(huán)境,在對(duì)丟失數(shù)據(jù)沒有任何擔(dān)憂的情況,千萬不要對(duì)生產(chǎn)庫(kù)這么操作,以免造成數(shù)據(jù)的丟失。
【編輯推薦】
- Oracle數(shù)據(jù)庫(kù)中Rank等函數(shù)的比較與選擇
- 利用Sql Server將Excel中的數(shù)據(jù)導(dǎo)入Oracle
- Oracle跟蹤文件分析工具TKPROF使用簡(jiǎn)介
- 如何配置Oracle 10g oem中的主機(jī)身份證明
- 環(huán)境變量導(dǎo)致ASP.Net無法連接Oracle的一個(gè)案例
名稱欄目:一個(gè)系統(tǒng)崩潰造成Oracle數(shù)據(jù)庫(kù)無法啟動(dòng)的恢復(fù)實(shí)例
標(biāo)題鏈接:http://www.5511xx.com/article/dhdpigp.html


咨詢
建站咨詢
