我已经编写了使用RMAN进行oracle备份和恢复的脚本。 注意我采用备份数据库+存档日志
现在,我在oracle中做了一些sql语句,但没有提交事务,那么它可能在重做日志的某个地方,我不确定。
现在,在上面的情况下,我采用了备份数据库+存档日志并进行了恢复。
未提交未提交的数据。
我对这种情况感到困惑,这种情况是正确的还是错过了我的数据,或者我错过了某个地方。
答案 0 :(得分:2)
这很好。您的交易实际上是重做的。但是由于您没有提交它,因此恢复过程在重新应用后将其回滚,因为它无法在重做流的末尾找到提交语句。这是设计的。相反的是一个问题,如果你提交了一个声明,无论服务器发生了什么(断电,崩溃),你应该能够在恢复服务器并应用所有重做/存档后看到它。
原因是,一旦提交,重新执行事务的所有工作都应存储在磁盘(重做日志文件)中。还有其他类型的提交(例如,COMMIT WRITE NOWAIT)绕过这种行为,应该避免使用。
希望这有帮助。