• [转][Oracle]数据文件自动扩展


    参考:http://www.voidcn.com/article/p-mckvczfj-ov.html
    解决 Oracle 数据库文件自动扩展到 32G 后报错 ORA-01563 的问题
    create or replace procedure auto_add_datafile is  
    ALL_file_name Varchar(500);  
    file_name Varchar(500);  
    tablespace_all varchar(500);
    Vs_Sql Varchar2(500);  
    cursor c_tablespace is   
    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  
    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 
           AND free.tablespace_name <> 'EXAMPLE' 
           and free.tablespace_name <> 'SYSTEM' 
           AND free.tablespace_name <> 'SYSAUX' 
           --AND free.tablespace_name <> 'USERS' 
           AND free.tablespace_name NOT LIKE 'UNDOTBS%';  
    Begin  
      for tablespace_all in c_tablespace loop  
            If tablespace_all.USED_PCT >=90 Then  
                ALL_file_name := 'c:oracleoradata数据库DB' || tablespace_all.tablespace_name;  
                ALL_file_name := ALL_file_name||'_'||to_char(sysdate,'yyyymmddhh24')||'.dbf';  
                Vs_Sql := 'alter tablespace "'||tablespace_all.tablespace_name||'" add datafile '''||ALL_file_name||''' size 100m autoextend on next 100m MAXSIZE UNLIMITED';              
                --dbms_output.put_line(Vs_Sql);  
                Execute Immediate Vs_Sql;  
           End If;  
      end loop;  
    exception  
      when others then  
        dbms_output.put_line(sqlerrm);  
    End auto_add_datafile;  

     添加定时执行(每天1点时)

    SQL> variable jobid number;  
    SQL> exec dbms_job.submit(:jobid,'auto_add_datafile;',sysdate, 'TRUNC(sysdate) + 1 +1/ (24)');  
    --每天凌晨1点执行。  
    SQL> exec dbms_job.run(:jobid); 

     如果需要手动执行,可以在 PL/SQL 里执行:

    begin
       auto_add_datafile;
    end;
  • 相关阅读:
    openpyxl模块的读写使用及mongodb概念
    MongoDB数据库的下载安装及配置方法
    利用while循环写的简单小游戏猜数字
    爬虫之爬取豆瓣top250电影排行榜及爬取斗图啦表情包解读及爬虫知识点补充
    红薯网防爬措施与斗图啦及豆瓣实战案例
    (小知识)结局不会的问题的解决流程
    spring2.5.6 jar包
    Struts2的DMI动态方法调用
    Struts2.1.6 jar包
    Hibernate3.3.2 jar包
  • 原文地址:https://www.cnblogs.com/z5337/p/14374210.html
Copyright © 2020-2023  润新知