2009-10-23 133 views
0

數據庫是OracleXE這裏的問題是:電源故障和Oracle數據恢復

  • 數據獲取表格中輸入
  • UPS不下去功率震盪
  • 停電後
  • Oracle服務器重啓
  • 一切似乎正常
  • 經過一段時間我們意識到某些數據從少數表中丟失(這是可以的,因爲所有插入發生在一個事務中),並且一些數據看起來像是一半提交的
  • 由員工完成的幾次重新啓動
  • 最奇怪的是,一半的承諾數據恢復正常!

我猜數據丟失是可能的,但是有可能鬆動部分事務嗎?

在這些情況之後,Oracle是否有某種恢復?

方案是基於我的應用程序日誌和Oracle日誌編寫的,因爲它是遠程系統。

[編輯] 我的DBA在家裏生病了。

LISTENER.LOG似乎確定,我沒有太多的alert_xe.log :) 讀者我想這是相關信息:

Oracle Data Guard is not available in this edition of Oracle. 
Thu Oct 15 10:52:05 2009 
alter database mount exclusive 
Thu Oct 15 10:52:09 2009 
Setting recovery target incarnation to 2 
Thu Oct 15 10:52:09 2009 
Successful mount of redo thread 1, with mount id 2581406229 
Thu Oct 15 10:52:09 2009 
Database mounted in Exclusive Mode 
Completed: alter database mount exclusive 
Thu Oct 15 10:52:09 2009 
alter database open 
Thu Oct 15 10:52:10 2009 
Beginning crash recovery of 1 threads 
Thu Oct 15 10:52:10 2009 
Started redo scan 
Thu Oct 15 10:52:10 2009 
Completed redo scan 
3923 redo blocks read, 520 data blocks need recovery 
Thu Oct 15 10:52:10 2009 
Started redo application at 
Thread 1: logseq 649, block 88330 
Thu Oct 15 10:52:12 2009 
Recovery of Online Redo Log: Thread 1 Group 2 Seq 649 Reading mem 0 
    Mem# 0 errs 0: C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_558PBOPG_.LOG 
Thu Oct 15 10:52:14 2009 
Completed redo application 
Thu Oct 15 10:52:14 2009 
Completed crash recovery at 
Thread 1: logseq 649, block 92253, scn 7229931 
520 data blocks read, 498 data blocks written, 3923 redo blocks read 
Thu Oct 15 10:52:15 2009 
Thread 1 advanced to log sequence 650 
Thread 1 opened at log sequence 650 

[編輯:] 「寫入緩存」留下因爲失誤。 這解釋了數據丟失。

+0

當您閱讀Oracle的事務日誌時,您學到了什麼? – 2009-10-23 12:28:07

回答

2

聽起來很奇怪。數據有或沒有提交。我懷疑你的一個同事是偷偷摸摸的。

+0

+1我學到了一個新單詞。聽起來像某人不想說他們犯了一個錯誤。 – 2009-10-24 16:13:08

+0

看來是這樣。 我在調查。 :) – Chobicus 2009-10-26 13:41:52

0

從您的警報日誌,它看起來像一個正常的自動實例恢復。最後兩行表明數據庫已打開並正在寫入重做日誌。我不相信有部分交易存在。無論是否承諾 - 不存在中間狀態。