Oracle数据库表空间自动扩展脚本
说明:
*********************************************************************************************
// Oracle数据库表空间自动扩展脚本
// 通过数据库调度任务,扫描数据库在的表空间使用率,对使用率超过阈值的表空间进行文件添加,达到扩展空间
的目的,将不需要进行空间扩展的表空间存放在sys.unauto handle tbs表中,扫描时排队,扫描频率为每小时1次
// 需排除表空间信息表:sys.unauto_handle_tbs,如有新的表空间不需要扩展空间,请及时更新
// 在储过程脚本:auto_hands_tbs_proc
// 调度JOB名:SYS.AUTO_HANDS_TBS PROC_JOB
*********************************************************************************************
--存储过程脚本内容:
create or replace procedure auto_handle_tbs_proc
as
cursor c1 is select *
from dbmon.v_tbs_query
where spacename not in (
select tablespace name
from sys.unauto_handle_tbs)
and pct_free<5;
v_spacename ARCHAR2(30);
v_totalsizeNUMBER;
v usedsize NUMBER;
v totalfree NUMBER;
v pct free NUMBER;
begin
open c1;
1oop
fetch c1 into v_spacename,v_ totalsize,v_usedsize ,v_totalfree,v_pct free;
exit when cl not found;
if
(v_totalsize<=2097152 and v_totalfree 16384)
then
execute immediate 'alter tablespace '||v spacename||' add datafile size 16g';
elsif
(v_totalsize >2097152 and v_totalfree <32768)
then
execute immediate 'alter tablespace '||v spacename||’ add datafile size 32767m';
end if;
end loop;
close c1;
end;
/
浙公网安备 33010602011771号