电源故障和Oracle数据恢复

时间:2009-10-23 12:26:56

标签: oracle transactions recovery

数据库是OracleXE,问题在于:

  • 数据输入表格
  • 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

[编辑:] “写缓存”是错误的。 这解释了数据丢失。

2 个答案:

答案 0 :(得分:2)

听起来很奇怪。数据是否已提交。我怀疑你的一个同事是狡猾的。

答案 1 :(得分:0)

从警报日志中,它看起来像是正常的自动实例恢复。最后两行向我表明数据库已打开并正在编写重做日志。我无法相信存在部分交易。它是否承诺 - 没有中间状态存在。