1. 程式人生 > >Oracle 一些表空間問題的處理

Oracle 一些表空間問題的處理

一,SYSAUX 表空間不足

SYSAUX 表空間做為 SYSTEM 表空間的輔助表空間,主要存放 EM 相關的內容以及表統計資訊,AWR快照,審計資訊等,而如果 SYSAUX 表空間在預設條件下你如果不做任何配置,隨著時間的推移,會膨脹的越來越大。

1、是什麼佔用了 sysaux 空間

select occupant_name, schema_name, occupant_desc, space_usage_kbytes
  from v$sysaux_occupants
 order by space_usage_kbytes desc

Oracle 一些表空間問題的處理

可以看到是主要是 AWR 佔用了空間。

2、清除 AWR

SQL> connect / as sysdba
SQL> @?/rdbms/admin/catnoawr.sql
SQL> @?/rdbms/admin/catawrtb.sql

3、查看錶空間佔用情況

SELECT B.TABLESPACE_NAME 表空間,
       B.FILE_NAME 資料檔名,
       B.BYTES / 1024 / 1024 大小M,
       (B.BYTES - SUM(NVL(A.BYTES, 0))) / 1024 / 1024 已使用M,
       SUBSTR((B.BYTES - SUM(NVL(A.BYTES, 0))) / (B.BYTES) * 100, 1, 5) || '%' 使用率
  FROM DBA_FREE_SPACE A, DBA_DATA_FILES B
 WHERE A.FILE_ID = B.FILE_ID
 GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.BYTES
 ORDER BY B.TABLESPACE_NAME

二、USER 表空間不足

1、zabbix 報警表空間不足

Oracle 一些表空間問題的處理

2、檢視資料庫表空間佔用情況

SELECT B.TABLESPACE_NAME 表空間,
       B.FILE_NAME 資料檔名,
       B.BYTES / 1024 / 1024 大小M,
       (B.BYTES - SUM(NVL(A.BYTES, 0))) / 1024 / 1024 已使用M,
       SUBSTR((B.BYTES - SUM(NVL(A.BYTES, 0))) / (B.BYTES) * 100, 1, 5) || '%' 使用率
  FROM DBA_FREE_SPACE A, DBA_DATA_FILES B
 WHERE A.FILE_ID = B.FILE_ID
 GROUP BY B.TABLESPACE_NAME, B.FILE_NAME, B.BYTES
 ORDER BY B.TABLESPACE_NAME

Oracle 一些表空間問題的處理

3、增加表空間

Alter tablespace USERS  add datafile '/ordata/orcl/users17.dbf' size 20G;