系統崩潰造成資料庫無法啟動的恢復

2021-05-26 19:20:22 字數 2678 閱讀 3892

本本突然藍屏,當時資料庫是開啟使用中的,重啟後,啟動例項,準備連線資料庫繼續使用,發現無法連線,一直報:

sql> conn system/test@test

error:

ora-12514: tns: 監聽程式當前無法識別連線描述符中請求的服務

一開始以為資料庫還沒啟動完畢,於是重啟了資料庫服務,多次未果,沒有懷疑資料庫有問題,因為之前也遇到過多次在開啟oracle的情況下系統崩潰的情況,重啟系統後還是能正常使用的。

多次連線不上之後,才想起來去看下alter檔案,一看果然出現問題了:

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]

在這個地方看到重做日誌檔案group 2的redo02.log需要恢復。

暴力一點吧,反正是新庫,沒啥資料,只要能給我起來就好了。

刪掉這個檔案,重啟開啟資料庫:

sql> startup mount

oracle 例程已經啟動。

total system global area  167772160 bytes

fixed size                  1247876 bytes

variable size              71304572 bytes

database buffers           88080384 bytes

redo buffers                7139328 bytes

資料庫裝載完畢。

sql> alter database open;

alter database open

*第 1 行出現錯誤:

ora-00313: 無法開啟日誌組 2 (用於執行緒 1) 的成員

ora-00312: 聯機日誌 2 執行緒 1:

『d:\oracle\product\10.2.0\db_1\oradata\test\redo02.log』

ora-27041: 無法開啟檔案

osd-04002: 無法開啟檔案

o/s-error: (os 2) 系統找不到指定的檔案。

sql> select group#,sequence#,status from v$log;

group#  sequence# status

———- ———- —————-

1          2 inactive

3          1 inactive

2          3 current

乖乖,是current的log,難怪無法自動恢復開啟了。

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 行出現錯誤:

ora-00361: 無法刪除最後乙個日誌成員

d:\oracle\product\10.2.0\db_1\oradata\test\redo02.log (組 2)

靠,無法刪除,不想rename log,把剛剛刪除的redo02.log恢復回去。

sql> alter database recover;

資料庫已更改。

sql> alter database open;

資料庫已更改。

sql> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql> startup

oracle 例程已經啟動。

total system global area  167772160 bytes

fixed size                  1247876 bytes

variable size              71304572 bytes

database buffers           88080384 bytes

redo buffers                7139328 bytes

資料庫裝載完畢。

資料庫已經開啟。

sql>

ok,可以啟動開啟就達到我的目的了。

上述方法只能適用於本機的測試環境或者不重要的測試環境,在對丟失資料沒有任何擔憂的情況,千萬不要對生產庫這麼操作。

-the end-

作業系統崩潰,資料庫全部檔案都在時,資料庫恢復方法

在論壇上,有人問 乙個朋友的oracle資料庫所在的 作業系統崩潰,現遺留下資料檔案 檔案分布結構如下 d oracle oradata stan control01.ctl control02.ctl control03.ctl indx11.dbf indx12.dbf indx13.dbf i...

資料庫無法啟動

e mysql 5.7.15 net start mysql mysql 服務正在啟動 mysql 服務無法啟動。服務沒有報告任何錯誤。請鍵入 net helpmsg 3534 以獲得更多的幫助。方法 這個錯誤沒有仍和日誌記錄,原因是my.ini中datadir所設定的目錄不存在,路徑分隔符需要採用...

刪除MySQL中的系統庫後無法啟動醬紫恢復

正常的資料中的庫 刪除紅色圈出來的庫 mysql drop database mysql query ok,32rows affected,2warnings 0.02 sec mysql drop database sys query ok,101rows affected,2warnings 0...