Katakanlah Anda memiliki transaksi yang belum selesai (tidak terikat). Oracle telah melakukan semua hal yang Anda katakan dalam pertanyaan.
Sekarang mesinnya mogok.
DBA, setelah pemulihan mesin (atau pada mesin baru, itu tergantung :)) mengembalikan cadangan terakhir dan menerapkan semua log ulang pada contoh baru. Dalam pengulangan juga apa yang dilakukan pada langkah 1. Tetapi pekerjaan itu tidak dilakukan, sehingga mesin perlu memutarnya kembali. Untuk ini diperlukan segmen rollback. Tapi segmen rollback tidak akan ada jika Anda tidak login pada langkah 3.
Saya tahu Anda akan bertanya sekarang:mengapa ini menerapkan log untuk pekerjaan yang tidak dikomit? Itu pertanyaan saya juga ketika saya membacanya. Saya tidak tahu pasti, tapi mungkin lebih mudah melakukannya. Mungkin lebih sulit untuk memeriksa setiap entri log yang merupakan bagian dari transaksi yang dilakukan. Namun, beginilah cara kerja Oracle:Saya menerapkan semua log redo lalu mengembalikan transaksi yang tidak dikomit.