今天來上班聽說我們的資料庫伺服器連不上,說是昨晚停電伺服器都掛掉了。初步考慮應該是資料庫沒有自動拉起造成的,手動執行拉起指令碼資料庫仍然無法連線。後來檢視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...