Undo và Redo: là 2 thành phần quan trọng phục vụ cho việc phục hồi dữ liệu trong Oracle Database.
I: Undo
Undo là 1 khái niệm liên quan tới quá trình rollback, undo bao gồm các bản ghi của các thay đổi dữ liệu cũ xảy ra trong giao dịch. Khi một giao dich bắt đầu các bản ghi undo được tạo ra để lưu trữ các giá trị cũ của dữ liệu trước khi bị thay đổi. Nếu giao dịch có hành động rollback thì các bản ghi undo sẽ được sử dụng để rollback dữ liệu.
Các thành phần:
- Undo Tablespace: là không gian lưu trữ dành riêng để lưu trữ các bản ghi undo. Mỗi Instance của Oracle Database sẽ có một hoặc nhiều Undo tablespace được sử dụng để lưu trữ undo data trong quá trình giao dịch.
- Undo data: là các bản ghi chứa thông tin về các thay đổi dữ liệu được thực hiện trong quá trình giao dịch. Khi 1 giao dịch thực hiện các thay đổi (Insert, update, delete) trên các đối tượng trong CSDL, các bản ghi undo data được tạo ra để lưu trữ các thay đổi, undo data hỗ trợ khả năng roolback, read consistency, flashback query và undo-based recovery.
- Undo Retention: Là thời gian mà các bản ghi undo data được lưu lại trong undo tablespace trước khi bị xoá. Giá trị của Undo retention được xác định bằng giây và có thể được điều chỉnh trong cài đặt parameter.
- Undo space: Undo space là không gian trong undo tablespace được dùng để lưu trữ các bản ghi undo data. Khi 1 giao dich thực hiện các thay đổi, undospace sẽ tăng lên để lưu trữ các bản ghi undo data tương ứng. Nếu không gian trong undo tablespace không đủ để lưu các giao dịch mới sẽ gây ra lỗi ORA-30036 unable to extend segment.
II. Redo
redo : Khi một giao dịch thực hiện các thay đổi dữ liệu thì các thay đổi đó sẽ được lưu vào redo log file trước khi được áp dụng thay đổi xuống database. Quá trình này được gọi ra ghi redo (redo logging).
- Redo có vai trò quan trọng trong việc phục hồi dữ loẹeu sau khi có sự cố xảy ra như mất điện, hỏng hóc phần cứng hoặc lỗi hệ thống. Khi xảy ra sự cố Oracle Database có thể sử dụng các thông tin trong Redo log file để hoàn tác các thay đổi đã xảy ra và đảm bảo tính nhất quán của cơ sở dữ liệu.
- Redo log file hoạt động theo cơ chế vòng lặp (circular logging). Khi 1 redo log file đầy nó sẽ chuyển sang redo log file tiếp theo để tiếp tục ghi các thay đổi các redo log file cũ hơn sẽ bị ghi đè.