Giả sử bạn có một giao dịch chưa hoàn thành (chưa cam kết). Oracle đã làm tất cả những điều bạn nói trong câu hỏi.
Bây giờ máy bị treo.
DBA, sau khi khôi phục máy (hoặc trên máy mới, tùy thuộc vào :)) khôi phục bản sao lưu cuối cùng và áp dụng tất cả nhật ký làm lại trên phiên bản mới. Trong quá trình làm lại cũng là những gì đã được thực hiện ở bước 1. Nhưng công việc đó không được cam kết, vì vậy động cơ cần phải quay lại. Đối với điều này, nó cần phân đoạn khôi phục. Nhưng phân đoạn khôi phục sẽ không ở đó nếu bạn không đăng nhập nó ở bước 3.
Tôi biết bây giờ bạn sẽ hỏi:tại sao nó áp dụng nhật ký cho công việc không cam kết? Đó cũng là câu hỏi của tôi khi tôi đọc về nó. Tôi không biết chắc chắn, nhưng có lẽ nó dễ dàng hơn để làm như vậy. Có lẽ khó kiểm tra mọi mục nhập của nhật ký rằng đó là một phần của giao dịch đã cam kết. Tuy nhiên, đây là cách Oracle hoạt động:Tôi áp dụng tất cả các bản ghi làm lại sau đó khôi phục các giao dịch chưa cam kết.