Quản trị Undo tablespace trong Oracle database

Undo Tablespace trong Oracle là một không gian lưu trữ được sử dụng để chứa thông tin về các phiên bản trước của dữ liệu và các thay đổi đang diễn ra trong cơ sở dữ liệu. Undo Tablespace chứa các segment undo, được sử dụng để lưu trữ dữ liệu về các giao dịch đang diễn ra trong cơ sở dữ liệu.

Dưới đây là một số điểm quan trọng về Undo Tablespace trong Oracle:

  1. Quản lý giao dịch và đọc nhìn giống Snapshot Isolation: Undo Tablespace lưu trữ thông tin về các giao dịch đang diễn ra và các thay đổi đang được thực hiện trong cơ sở dữ liệu. Điều này cho phép hệ thống hoàn tác các thay đổi của giao dịch nếu cần thiết, đồng thời cung cấp tính nhất quán cho các truy vấn đọc nhìn giống Snapshot Isolation.
  2. Flashback Query: Undo Tablespace cung cấp cơ sở cho tính năng Flashback Query trong Oracle, cho phép người dùng truy vấn dữ liệu như nó đã tồn tại ở một thời điểm trước đó bằng cách sử dụng các phiên bản trước của dữ liệu được lưu trong Undo Tablespace.
  3. Quản lý không gian lưu trữ: Cấu hình của Undo Tablespace cần được quản lý cẩn thận để đảm bảo đủ không gian để lưu trữ các phiên bản trước của dữ liệu và các thay đổi đang diễn ra. Có thể cấu hình kích thước và tăng tự động của Undo Tablespace để đáp ứng nhu cầu của hệ thống.
  4. Quản lý vùng lưu trữ Undo: Bạn có thể sử dụng lệnh SQL hoặc các công cụ quản trị Oracle để quản lý Undo Tablespace, bao gồm tạo, sửa đổi kích thước, di chuyển, và xoá Undo Tablespace.

— Tạo mới undo tablespace

create undo tablespace undotbs2 datafile

size 100m autoextend on next 10m maxsize unlimited;

— Thay đổi undo hiện tại thành undo mới, mặc định hệ thống là undotbs1

alter system set undo_tablespace = undotbs2;

— Kiểm tra undo stat

select * from v$undostat;

–Các tham số liên quan tới undo trong parameter

show parameter undo

— Đặt tham số undo retention 24h: tham số chỉ định thời gian giữ lại các bản ghi undo, mặc định là 15 phút, ngoài thời gian này undo sẽ bị xoá và không thể flashback dữ liệu ngoài thời gian đó.

alter system set undo_retention=86400 scope=both;

— Thêm add datafile cho undo TBS

alter tablespace UNDOTBS1 add datafile size 100m autoextend on next 10m maxsize unlimited;

Thông tin thêm:

Undo Tablespace chứa các bản ghi undo, còn được gọi là rollback segments, giúp hệ thống hoạt động theo cơ chế “read consistency” và hỗ trợ các giao dịch. Có thể có nhiều Undo Tablespace trong một cơ sở dữ liệu.

Undo Retention: “Undo Retention” là khoảng thời gian mà một bản ghi undo được giữ lại trong Tablespace trước khi nó có thể bị ghi đè.

dd

Bạn có thể thiết lập Undo Retention bằng cách sử dụng tham số UNDO_RETENTION.

Kiểm tra undo retention hiện tại: SELECT * FROM V$UNDOSTAT;

Hoặc thực hiện truy vấn parameter

Show parameter undo

Trong đó:

temp_undo_enabled được sử dụng để bật hoặc tắt tính năng “temporary undo”. Tính năng này liên quan đến quản lý không gian undo cho các câu lệnh SQL SELECT trong môi trường cơ sở dữ liệu cùng lúc với các câu lệnh DML (Data Manipulation Language) như INSERT, UPDATE, và DELETE. Điều này giúp giảm áp lực lên không gian undo chung và cải thiện hiệu suất hệ thống trong một số tình huống.

ALTER SYSTEM SET TEMP_UNDO_ENABLED = TRUE;

undo_management: nó quyết định liệu hệ thống sẽ sử dụng kiểu quản lý “manual” (thủ công) hay “auto” (tự động) cho không gian undo. Các giá trị phổ biến cho undo_management là “AUTO” hoặc “MANUAL”. Khi undo_management được đặt thành “AUTO”, Oracle sẽ tự động quản lý không gian undo và sử dụng một loại gọi là “automatic undo management.” Trong trường hợp này, các tham số khác như undo_retention, undo_tablespace, và undo_suppress_errors có thể được cấu hình để kiểm soát cách Oracle quản lý không gian undo.

ALTER SYSTEM SET UNDO_MANAGEMENT = AUTO;

Giá Trị “MANUAL”: Khi undo_management được đặt thành “MANUAL”, quản trị viên phải thủ công quản lý không gian undo, và hệ thống sẽ sử dụng các segment undo (rollback segments) do người quản trị tạo ra. Các tham số như rollback_segments sẽ được sử dụng trong trường hợp này.

ALTER SYSTEM SET UNDO_MANAGEMENT = MANUAL;

undo_retention: tham số undo_retention được sử dụng để đặt thời gian giữ lại (retention time) cho các bản ghi undo trong không gian undo. Thời gian giữ lại này xác định bao lâu các bản ghi undo sẽ được giữ lại trước khi có thể bị ghi đè (overwritten).

ALTER SYSTEM SET UNDO_RETENTION = 1800; — Ví dụ: 1800 giây (30 phút)

undo_tablespace: tham số undo_tablespace được sử dụng để đặt không gian undo (undo tablespace) mặc định cho cơ sở dữ liệu

ALTER SYSTEM SET UNDO_TABLESPACE = your_undo_tablespace;

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận