动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.sendmail出现“MX list for host.
.Oracle诊断案例3-Spfile案例.
.Oracle索引原理.
.可预见的Oracle应用程序性能调优.
.关于使用RMAN进行clone数据库一.
.Linux与Linux之间的互拔.
.Oracle rac安装过程详解(六).
.Oracle 互联网文件系统-无界限的.
.Oracle 数据库 10g 产品系列 (PD.
.如何用vmware搭建cluster环境,li.
.Oracle FAQ 之SQL&PL/SQL篇.
.[基础]9i新特性之五闪回查询.
.解读Oracle 9201的控制文件 (二.
.查看视图中哪里字段是允许更新的.
.SAP称甲骨文收购是在搅浑水 巨头.
.ASP 中通过OLEDB访问 Oracle 的代.
.新手上路:Oracle分析函数学习笔记.
.24×7环境转移ORACLE数据库.
.研究生管理信息系统的开发流程.
.神秘的 ORACLE DUAL.

如何自动获取Oracle数据库启动时在Shared pool里面的对象

发表日期:2008-2-9 |



  主题:本文说明在数据库启动的时候,如何自动获取Shared Pool里最常用的过程和包等对象。
  
  正文: 下面用实例来演示Startup之后和Shutdown之前,如何用Triger来完成自动治理的任务。
  
  1.创建一个供Triger调用的Procedure
  
  a.创建一个用来保存Procedure和Package的名称的Table(list_tab)
  
  SQL>create table sys.list_tab (owner varchar2(64),NAME VARCHAR2(100));
  
  Table created.
  
  b.创建一个Procedure(proc_pkgs_list)来保存Shared Pool里面的对象名
  
  SQL> create or replace PROCEDURE proc_pkgs_list AS
  
  2     own varchar2(64);
  
  3     nam varchar2(100);
  
  4   cursor pkgs is
  
  5     select owner,name
  
  6     from SYS.v_$db_object_cache
  
  7     where type in ('PACKAGE','PROCEDURE')
  
  8     and  (loads > 1 or KEPT='YES');
  
  9 BEGIN
  
  10    delete from sys.list_tab;
  
  11    commit;
  
  12     open pkgs;
  
  13     loop
  
  14     fetch pkgs into own, nam;
  
  15     exit when pkgs%notfound;
  
  16    insert into sys.list_tab values (own , nam);
  
  17  commit;
  
  18  end loop;
  
  19       end;
  
  20       /
  
  Procedure created.
  
  c.创建Procedure(proc_pkgs_keep)用来保存调用dbms_shared_pool包的结果(注:假如没有dbms_shared_pool包,可以用dbmspool.sql脚本生成)
  
  SQL> CREATE OR REPLACE PROCEDURE sys.proc_pkgs_keep AS
  
  2  own varchar2(64);
  
  3  nam varchar2(100);
  
  4  cursor pkgs is
  
  5  select owner ,name
  
  6  from sys.list_tab;
  
  7 BEGIN
  
  8  open pkgs;
  
  9  loop
  
  10  fetch pkgs into own, nam;
  
  11  exit when pkgs%notfound;
  
  12  SYS.dbms_shared_pool.keep('' own '.' nam '');
  
  13  end loop;
  
  14  sys.dbms_shared_pool.keep('SYS.STANDARD');
  
  15  sys.dbms_shared_pool.keep('SYS.DIUTIL');
  
  16 END;
  
  17 /
  
  Procedure created.
  
  2.编译、测试Procedure
  
  SQL> execute sys.proc_pkgs_list;
  
  PL/SQL procedure sUCcessfully completed.
  
  SQL> execute sys.proc_pkgs_keep;
  
  PL/SQL procedure successfully completed.
  
  3.创建Triger
  
  a. 在Instance shutdown之前的triger
  
  SQL> CREATE OR REPLACE TRIGGER db_shutdown_list
  
  2  BEFORE SHUTDOWN ON DATABASE
  
  3 BEGIN
  
  4  sys.proc_pkgs_list;
  
  5 END;
  
  6 /
  
  Trigger created.
  
  b. 在Instance startup之后的triger
  
  SQL> CREATE OR REPLACE TRIGGER db_startup_keep
  
  2  AFTER STARTUP ON DATABASE
  
  3 BEGIN
  
  4  sys.proc_pkgs_keep;
  
  5 END;
  
  6 /
  
  Trigger created.
  
  检查alter.log文件,查看Triger是否成功。
假如不成功,则在数据库关闭或者启动的时候会看到如下提示*** SHUTDOWN
  
  Shutting down instance (immediate)
  
  License high water mark = 2
  
  Mon May 22 12:31:45 2000
  
  ALTER DATABASE CLOSE NORMAL
  
  Mon May 22 12:31:45 2000
  
  SMON: disabling tx recovery
  
  Mon May 22 12:31:46 2000
  
  Errors in file /8i/ora815/admin/hp11_815/udump/ora_12624.trc:
  
  ORA-04098: trigger 'DB_SHUTDOWN_LIST' is invalid and failed re-validation
  
  SMON: disabling cache recovery
  
  Mon May 22 12:31:47 2000
  
  Thread 1 closed at log sequence 16579
  
  Mon May 22 12:31:47 2000
  
  Completed: ALTER DATABASE CLOSE NORMAL
  
  Mon May 22 12:31:47 2000
  
  ALTER DATABASE DISMOUNT
  
  Completed: ALTER DATABASE DISMOUNT
  
  *** STARTUP
  
  Example 1:
  
  Starting Oracle instance (normal)
  
  LICENSE_MAX_SESSION = 0
  
  ...
  
  SMON: enabling tx recovery
  
  Tue Apr 18 10:21:38 2000
  
  Errors in file /8i/ora815/admin/hp11_815/udump/ora_7291.trc:
  
  ORA-04098: trigger 'DB_STARTUP_KEEP' is invalid and failed re-valid
  
  ation
  
  Tue Apr 18 10:21:38 2000
  
  Completed: alter database open
  
  Tue Apr 18 10:21:30 2000
  
  Starting ORACLE instance (normal)
  
  LICENSE_MAX_SESSION = 0
  
  Example 2:
  
  SMON: enabling tx recovery
  
  Tue Apr 18 11:12:41 2000
  
  Errors in file /8i/ora815/admin/hp11_815/udump/ora_7562.trc:
  
  ORA-00604: error occurred at recursive SQL level 1
  
  ORA-00931: missing identifier
  
  ORA-06512: at "SYS.DBMS_UTILITY", line 68
  
  ORA-06512: at "SYS.DBMS_SHARED_POOL", line 43
  
  ORA-06512: at "SYS.DBMS_SHARED_POOL", line 51
  
  ORA-06512: at "SYS.PROC_PKGS_KEEP", line 13
  
  ORA-06512: at line 2
  
  Tue Apr 18 11:12:41 2000
  
  Completed: alter database open
  
  In the /8i/ora815/admin/hp11_815/udump/ora_7562.trc file:
  
  Error in executing triggers on STARTUP
  
  *** 2000.04.18.11.12.41.052
  
  ksedmp: internal or fatal error
  
  ORA-00604: error occurred at recursive SQL level 1
  
  ORA-00931: missing identifier
  
  ORA-06512: at "SYS.DBMS_UTILITY", line 68
  
  ORA-06512: at "SYS.DBMS_SHARED_POOL", line 43
  
  ORA-06512: at "SYS.DBMS_SHARED_POOL", line 51
  
  ORA-06512: at "SYS.PROC_PKGS_KEEP", line 13
  
  ORA-06512: at line 2
  
  以上Procedure和Triger必须在sys的模式下执行,并且保证表list_tab的存在。
上一篇:Oracle 10g诊断 缺少MMNL 人气:380
下一篇:LINUX+ORACLE安装和优化注意事项 人气:1009
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵