自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

空空如也

oracle 视图,函数,过程,触发器自动编译脚本

日常管理维护一个oracle数据库服务器的时,经常会碰到修改view,table结构的情况,而且由于oracle view,函数,存储过程等对象的相互关联的关系,经常会由于一个view,table,fun,proc的修改而导致相关的对象失效。而实施的时候,经常只会注意要修改的对象是否修改完成,往往忽略相关对象的失效问题,所以做了一个自动重新编译的脚本程序,目的是定期(10分钟)完成一次对所有对象的检查,如果有失效对象,则对其进行重新编译。 机制是:基于linux的crontab,定期执行下述脚本,对失效的对象,执行alter object_type object_name compile;语句,达到重新编译。 如果扩展该脚本,可以完成对失效的对象进行告警等管理的需要。 该脚本运行于oracle9i,linux 环境下面 #!/bin/sh nowdir=`pwd` #配置文件的生成日期 nowtime=`date '+%Y%m%d'` nowtime_h=`date '+%Y%m%d%H%M'` #脚本执行的目录 dmpdir=/oracle_script/auto_recompile #初始化参数 cd #执行oracle 相关的环境变量, . .bash_profile cd $dmpdir #下面取出失效的对象('TRIGGER','PROCEDURE','FUNCTION','VIEW), #并且去掉系统的对象,只针对用户自己部署的。 #如果有失效对象则完成alter sql语句。 rm -rf param.temp $ORACLE_HOME/bin/sqlplus -SILENT "/ as sysdba" <<eof set pagesize 1000 set linesize 100 set heading off set feedback off column table_name format a30 spool param.temp select 'alter '||a.object_type||' '||a.owner||'.'||a.object_name ||' compile;' from dba_objects a where a.object_type in('TRIGGER','PROCEDURE','FUNCTION','VIEW') and a.status='INVALID' and a.owner not in ('SYS' ,'SYSTEM','OUTLN','U_SYSTEM'); spool off exit; eof # Start to backup oracle database param echo "-------------- Complete obj compile Started on `date` -------------" >>$dmpdir/do.log dofilelog="obj_compile"$nowtime_h'.log' $ORACLE_HOME/bin/sqlplus -SILENT "/ as sysdba" <<eof SET serveroutput on long 999999 set pagesize 0 set linesize 300 spool $dofilelog @param.temp spool off exit; eof cat param.temp >> $dofilelog echo "-------------- Complete export End on `date` -------------" >>$dmpdir/do.log

2008-10-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除