使用oracle procedure存储过程自动扩展表空间空间tablespace_自动化运维
引子:近期在某运营商客户运维数据库时,多次需要扩展可用空间不足的表空间,而我在具体操作时,需要消耗很多无谓时间,不停的重复同样的动作,极大消减了工作效率;试想如果通过自动化脚本实现,可以明显提升工...
·
引子:
近期在某运营商客户运维数据库时,多次需要扩展可用空间不足的表空间,而我在具体操作时,需要消耗很多无谓时间,不停的重复同样的动作,极大消减了工作效率;试想如果通过自动化脚本实现,可以明显提升工作热情,当然我这个脚本还只是雏形,请大家多指正与批评,需要不停的修正,方可满足生产环境的复杂因素。
结论:
1,还要考虑生产环境扩展表空间所用文件系统不同路径的复杂问题2,还要考虑并发控制此自动化运维脚本的复杂问题
3,还要考虑其它一些问题,比如要过滤不需要扩展的表空间,比如:针对RAC数据库,UNDO表空间以及SYSTEM和USER以及SYSAUX表空间
4,通过dbms_job或dbms_scheduler定期调度其自动化脚本,即可定期自动化扩展空间不足的表空间
具体实现:
1,存储过程代码
create or replace procedure proc_autoextend_tbs
as
log_file1 utl_file.file_type;
cursor cur_tbs is
SELECT
dfs.tablespace_name,
round(Dfs.Free_Space/Ddf.Total_Space,2)*100
from
(
SELECT
tablespace_name,
SUM(bytes/1024/1024/1024) total_space
FROM
dba_data_files
GROUP BY
tablespace_name
)
ddf,
(
SELECT
tablespace_name,
SUM(bytes/1024/1024/1024) free_space
FROM
dba_free_space
GROUP BY
tablespace_name
)
dfs
WHERE
dfs.tablespace_name=ddf.tablespace_name;
v_tbs v$datafile.name%type;
v_ratio number;
v_str varchar2(10);
begin
open cur_tbs;
loop
fetch cur_tbs into v_tbs,v_ratio;
exit when cur_tbs%notfound;
if v_ratio<=20 then
v_str:=dbms_random.string('a',4);
execute immediate 'alter tablespace '||v_tbs||' add datafile '||''''||'/oracle/oradata/guowang/'||v_str||'.dbf'||''''||' size 10m autoextend off';
dbms_output.put_line(v_tbs||' '||v_ratio||' free ratio is low,please add space');
log_file1:=utl_file.fopen('DIR_TBS','test_log.txt','a');
utl_file.new_line(log_file1,1);
utl_file.put(log_file1,'tablespace '||v_tbs||' already extend space');
utl_file.fclose(log_file1);
end if;
end loop;
close cur_tbs;
end;
/
2,执行存储过程
SQL> exec proc_autoextend_tbs;
SYSAUX 15 free ratio is low,please add space
USERS 16 free ratio is low,please add space
SYSTEM 1 free ratio is low,please add space
PL/SQL procedure successfully completed.
3,查看操作系统日志
[oracle@seconary tbs_dir]$ more test_log.txt
tablespace SYSAUX already extend space
tablespace USERS already extend space
tablespace SYSTEM already extend space
项目经验:
联系方式:
个人简介
8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
服务过的客户:
中国电信
中国移动
中国联通
中国电通
国家电网
四川达州商业银行
湖南老百姓大药房
山西省公安厅
中国邮政
北京302医院
河北廊坊新奥集团公司
项目经验:
中国电信3G项目AAA系统数据库部署及优化
中国联通4G数据库性能分析与优化
中国联通4G数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
联系方式:
手机:18201115468
qq : 305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900
itpub博客名称:wisdomone1 http://blog.itpub.net/9240380/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1786975/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-1786975/
更多推荐




所有评论(0)