10.2.QUN LÝ EXTENTS

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

10.2.1. Cấp phát và thu hồi các extents

Việc cấp phát các extent xảy ra mỗi khi segment được tạo mới, được mở rộng hay bị thay đổi (altered).

Và nó sẽ bị thu hồi khi segment bị huỷ, bị thay đổi, bị cắt bớt (truncated). Riêng đối với các rollback segments, các extent có thể bị tự động thu hồi.

10.2.2. Sử dụng và giải phóng các extent

Khi một tablespace được tạo, các data files thuộc tablespace sẽ chứa các phần thông tin sau:

Header block, tương ứng với block đầu tiên của file Phần còn lại của data file là các phần cịn trống

Hình vẽ 40. Sử dụng và giải phóng các extents

Mỗi khi segments được tạo lập, nó sẽ được cấp phát một vùng khơng thích hợp từ những extents cịn trống trong tablespace. Segment sẽ cố gắng sử dụng nhiều nhất các vùng không gian liên tiếp nhau. Sau khi cấp phát, extent đó sẽ được xem là used extent (extent đã được sử dụng). Khi các segments giải phóng vùng khơng gian, các extents tương ứng với nó sẽ được giải phóng và đưa vào vùng free extents (extents rỗi) của tablespace. Với việc cấp phát và giải phóng các extents có thể gây nên hiện tượng phân đoạn vùng dữ liệu trong các data files của tablespace.

10.2.3. Kết hợp các vùng không gian trống

Ta có thể thực hiện việc kết hợp các vùng không gian trống liên tiếp nhau mỗi khi các extents trong cùng một tablespace được giải phóng. Điều này rất dễ xảy ra, ví dụ: khi có hai table bị huỷ (dropped). Các extents trống này có thể được kết hợp lại thành một extent trong các điều kiện:

Khi tiến trình SMON khởi tạo một space transaction để kết hợp các extents trống.

Khi Oracle server cần phải cấp phát vùng trống mà nó cần tới lượng khơng gian trống lớn hơn không gian của một extent.

Kết hợp theo yêu cầu của quản trị viên database.

Hình vẽ 41. Kết hợp các vùng khơng gian trống

Lưu ý

Tiến trình SMON sẽ chỉ kết hợp các extent trong cùng tablespaces khi mà PCTINCREASE lớn hơn 0. Trong storage clause mặc định của tablespaces, đặt PCTINCREASE=1 khi đó các user objects có thể được tự động kết hợp các vùng trống mỗi khi nó được giải phóng.

Yêu cầu kết hợp vùng trống

View DBA_FREE_SPACE_COALESCED được dùng để xem tablespace nào có các extents rỗng có thể kết hợp được với nhau. Sử dụng câu lênh truy vấn sau đây để lấy các thông tin:

SVRMGR> SELECT tablespace_name, total_extents, 2> percent_extents_coalesced

3> FROM dba_free_space_coalesced

4> WHERE percent_extents_coalesced <> 100; TABLESPACE_NAME TOTAL_EXTE PERCENT_EX --------------- ---------- ----------

RBS 3 33

DATA01 9 22

2 rows selected.

Thực hiện kết hợp các vùng không gian trống trong tablespace bằng lệnh dưới đây: ALTER TABLESPACE tablespace COALESCE;

Trong OEM, ta thực hiện theo các bước sau 1. Sử dụng công cụ Oracle Tablespace Manager. 2. Chuyển tới nút Expand Tablespaces.

3. Chọn tablespace tương ứng.

4. Chọn mục Tools—>Coalesce Free Extents.

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