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;
/

 

posted @ 2025-11-06 11:17  斑竹园  阅读(1)  评论(0)    收藏  举报