oracle資料檔案丟失。

2021-05-24 12:43:34 字數 2184 閱讀 8858

今天來上班聽說我們的資料庫伺服器連不上,說是昨晚停電伺服器都掛掉了。初步考慮應該是資料庫沒有自動拉起造成的,手動執行拉起指令碼資料庫仍然無法連線。後來檢視oracle啟動日誌以及跟蹤日誌如下:

$ cd /opt/oracle/admin/oracle9i/bdump

$more alert_oracle9i.log

errors in file /opt/oracle/admin/oracle9i/bdump/oracle9i_dbw0_13503.trc:

ora-01157: cannot identify/lock data file 32 - see dbwr trace file

ora-01110: data file 32: '/opt/ap/m/oracle9i/dftt1.dbf'

ora-27037: unable to obtain file status

有很多類似於這樣的錯誤資訊,突然想起來之前給該伺服器新mount了兩個邏輯卷,這些資料檔案大多都在這些邏輯卷所對應的目錄下。用df -k命令檢視發現這兩個邏輯卷都沒有掛接上來。奇怪!?之前確實是掛接上來的,怎麼又沒了?懷疑是伺服器掉電啟動後沒有掛接造成的,然後就手動掛接這兩個邏輯卷,操作如下:

$ mount /dev/test/lvabc /opt/ap/m

vxfs mount:  /dev/test/lvabc  is corrupted. needs checking

報錯了,需要檢測一下,執行如下命令:

$fsck  /dev/test/lvabc

執行檢測ok!

$mount /dev/test/lvabc /opt/ap/m

這次掛接成功!

$cd  /opt/ap/m

進入 /opt/ap/m目錄檢視了一下所建立的檔案都還存在,甚好。

手動執行資料庫啟動指令碼,啟動後仍然不能正常連線資料庫,檢視oracle日誌如下:

$ cd /opt/oracle/admin/oracle9i/bdump

$more alert_oracle9i.log

errors in file /opt/oracle/admin/oracle9i/bdump/oracle9i_dbw0_13503.trc:

ora-01157: cannot identify/lock data file 10 - see dbwr trace file

ora-01110: data file 10: '/opt/oracle/oradata/oracle9i/xdb01.dbf'

ora-27037: unable to obtain file status

其他的資料檔案已經可以找到了,但仍然有如上錯誤。

執行以下命令發現檔案並不存在!

$ ll /opt/oracle/oradata/oracle9i/xdb01.dbf

/opt/oracle/oradata/oracle9i/xdb01.dbf not found

這個錯誤比計較詭異, 資料檔案怎麼好端端沒了?先讓資料庫跑起來了吧。

由於是測試用資料庫所以資料庫無備份、無歸檔,執行如下操作:

1. 用dba身份連線資料庫

$sqlplus /nolog

sql>conn sys/sys as sysdba

2. 啟動oracle例程

sql>startup mount

3. 開啟資料庫

sql>alter database open;

大致會報一下這樣的錯誤:

ora-01157: cannot identify/lock data file 32 - see dbwr trace file

ora-01110: data file 32: '/opt/ap/m/oracle9i/dftt1.dbf'

4. 離線drop

sql>alter database datafile 32 offline drop;

再次執行如下命令:

sql>alter database open;

無報錯說明以上操作成功。

5. 關閉資料

sql>shutdown mormal;

6. 啟動資料庫

sql>startup

至此資料庫可以正常連線上來了。

環境:hp-ux b.11.23 u ia64, oracle9i

問題:1. 為什麼掉電啟動後掛接的邏輯卷要重新手動掛接才可以?

Oracle資料檔案丟失,不停機恢復

歸檔模式 僅供參考 手誤刪除乙個資料檔案,此時資料庫還能正常使用,相關表也能查詢 修改資料 在修復資料檔案的過程中會影響與此表空間相關表的查詢等操作 1.根據資料檔名找到檔案號 2.使資料檔案offline alter database datafile 43 offline 3.進入rman恢復資...

RMAN 恢復丟失的資料檔案

一 系統資料檔案丟失 system undo 前提是一定要有備份,必須要關閉資料庫,啟動到mount階段才能開始恢復 試驗 1.用rman備份資料庫 bakcup database 2.刪除system或undo資料檔案 rm system01.dbf 3.rman還原資料庫 rman restor...

oracle 資料檔案移動

1.連線 sqlplus nolog sql conn sys prd1 as sysdba 2.一些基本的操作 1 檢視表空間 sql select from v tablespace 2 檢視資料檔案 sql select from v datafile 3 檢視tablespace 和data...