2016-02-12 36 views
1

我已經使用RMAN編寫了用於Oracle備份和還原的腳本。 請注意我採取備份數據庫+存檔日誌Oracle RMAN備份中未提交的事務會發生什麼

現在,我在oracle中做了一些sql語句,但沒有提交事務,那麼它可能在重做日誌中的某處我不確定它。

現在,在上述情況下,我採取備份數據庫+存檔日誌,並做了恢復。

未提交的數據不存在。

我對這種情況感到困惑,這種情況是否正確,或者它缺少我的數據,或者我錯過了某處。

回答

2

這很好。事實上,你的交易是在重做。但是因爲你沒有提交它,所以恢復過程在重新應用它之後將其回滾,因爲它在重做流的末尾找不到提交語句。這是設計。如果你已經提交了一個聲明,而不管服務器發生了什麼(斷電,崩潰),你應該能夠在恢復服務器並應用所有重做/歸檔之後看到它。

原因是,一旦你提交了,所有重新執行你的事務的工作都應該存儲在磁盤(重做日誌文件)中。還有其他類型的提交(例如COMMIT WRITE NOWAIT)繞過了這種行爲,應該避免。

希望這會有所幫助。

+0

感謝它確實helfull – Dipak

相關問題