日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

磁盘阵列掉电 oracle数据库,掉电导致磁盘坏,非归档下的redo全部丢失,数据库打开的恢复失败...

發布時間:2025/3/19 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 磁盘阵列掉电 oracle数据库,掉电导致磁盘坏,非归档下的redo全部丢失,数据库打开的恢复失败... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、環境

OS:sun solaris

Database version:8.1.7

數據文件存放路徑:/u01/oradata/bjtb/; /u02/oradata/bjtb/

數據庫為非歸檔

2、問題

raid5壞兩個盤,oracle的文件存放路徑/u01,/u02都掛不上

更換硬盤后,/u01可掛上,/u02仍然不可以

/u02中存放的文件有:8個普通的數據文件,全部的redo日志文件

3、處理過程

$sqlplus / as sysdba失敗

$sqlplus /nolog

Sql>conn / as sysdba成功

Sql>startup失敗,無法mount

Alert文件中顯示其中一個控制文件在/u02下

Vi$ORACLE_HOME/dbs/initbjtb.ora

刪掉/u02下的控制文件的路徑,僅保留另外兩個控制文件即可

Sql>shutdown immediate

Sql>startup可以mount,但是有數據文件在/u02上,因此無法打開數據庫

Sql>alter database backup controlfile to trace;

Udump下查看生成的trace文件,發現一半的數據文件都在/u02下,全部redo也在/u02下

還好這些都是普通的數據文件,offline后數據庫應該是可以起來的,只是會丟掉很多數據。嘗試恢復。

Sql>alter database open;

報數據文件3找不到

Sql>alter database datafile 3 offline drop;

根據提示,offline drop掉的數據文件有3,4,6,7,10,13,14,15

Sql>alter database open;

報redo日志找不到

Sql>alter database rename file ‘/u02/oradata/bjtb/redo01.log’ to ‘/u02/oradata/bjtb/redo01.log’;

報新文件’/u02/oradata/bjtb/redo01.log’找不到

嘗試在重建控制文件的腳本中修改此路徑,重建控制文件失敗。于是

$touch /u02/oradata/bjtb/redo01.log

$touch /u02/oradata/bjtb/redo02.log

$touch /u02/oradata/bjtb/redo03.log

Sql>alter database rename file ‘/u02/oradata/bjtb/redo01.log’ to ‘/u02/oradata/bjtb/redo01.log’;

Sql>alter database rename file ‘/u02/oradata/bjtb/redo01.log’ to ‘/u02/oradata/bjtb/redo02.log’;

Sql>alter database rename file ‘/u02/oradata/bjtb/redo01.log’ to ‘/u02/oradata/bjtb/redo03.log’;

成功

Sql>alter database open;

報錯:需要resetlogs或resetlogs

Sql>alter database open resetlogs;

報錯:需要介質恢復

Sql>recover database until cancel;

Cancel

需要更多恢復,文件system01.dbf錯

4、分析

因為故障的原因是掉電引起的,因此,導致了有些看起來是好的文件,它的checkpoint也不一致,如果日志信息還存在,那么還有可能通過日志中的記錄把文件的checkpoint一致,但是,我們的redo log全部丟失,而且數據庫還是在noarchivelog模式下,無法讓它的checkpoint一致,數據庫無法打開。只能通過備份恢復,而且還必須是完全備份。

5、建議

此次問題最大的原因在于同時有兩塊硬盤損壞,因此對于系統的硬件,也需要定期做檢查。

數據庫方面,建議最好將數據庫設置成歸檔模式,而且需要定期對數據庫備份、維護。

對于redo log,每個日志組最好有兩個成員,并且兩個成員分別放在不同的目錄下。目前我們的redo log的三個日志組,每個日志組都是一個成員。單一redo log的丟失或損壞故障很容易恢復,但是如果碰到像我們現在的情況:斷電故障,非歸檔,日志全部丟失。在這種情況下,如果不幸斷電時有文件的checkpoint不一致,那么就沒有辦法將其寫一致,只能靠備份恢復了。所以,redo log的安全性也很重要。

總結

以上是生活随笔為你收集整理的磁盘阵列掉电 oracle数据库,掉电导致磁盘坏,非归档下的redo全部丢失,数据库打开的恢复失败...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。