0

Database is OracleXE and here is the problem:

  • data gets entered in tables
  • UPS does not survive power shock
  • Oracle server reboots after power failure
  • everything seems normal
  • after some time we realize that some data is missing from few tables (this is ok, because all inserts happened in one transaction), and some data seems like half-committed
  • couple of reboots done by employee
  • strangest thing, half-committed data recovered to normal!

I guess data loss is possible, but is it possible to loose some part of transaction?

Does Oracle have some sort of recovery after these situations?

Scenario is written on the basis of my app logs and Oracle logs because it's remote system.

[EDIT] My DBA is at home sick.

listener.log seems ok and I'm not much of a reader of alert_xe.log :) I guess this is relevant info:

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

[EDIT:] "Write Caching" was left by mistake. That explains data loss.

4

2 回答 2

2

对我来说听起来很奇怪。数据要么被提交,要么未被提交。我怀疑你的一位同事进行了诈骗。

于 2009-10-24T11:37:06.547 回答
0

从您的警报日志来看,它看起来像是一个正常的自动实例恢复。最后两行向我表明数据库已打开并正在写入重做日志。我不可能相信存在部分交易。它要么已提交,要么未提交 - 不存在中间状态。

于 2009-10-25T17:42:12.110 回答