ĐĂNG KÝ ĐỂ NHẬN THÔNG TIN MỚI NHẤT

Thông tin quản trị Database (phần 1)

Hướng dẫn chi tiết cách sử dụng các câu lệnh quản trị Database trên các Hệ Cơ sở dữ liệu

1. Kiểm tra dung lượng Tablespace

Oracle

Câu lệnh truy vấn kiểm tra dung lượng trên 90% của tất cả Tablespace trên Database.

SELECT * FROM (
-- Permanent and Undo Tablespaces
SELECT A.TABLESPACE_NAME,
   100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100, 2) USAGE,
   ROUND(A.BYTES_ALLOC/1024/1024/1024, 2) SIZE_GB,
   ROUND(NVL(B.BYTES_FREE, 0)/1024/1024/1024, 2) FREE_GB,
   ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0))/1024/1024/1024, 2) USED_GB,
   ROUND((NVL(B.BYTES_FREE, 0)/A.BYTES_ALLOC)*100, 2) FREE_PCT,
   ROUND(MAXBYTES/1024/1024/1024, 2) MAX_SIZE_GB,
   ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) * 100 / MAXBYTES, 2) USED_PCT_OF_MAX, 
   C.STATUS, C.CONTENTS
FROM ( 
   SELECT F.TABLESPACE_NAME, 
      SUM(F.BYTES) BYTES_ALLOC,
      SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES
   FROM DBA_DATA_FILES F
   GROUP BY TABLESPACE_NAME
   ) A, (
   SELECT TS.NAME TABLESPACE_NAME, 
      SUM(FS.BLOCKS) * TS.BLOCKSIZE BYTES_FREE
   FROM DBA_LMT_FREE_SPACE FS, SYS.TS$ TS
   WHERE TS.TS# = FS.TABLESPACE_ID
   GROUP BY TS.NAME, TS.BLOCKSIZE
   ) B, DBA_TABLESPACES C
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
   AND A.TABLESPACE_NAME = C.TABLESPACE_NAME
UNION ALL
-- Temp Tablespaces
SELECT H.TABLESPACE_NAME,
   100 - ROUND((SUM((H.BYTES_FREE + H.BYTES_USED) - NVL(P.BYTES_USED, 0)) / SUM(H.BYTES_USED + H.BYTES_FREE)) * 100, 2) USAGE,
   ROUND(SUM(H.BYTES_FREE + H.BYTES_USED)/1024/1024/1024, 2) SIZE_GB,
   ROUND(SUM((H.BYTES_FREE + H.BYTES_USED) - NVL(P.BYTES_USED, 0))/1024/1024/1024, 2) FREE_GB,
   ROUND(SUM(NVL(P.BYTES_USED, 0))/1024/1024/1024, 2) USED_GB,
   ROUND((SUM((H.BYTES_FREE + H.BYTES_USED) - NVL(P.BYTES_USED, 0)) / SUM(H.BYTES_USED + H.BYTES_FREE)) * 100, 2) FREE_PCT,
   ROUND(SUM(DECODE(F.AUTOEXTENSIBLE, 'YES', F.MAXBYTES, 'NO', F.BYTES)/1024/1024/1024), 2) MAX_SIZE_GB,
   ROUND((SUM(NVL(P.BYTES_USED, 0))/1024/1024/1024)*100/(SUM(DECODE(F.AUTOEXTENSIBLE, 'YES', F.MAXBYTES, 'NO', F.BYTES)/1024/1024/1024)), 2) USED_PCT_OF_MAX,
   C.STATUS, C.CONTENTS
FROM SYS.V_$TEMP_SPACE_HEADER H, (
   SELECT TABLESPACE_NAME, 
      FILE_ID, SUM(BYTES_USED) BYTES_USED
   FROM SYS.GV_$TEMP_EXTENT_POOL
   GROUP BY TABLESPACE_NAME, FILE_ID
   ) P, DBA_TEMP_FILES F, DBA_TABLESPACES C
WHERE P.FILE_ID(+) = H.FILE_ID
   AND P.TABLESPACE_NAME(+) = H.TABLESPACE_NAME
   AND F.FILE_ID = H.FILE_ID
   AND F.TABLESPACE_NAME = H.TABLESPACE_NAME
   AND F.TABLESPACE_NAME = C.TABLESPACE_NAME
GROUP BY H.TABLESPACE_NAME, C.STATUS, C.CONTENTS
) WHERE USAGE > 90
-- USED_PCT_OF_MAX > 90
ORDER BY USED_GB DESC;

Câu lệnh trên được ghép từ một câu truy vấn các Tablespace thường với một câu truy vấn Temp Tablespace bằng phép UNION trong Oracle Database. Kết quả trả về bao gồm các thông tin sau:

  • TABLESPACE_NAME – tên Tablespace
  • USAGE – phần trăm dung lượng đã dùng trên dung lượng cấp phát
  • SIZE_GB – dung lượng cấp phát, đơn vị GB
  • FREE_GB – dung lượng còn trống, đơn vị GB
  • USED_GB – dung lượng đã dùng, đơn vị GB
  • FREE_PCT – phần trăm dung lượng trống trên dung lượng cấp phát
  • MAX_SIZE_GB – dung lượng tổng tính theo Max Size của Data File
  • USED_PCT_OF_MAX – phần trăm dung lượng đã dùng trên dung lượng tổng tính theo Max Size của Data File
  • STATUS –  trạng thái Tablespace (ONLINE hoặc OFFLINE)
  • CONTENTS – loại Tablespace (PERMANENT, UNDO hoặc TEMPORARY)

Có thể thay đổi điều kiện trong mệnh đề WHERE  để tìm Tablespace mong muốn:

Tiếp theo

Liên Hệ với Wecommit

Nếu bạn muốn liên hệ với Wecommit, bạn có thể trao đổi trực tiếp qua Facebook cùng Trần Quốc Huy – người sáng lập của Wecommit.

Nếu bạn muốn chúng tôi đồng hành xây dựng sự nghiệp với bạn trong 01 năm (bạn sẽ có rất nhiều kiến thức, kinh nghiệm ĐỘC QUYỀN về tối ưu cơ sở dữ liệu) bạn có thể đăng ký trải nghiệm chương trình Từ điển tối ưu 100x hiệu năng của chúng tôi.

Views: 17





    Câu hỏi bảo mật

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *