--------执行此脚本之前需要创建名称为 datafile_no 的序列 最小值为1 增长量为1 最大值为 10000000
--------默认为在表空间HIS_DATA下创建数据文件。
--------过程创建之后需要进行编译,编译成功后,创建job进行调用。间隔时间为 trunc(sysdate+1,'DD')+1/24 每天调用。
--------并且调用时间必须在同步数据的job运行前前两小时执行。
Create Or Replace Procedure Temp_1 Is
Tablespacename Varchar(500);
Free Number(10);
Vs_Sql Varchar2(500);
Data_File_No Number(4);
Begin
Free := 0;
Select Tablespace_Name, Fz
Into Tablespacename, Free
From (Select a.Tablespace_Name, a.Bytes / 1024 / 1024 "总共MB", (a.Bytes - b.Bytes) / 1024 / 1024 "使用MB",
b.Bytes / 1024 / 1024 "空闲MB", Round(((a.Bytes - b.Bytes) / a.Bytes) * 100, 2) Fz ------使用百分比
From (Select Tablespace_Name, Sum(Bytes) Bytes From Dba_Data_Files Group By Tablespace_Name) a,
(Select Tablespace_Name, Sum(Bytes) Bytes, Max(Bytes) Largest From Dba_Free_Space Group By Tablespace_Name) b
Where a.Tablespace_Name = b.Tablespace_Name)
Where Tablespace_Name = 'HIS_DATA'; ----默认表空间名称
If Free >= 80 Then
Select Data_Src.Datafile_No.Nextval Into Data_File_No From Dual;
Vs_Sql := 'alter tablespace HIS_DATA add datafile ''D:/ORACLE/PRODUCT/10.2.0/ORADATA/DBHOUSE/HIS_DATA' || Data_File_No || '.dbf'' size 5M autoextend on next 5m maxsize unlimited';
-----alter中的路径需要根据本地数据库的安装路径修改
Execute Immediate Vs_Sql;
End If;
End Temp_1;
Oracle(表空间) 数据文件自动增加
最新推荐文章于 2025-07-04 11:15:00 发布
该博客介绍了一个Oracle数据库的脚本,用于在表空间'HIS_DATA'中自动增加数据文件。当'HIS_DATA'表空间的空闲空间低于80%时,脚本会创建新的数据文件,大小为5M并自动扩展。脚本需先创建名为datafile_no的序列,并设定每天特定时间执行以确保在同步数据任务前完成。

1284

被折叠的 条评论
为什么被折叠?



