11.1.GII THI#U ROLLBACK SEGMENTS 11.1.1 Khái niệm

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 115 - 117)

11.1.1. Khái niệm

Mỗi khi có sự thay đổi dữ liệu trong database, các dữ liệu cũ đều được lưu lại để có thể khơi phục lại trạng thái của dữ liệu trước khi thay đổi. Rollback segment được dùng để lưu trữ các giá trị cũ đó. Rollback segment lưu giữ các thơng tin về block như block ID, và các dữ liệu đã sửa đổi của block.

Hình vẽ 49. Rollback segment

Phần đầu (header) của một rollback segment chứa một transaction table là nơi lưu giữ thông tin về các giao dịch hiện thời có sử dụng tới rollback segment đang xem xét. Mỗi transaction chỉ có thể sử dụng duy nhất một rollback segment để lưu giữ các dữ liệu dùng để khôi phục. Nhiều transactions có thể đồng thời ghi dữ liệu lên rollback segment.

11.1.2. Mục đích sử dụng segment Transaction rollback

Khi một transaction thực hiện các thay đổi đối với các dòng dữ liệu trong table, các giá trị ban đầu (old image) sẽ được lưu giữ vào rollback segment. Khi transaction đó được rolled back (lấy lại), các dữ liệu cũ lưu trong rollback segment sẽ được lấy ra và đè lên dữ liệu hiện tại trong block, phục hồi lại các giá trị nguyên thuỷ.

Hình vẽ 50. Mục đích của rollback segment

Phục hồi các Transaction

Trong trường hợp một instance gặp lỗi khi các transactions đang thực hiện, Oracle server cần phải khôi phục lại các dữ liệu chưa commit. Rollback trong trường hợp này được gọi là phục hồi dữ liệu. Việc này chỉ thực hiện được khi các thay đổi đối với các rollback segments đã được kết hợp bảo vệ bởi các redo log files.

Nhất quán trong việc đọc dữ liệu

Khi một thực hiện các transactions, các users trong database sẽ không thể thấy được các dữ liệu đã bị thay đổi mà chưa được commit bởi transactions. Các dữ liệu cũ lưu trong rollback segments sẽ vẫn được sử dụng để cung cấp cho các users khác nhằm đảm bảo nhất quán dữ liệu cho các user đó.

11.1.3. Phân loại rollback segment SYSTEM Rollback Segment

SYSTEM rollback segment được tạo ngay trong SYSTEM tablespace mỗi khi một database được tạo lập. Rollback segment này chỉ được sử dụng đối với các thay đổi dữ liệu của các đối tượng nằm trong SYSTEM tablespace.

Non-SYSTEM Rollback Segments

Một database có thể có nhiều tablespaces và nên có ít nhất một non-SYSTEM rollback segment. Các non-SYSTEM rollback segment do quản trị viên database tạo lập có thể được sử dụng để lưu giữ các thay đổi trên các đối tượng có trong các non-SYSTEM tablespace khác. Có hai loại non-SYSTEM rollback segments.

Private: Private rollback segments là các segments được sử dụng riêng cho mỗi instance.

Public: Public rollback segments là một phần của rollback segments có trong database. Public rollback segments có thể được sử dụng bởi Oracle Parallel Server. Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 115 - 117)