• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
如何自动获取Oracle数据库启动时在Shared
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
如何自动获取Oracle数据库启动时在Shared pool里面的对象
软件发布 如何自动获取Oracle数据库启动时在Shared pool里面的对象
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> 如何自动获取Oracle数据库启动时在Shared pool里面的对象

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

添加时间: 2008-4-19 22:50:00  作者: Oracle指导  阅读次数:12   来源: http://www.d9soft.com

       

     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的存在。

 

上下文章:

 

上一篇文章: CCNA中文笔记-Internet Protocols 下一篇文章: CCNA中文笔记-EIGRP and OSPF

相关文章:

  • 教你如何用零框架技术加密网页
  • PS教程:看看如何用Photoshop把照片演变成水墨画
  • Photoshop教程:教你如何创出发丝的炫彩莹亮效果
  • 魔兽世界:如何更大限度的利用奥冲循环
  • 教你如何用PhotoImpact 来制作逼真的温度计

相关软件:

  • HurryRun(急速启动) V1.5.0 绿色版
  • 哑巴鼠标自动点击器 V2.3
  • 硬盘分区C的备份还原系统光盘 简易中文全自动GHOST V7.11
  • FoxMail新邮件提示栏自动消隐增强 V1.0.1.5
  • Access数据库密码破解器 V2.65
  • dbguide 数据库管理专家 V1.3.0.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件
  • 案例学习Oracle错误:ORA-00604
  • 案例学习Oracle错误:ORA-00060

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • Oracle企业管理器(OEM 2.1)使用...
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • AIX下自动启动Oracle数据库与监听...
  • 如何取出某一用户的密码 再原样改...
  • 实例:Oracle导出EXCEL文件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有