知识大全 如何自动获取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相关参考
以redhat和oracleg为例安装过程参考官方文档以下是实现oracle自启动的方法 配置dbstart和dbshut 在$ORACLE_HOME/bin中有dbstart和dbshut这
在Oracle10g里启动自动归档模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在Oracle
Oracle数据获取方式测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先建立实验环境
linux下Oracle自动启动与停止 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!修改Oracl
讲解linux环境下Oracle的自动启动与停止 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Oracle数据字典(可用它动态获取字段名、长度、类型等)
Oracle数据字典(可用它动态获取字段名、长度、类型等) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
一启动 三个命令 sqlplux/nolog connect/assysdba startup 二关闭 shutdownimmediate; [oracle@zhao~]$sqlpl
Oracle数据库的启动与关闭方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章主要介绍了
改host导致Oracle数据库启动不了 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL&
知识大全 Oracle数据库的启动-nomount状态深入解析
Oracle数据库的启动-nomount状态深入解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!