Shrinking segments – Giảm dung lượng segments trong Oracle Database

Quản trị việc thu nhỏ các segment (shrinking segments) trong Oracle Database là một phương pháp tối ưu hóa không gian lưu trữ bằng cách giải phóng không gian không sử dụng và trả lại nó cho tablespace. Điều này có thể giúp cải thiện hiệu suất và quản lý không gian lưu trữ hiệu quả hơn.

Các Bước Thu Nhỏ Segment

Kiểm Tra Điều Kiện Để Thu Nhỏ:

Trước khi thu nhỏ segment, bạn cần đảm bảo rằng các bảng hoặc Index mà bạn muốn thu nhỏ có hỗ trợ thu nhỏ segment. Tính năng này thường áp dụng cho các bảng có tính năng ASSM (Automatic Segment Space Management) và ROW MOVEMENT được bật.

— Kiểm tra xem ROW MOVEMENT có được bật hay không

SELECT table_name, row_movement FROM dba_tables
WHERE table_name = 'TAB1';

word image 3100 1

Bật Tính Năng ROW MOVEMENT:

Để thu nhỏ một bảng, bạn cần bật tính năng ROW MOVEMENT cho bảng đó:

ALTER TABLE TAB1 ENABLE ROW MOVEMENT;

word image 3100 2

Thu Nhỏ Segment:

Sử dụng lệnh ALTER TABLE … SHRINK SPACE để thu nhỏ bảng. Bạn có thể chọn thu nhỏ segment và giữ các dòng hiện tại hoặc thu nhỏ segment và di chuyển các dòng.

##Thu nhỏ segment và giữ các dòng hiện tại:

ALTER TABLE TAB1 SHRINK SPACE;

##Thu nhỏ segment và di chuyển các dòng:

ALTER TABLE TAB1 SHRINK SPACE COMPACT;

Lệnh SHRINK SPACE COMPACT di chuyển các dòng mà không giải phóng không gian ngay lập tức. Sau đó, bạn cần chạy lệnh SHRINK SPACE để thực sự giải phóng không gian.

ALTER TABLE TAB1 SHRINK SPACE;

Thu Nhỏ Index:

Tương tự, bạn cũng có thể thu nhỏ các Index bằng lệnh ALTER INDEX … SHRINK SPACE.

ALTER INDEX your_index_name SHRINK SPACE;

Kiểm Tra Lại Không Gian Đã Được Thu Nhỏ:

Sau khi thu nhỏ, bạn có thể kiểm tra lại không gian đã được giải phóng bằng cách sử dụng các view hệ thống như DBA_SEGMENTS, DBA_FREE_SPACE.

SELECT segment_name, segment_type, bytes
FROM dba_segments
WHERE segment_name = 'TAB1';

SELECT *
FROM dba_free_space
WHERE tablespace_name = 'DUONG_TBS';

word image 3100 3

Lưu Ý Khi Shrinking Segments

  1. Ảnh Hưởng Hiệu Suất: Việc thu nhỏ segment có thể ảnh hưởng đến hiệu suất hoạt động của hệ thống trong thời gian thu nhỏ, do đó nên thực hiện vào thời điểm ít người dùng hoặc ngoài giờ làm việc chính.
  2. Khóa Hàng: Thu nhỏ segment có thể yêu cầu khóa bảng hoặc khóa hàng, dẫn đến khả năng chờ đợi cho các giao dịch khác.
  3. Thử Nghiệm Trước Khi Triển Khai: Nên thử nghiệm việc thu nhỏ trên môi trường thử nghiệm trước khi thực hiện trên môi trường sản xuất để đảm bảo không gây ra các vấn đề không mong muốn.
  4. Sao Lưu Dữ Liệu: Luôn sao lưu dữ liệu trước khi thực hiện các thao tác thay đổi cấu trúc hoặc dữ liệu lớn.

Bằng cách tuân thủ các bước và lưu ý trên, bạn có thể quản lý và tối ưu hóa không gian lưu trữ hiệu quả trong Oracle Database thông qua việc thu nhỏ segment.

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
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