dm7自动添加表空间数据文件操作步骤

dm7自动添加表空间数据文件操作步骤

一、存储过程介绍
1、add_datafile(datafile_size int)介绍:
对于数据库自带系统表空间(‘SYSTEM’,‘ROLL’,‘TEMP’,‘MAIN’)之外的其他表空间进行修改或添加:
(1)修改条件为:对于单个数据文件大小小于datafile_size的,进行尺寸扩展,扩展为datafile_size M。
(2)添加条件为:对于表空间使用率大于百分之90的,添加一个非自动扩展的数据文件,大小由传入的datafile_size控制。

2、其他函数介绍:
SP_CREATE_JOB,SP_JOB_CONFIG_START,SP_ADD_JOB_STEP,SP_ADD_JOB_SCHEDULE,SP_JOB_CONFIG_COMMIT请参考附件《DM7作业系统使用手册》

二、登录SYSDBA用户执行如下sql
create or replace procedure add_datafile(datafile_size int)
as
sql_1 varchar2(1000);
sql_2 varchar2(1000);
begin
dbms_output.enable;
for i in (select name from v$tablespace where name not in (‘SYSTEM’,‘ROLL’,‘TEMP’,‘MAIN’)) loop
for j in (select file_name,tablespace_name,bytes / 1048576 TOTAL_M from DBA_DATA_FILES where tablespace_name = i.name and tablespace_name not in (‘SYSTEM’,‘ROLL’,‘TEMP’,‘MAIN’)) loop
if j.TOTAL_M < datafile_size then
sql_2 := ‘alter tablespace ‘||i.name||’ resize datafile ‘’’||j.file_name||’’’ to ‘||datafile_size;
dbms_output.put_line(sql_2);
execute immediate sql_2;
end if;
end loop;
for z in (SELECT a.tablespace_name TABLESPACE_NAME,ROUND((total - free) / total, 4) * 100 “USED%” FROM (SELECT tablespace_name, SUM(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name) a,(SELECT tablespace_name,SUM(bytes) total,max(autoextensible) autoextensible FROM DBA_DATA_FILES GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name and a.tablespace_name =i.name) loop
if z.“USED%” >= 0.9 then
sql_1 := ‘alter tablespace ‘||i.name||’ add datafile ‘’’||i.name||’_’||sys_guid()||’.dbf’’ size ‘||datafile_size||’ autoextend off’;
dbms_output.put_line(sql_1);
execute immediate sql_1;
end if;
end loop;
end loop;
end;
/

call SP_CREATE_JOB(‘test’,1,0,’’,0,0,’’,0,’’);

call SP_JOB_CONFIG_START(‘test’);

call SP_ADD_JOB_STEP(‘test’, ‘test_add’, 0, ‘call add_datafile(1024);’, 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE(‘test’, ‘test_add_tbs’, 1, 2, 1, 127, 0, ‘11:05:31’, NULL, ‘2020-03-02 11:02:31’, NULL, ‘’);

call SP_JOB_CONFIG_COMMIT(‘test’);

三、测试截图
1、语句截图
dm7自动添加表空间数据文件操作步骤
dm7自动添加表空间数据文件操作步骤

2、通过select * from vtablespaceselectfromvtablespace,select * from vdatafile;验证;
dm7自动添加表空间数据文件操作步骤
dm7自动添加表空间数据文件操作步骤

3、通过管理作业模块验证

管理工具》代理》作业》查看作业历史信息
dm7自动添加表空间数据文件操作步骤