Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Oracle® 10g giới thiệu tablespace bắt buộc mới tên là SYSAUX với các thuộc tính bắt buộc như PERMANENT, READ WRITE, EXTENT MANAGEMENT LOCAL, và SEGMENT SPACE MANAGEMENT AUTO. Bài viết khám phá cách quản lý tablespace này khi nó phát triển.

Giới thiệu

Bạn có thể dùng SYSAUX Tablespace để:

  • Tránh phân mảnh SYSTEM Tablespace do các tùy chọn install/deinstall.
  • Tránh rủi ro hỏng SYSTEM Tablespace và tình trạng hết dung lượng.
  • Giảm bảo trì cho DBA.
  • Lưu trữ và giảm thiểu Tablespace cho tất cả metadata phụ trợ liên quan đến các tùy chọn và tính năng Oracle, như các mục sau:
Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Các Occupants của SYSAUX

Có 26 SYSAUX Occupants bạn có thể truy vấn, như ví dụ sau:

SQL> SELECT OCCUPANT_NAME, OCCUPANT_DESC FROM V$SYSAUX_OCCUPANTS ORDER BY SPACE_USAGE_KBYTES DESC
Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Các phiên bản Oracle Database sau thêm nhiều thành phần hơn, như hình:

Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Hình sau minh họa các thành phần được thêm vào hoặc deprecated trong từng phiên bản Oracle Database:

Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Quản trị SYSAUX Tablespace chủ động

Để chủ động monitor và quản lý SYSAUX Tablespace, thực hiện các hành động sau:

  1. Đặt SYSAUX Tablespace ở chế độ AUTOEXTEND OFF.
  2. Xác nhận giá trị STATISTICS_LEVEL.
    - Giá trị **ALL** đôi khi tốn nhiều tài nguyên.
    - Giá trị **BASIC** và **TYPICAL** thường tiêu thụ ít tài nguyên hơn.
  3. Kiểm tra cách bạn dùng Advisors, Baselines, và SQL Tuning Sets. Advisors cần giữ thông tin trong snapshots ngay cả khi bạn định xóa range snapshot.
  4. Chạy truy vấn để xác định sysaux_occupant nào tiêu thụ nhiều không gian nhất trong SYSAUX Tablespace.

Quản trị SYSAUX Tablespace khắc phục

SYSAUX Tablespace phát triển vì các lý do:

  • Bạn đặt kỳ hạn retention quá lớn.
  • Segment Advisor phát triển quá lớn.
  • Active Session History (ASH) phát triển quá lớn.

Các phần sau đưa ra một số hành động khắc phục:

Kiểm tra kỳ hạn AWR Retention

Để quản lý, hãy kiểm tra kỳ hạn retention của Automatic Workload Repository (AWR) Snapshot. AWR thu thập thống kê hiệu suất để phát hiện vấn đề và tuning, lưu chi tiết trong bộ nhớ và bảng Database. Hệ thống xóa dữ liệu đã lưu dựa trên kỳ hạn retention. Nếu kỳ hạn quá cao, dữ liệu này tiêu thụ nhiều không gian trong SYSAUX Tablespace. Vì vậy, bạn nên đặt kỳ hạn retention phù hợp. Kiểm tra bằng truy vấn:

SQL> SELECT RETENTION FROM DBA_HIST_WR_CONTROL;

Bạn có thể thay đổi retention thủ công bằng procedure DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS. Ví dụ sau đặt retention = 5760 phút (4 ngày: 4 * 24 * 60 = 5760):

SQL> EXECUTE DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT(RETENTION=>5760);

Kiểm tra đối tượng lớn nhất trong SYSAUX Tablespace

Chạy truy vấn sau để xác định occupant lớn nhất trong Tablespace:

SQL> SELECT OCCUPANT_NAME, SCHEMA_NAME, MOVE_PROCEDURE, SPACE_USAGE_KBYTES FROM V$SYSAUX_OCCUPANTS;
Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Bạn dùng lệnh MOVE procedure để di chuyển occupant sang Tablespace khác trừ khi MOVE_PROCEDURE là NULL.

Ví dụ di chuyển WKSYS Occupant sang Tablespace XYZ:

SQL> EXECUTE WKSYS.MOVE_WK('XYZ');

Kiểm tra Active Session History (ASH)

Kiểm tra xem ASH có tiêu thụ nhiều không gian trong AWR data không bằng script:

SQL> @$ORACLE_HOME/RDBMS/ADMIN/AWRINFO.SQL
Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Mức sử dụng ASH 1.1% là chấp nhận được. Nếu cao, hãy xóa các ASH rows mồ côi (orphaned). Kiểm tra orphaned rows bằng truy vấn:

SQL> SELECT COUNT(1) ORPHANED_ASH_ROWS FROM WRH$_ACTIVE_SESSION_HISTORY A
WHERE NOT EXISTS (SELECT 1 FROM WRM$_SNAPSHOT
WHERE SNAP_ID = A.SNAP_ID AND DBID = A.DBID AND INSTANCE_NUMBER = A.INSTANCE_NUMBER);
Quản trị Tablespace SYSAUX: Best Practices cho Oracle 10g

Vì giá trị lớn hơn 0, hãy xóa các orphan bằng truy vấn:

SQL> DELETE FROM WRH$_ACTIVE_SESSION_HISTORY A
WHERE NOT EXISTS (SELECT 1 FROM WRM$_SNAPSHOT
WHERE SNAP_ID = A.SNAP_ID AND DBID = A.DBID AND INSTANCE_NUMBER = A.INSTANCE_NUMBER);

Sau đó, chạy truy vấn sau để shrink bảng WRH$_ACTIVE_SESSION_HISTORY và thu hồi không gian đã giải phóng:

SQL> ALTER TABLE WRH$_ACTIVE_SESSION_HISTORY SHRINK SPACE;

Kết luận

Bài viết giới thiệu SYSAUX Tablespace. Cung cấp gợi ý về monitor và quản lý tăng trưởng không gian của các Occupant mặc định trong SYSAUX Tablespace và nhận diện bất kỳ đối tượng non-default nào được lưu sai trong Tablespace.

Tìm hiểu thêm về dịch vụ Database của chúng tôi.

Sử dụng tab Feedback để bình luận hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.