Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Увеличение информативности запроса для мониторинга табличных пространств

...

Code Block
sql
sql
WITH TBLSP_TOTAL AS (
  SELECT TABLESPACE_NAME,
         ROUND(SUM(BYTES)/(1024*1024)) ALLOCATED_MB,
         ROUND(SUM(DECODE(MAXBYTES, 0, BYTES, MAXBYTES))/(1024*1024)) MAX_MB
  FROM   DBA_DATA_FILES
  GROUP BY TABLESPACE_NAME
  UNION ALL
  SELECT TABLESPACE_NAME,
         ROUND(SUM(BYTES)/(1024*1024)) ALLOCATED_MB,
         ROUND(SUM(DECODE(MAXBYTES, 0, BYTES, MAXBYTES))/(1024*1024)) MAX_MB
  FROM   DBA_TEMP_FILES
  GROUP BY TABLESPACE_NAME),
TBLSP_FREE AS (
  SELECT TABLESPACE_NAME,
         ROUND(SUM(BYTES)/(1024*1024)) FREE_MB
  FROM   DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME
  UNION ALL
  SELECT TABLESPACE_NAME,
         ROUND(FREE_SPACE/(1024*1024)) FREE_MB
  FROM   DBA_TEMP_FREE_SPACE),
TBLSP_USED AS (
  SELECT TS.TABLESPACE_NAME,
         TS.ALLOCATED_MB - NVL(FS.FREE_MB, 0)       TABLESPACE_NAME         USED_MB,
         NVL((TS.ALLOCATED_MB-FS.FREE_MB), 0)  USED_MB,          NVL(FS.FREE_MB, 0)                     FREE_MB,
         TS.ALLOCATED_MB                                     TOTAL_MB,
         TS.MAX_MB                                           TOTAL_MAX_MB,
         TS.MAX_MB - (TS.ALLOCATED_MB - NVL(FS.FREE_MB, 0))  FREE_MAX_MB
  FROM   TBLSP_TOTAL TS,
         TBLSP_FREE  FS
  WHERE  FS.TABLESPACE_NAME(+) = TS.TABLESPACE_NAME)
SELECT TABLESPACE_NAME  "TABLESPACE",
       USED_MB          "Used MB",
       FREE_MB          "Free MB",
       TOTAL_MB         "Total MB",
       TOTAL_MAX_MB     "Total Max MB",
       FREE_MAX_MB      "Free Max MB",
       ROUND(100*((TOTALFREE_MAX_MB-USED_MB)/TOTAL_MAX_MB))  "Pct. Free"
FROM   TBLSP_USED
ORDER BY TABLESPACE_NAME;

...

#

TABLESPACE

Used MB

Free MB

Total MB

Total Max MBFree Max MB

Pct. Free

1

HYDRA

22903

27555

50458

61492

38589

63

2

HYDRA_INDEX

40621

6781

47402

9429253671

57

3

SYSAUX

1829

321

2150

3276830939

94

4

SYSTEM

14413

67

14480

3276818355

56

5

TOOLS

1

31

32

3231

97

6UNDOTBS1 8445 29078 37523655365709187
7USERS 1 4 53276832767100

Значения полей:

  • TABLESPACE — название табличного пространства
  • Used MB — объем несвободных блоков в занятом объеме на диске
  • Free MB — объем свободных блоков в занятом объеме на диске
  • Total MB — занятый объем на диске
  • Total Max MB — максимально возможный объем на диске, который разрешено захватить СУБД с ростом данных. Может быть больше объема доступного дискового пространства.
  • Free Max MB — максимально возможный объем, на который может разрешено увеличиться с ростом данных. Может быть больше объема доступного дискового пространства.
  • Pct. Free — процент свободного объема. Расчитывается как отношение Free Max MB к Total Max MB.

Здесь особое внимание нужно уделить показателю Pct. Free для пространств HYDRA и HYDRA_INDEX. При слишком малых значениях его (менее 20%) необходимо автоматически информировать администратора о проблеме со свободным местом. В противном случае в БД, например, могут остановиться важные системные задания с такой подобной ошибкой:

Code Block
Ошибка при запуске JB_DATA_COLLECT_PKG.EX_DATA_COLLECT_ACCOUNTING
[ORA-01654: unable to extend index AIS_NET.EX_TRAFFIC_COL_C_FIRM_IDX by 8192
in tablespace HYDRA_INDEX]

Значение Total MB показывает фактически выделенное место под табличное пространство, а Total Max MB показывает максимально возможное место, которое СУБД разрешено захватить под данное пространство при его автоматическом расширении с ростом данных. Следует учитывать, что значение Total Max MB может быть больше объема доступного дискового пространства. Процент свободного места (Pct. Free) расчитывается на основании использованого места (Used MB) и максимально возможного (Total Max MB).

Контроль нетарифицированных телефонных звонков

...