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

Posted 数据库

篇首语:要须心地收汗马,孔孟行世目杲杲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何自动获取Oracle数据库启动时在Shared pool里面的对象相关的知识,希望对你有一定的参考价值。

如何自动获取Oracle数据库启动时在Shared pool里面的对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  主题 本文说明在数据库启动的时候 如何自动获取Shared Pool里最常用的过程和包等对象     正文  下面用实例来演示Startup之后和Shutdown之前 如何用Triger来完成自动管理的任务      创建一个供Triger调用的Procedure    a.创建一个用来保存Procedure和Package的名称的Table(list_tab)    SQL>create table sys list_tab (owner varchar ( ) NAME VARCHAR ( ));    Table created     b 创建一个Procedure(proc_pkgs_list)来保存Shared Pool里面的对象名    SQL> create or replace PROCEDURE proc_pkgs_list AS          own varchar ( );          nam varchar ( );        cursor pkgs is          select owner name          from SYS v_$db_object_cache          where type in ( PACKAGE PROCEDURE )          and  (loads > or KEPT= YES );      BEGIN         delete from sys list_tab;         mit;          open pkgs;          loop          fetch pkgs into own nam;          exit when pkgs%notfound;         insert into sys list_tab values (own nam);       mit;       end loop;            end;            /    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       own varchar ( );       nam varchar ( );       cursor pkgs is       select owner name       from sys list_tab;      BEGIN       open pkgs;       loop       fetch pkgs into own nam;       exit when pkgs%notfound;       SYS dbms_shared_pool keep( || own || || nam || );       end loop;       sys dbms_shared_pool keep( SYS STANDARD );       sys dbms_shared_pool keep( SYS DIUTIL );      END;      /    Procedure created      .编译 测试Procedure    SQL> execute sys proc_pkgs_list;    PL/SQL procedure successfully pleted     SQL> execute sys proc_pkgs_keep;    PL/SQL procedure successfully pleted      .创建Triger    a. 在Instance shutdown之前的triger    SQL> CREATE OR REPLACE TRIGGER db_shutdown_list       BEFORE SHUTDOWN ON DATABASE      BEGIN       sys proc_pkgs_list;      END;      /    Trigger created     b. 在Instance startup之后的triger    SQL> CREATE OR REPLACE TRIGGER db_startup_keep       AFTER STARTUP ON DATABASE      BEGIN       sys proc_pkgs_keep;      END;      /    Trigger created     检查alter log文件 查看Triger是否成功 如果不成功 则在数据库关闭或者启动的时候会看到如下提示*** SHUTDOWN    Shutting down instance (immediate)    License high water mark =     Mon May : :     ALTER DATABASE CLOSE NORMAL    Mon May : :     SMON: disabling tx recovery    Mon May : :     Errors in file / i/ora /admin/hp _ /udump/ora_ trc:    ORA : trigger DB_SHUTDOWN_LIST is invalid and failed re validation    SMON: disabling cache recovery    Mon May : :     Thread closed at log sequence     Mon May : :     Completed: ALTER DATABASE CLOSE NORMAL    Mon May : :     ALTER DATABASE DISMOUNT    Completed: ALTER DATABASE DISMOUNT    *** STARTUP    Example :    Starting ORACLE instance (normal)    LICENSE_MAX_SESSION =          SMON: enabling tx recovery    Tue Apr : :     Errors in file / i/ora /admin/hp _ /udump/ora_ trc:    ORA : trigger DB_STARTUP_KEEP is invalid and failed re valid    ation    Tue Apr : :     Completed: alter database open    Tue Apr : :     Starting ORACLE instance (normal)    LICENSE_MAX_SESSION =     Example :    SMON: enabling tx recovery    Tue Apr : :     Errors in file / i/ora /admin/hp _ /udump/ora_ trc:    ORA : error occurred at recursive SQL level     ORA : missing identifier    ORA : at SYS DBMS_UTILITY line     ORA : at SYS DBMS_SHARED_POOL line     ORA : at SYS DBMS_SHARED_POOL line     ORA : at SYS PROC_PKGS_KEEP line     ORA : at line     Tue Apr : :     Completed: alter database open    In the / i/ora /admin/hp _ /udump/ora_ trc file:    Error in executing triggers on STARTUP    ***     ksedmp: internal or fatal error    ORA : error occurred at recursive SQL level     ORA : missing identifier    ORA : at SYS DBMS_UTILITY line     ORA : at SYS DBMS_SHARED_POOL line     ORA : at SYS DBMS_SHARED_POOL line     ORA : at SYS PROC_PKGS_KEEP line     ORA : at line     以上Procedure和Triger必须在sys的模式下执行 并且保证表list_tab的存在 cha138/Article/program/Oracle/201311/17326

相关参考

知识大全 oracle开机自动启动方法

  以redhat和oracleg为例安装过程参考官方文档以下是实现oracle自启动的方法  配置dbstart和dbshut  在$ORACLE_HOME/bin中有dbstart和dbshut这

知识大全 在Oracle10g里启动自动归档模式

在Oracle10g里启动自动归档模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在Oracle

知识大全 Oracle数据获取方式测试

Oracle数据获取方式测试  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先建立实验环境  

知识大全 linux下Oracle自动启动与停止

linux下Oracle自动启动与停止  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!修改Oracl

知识大全 讲解linux环境下Oracle的自动启动与停止

讲解linux环境下Oracle的自动启动与停止  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Oracle数据字典(可用它动态获取字段名、长度、类型等)

Oracle数据字典(可用它动态获取字段名、长度、类型等)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 linux下oracle数据库的启动和关闭

  一启动  三个命令  sqlplux/nolog  connect/assysdba  startup  二关闭  shutdownimmediate;  [oracle@zhao~]$sqlpl

知识大全 Oracle数据库的启动与关闭方法

Oracle数据库的启动与关闭方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章主要介绍了

知识大全 改host导致Oracle数据库启动不了

改host导致Oracle数据库启动不了  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL&

知识大全 Oracle数据库的启动-nomount状态深入解析

Oracle数据库的启动-nomount状态深入解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!