平时在工作中,客户那边的服务器--放置ERP的,很容易表空间不足造成业务流程走不通,导致一些不必要的麻烦,作为一个运维,必须时刻查看表空间,通过脚本监控来进行报警;
怎么查看表空间
select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
--查询表空间使用率
SELECT total.tablespace_name,
Round(total.MB, 2) AS Total_MB,
Round(total.MB - free.MB, 2) AS Used_MB,
Round(( 1 - free.MB / total.MB ) * 100, 2)
|| '%' AS Used_Pct,
Round(free.MB, 2) AS free_MB
FROM (SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
FROM dba_free_space
GROUP BY tablespace_name) free,
(SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
FROM dba_data_files
GROUP BY tablespace_name) total
WHERE free.tablespace_name = total.tablespace_name;
如果不足,则必须加长表空间,或者加多一个user表
ALTER TABLESPACE USERS ADD DATAFILE '/ora/oracle/oradata/dbserver/users03.dbf' size 20000M;
ALTER DATABASE DATAFILE '/ora/oracle/oradata/dbserver/users04.dbf' RESIZE 20000M;