[转][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:\oracle\oradata\数据库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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!