首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle维护常用脚本
【标  题】:Oracle维护常用脚本
【关键字】:Oracle
【来  源】:http://www.cublog.cn/u/21174/showart.php?id=188615

Oracle维护常用脚本

非常棒的oracle维护脚本。本人无意中看到。希望能和大家共享
 
 1.更改C:\oracle\ora92\sqlplus\admin\glogin.sql文件

为了sqlplus连到数据库时,显示实例名和主机名,可在glogin.sql文件中增加以下内容。

CODE:
set linesize 1000
COLUMN instance_name new_value gname
COLUMN host_name new_value hname

set termout off
select instance_name from v$instance;
select host_name from v$instance;
set sqlprompt '&gname@&hname>';
set termout on
 
2.conn.sql

CODE:
--SQL>@conn sys@sid
--如果在sqlplus中,执行connect,就只显示SQL>,不显示sid和hostname.
set verify off
set termout off
COLUMN instance_name new_value gname
COLUMN host_name new_value hname

connect &1 as sysdba;
select instance_name from v$instance;
select host_name from v$instance;
set sqlprompt '&gname@&hname>';

set termout on
set verify on
 
3.
wait.sql

CODE:
-- wait.sql
col event for a40
col p1text for a25
col p2text for a20
col p3text for a20

select * from v$session_wait
  where event not like 'SQL%'
  and event != 'lock manager wait for remote message'
  and event != 'rdbms ipc message'
  and event != 'pmon timer'
  and event != 'smon timer';

Oracle等待事件是衡量Oracle运行状况的重要依据和指标,分空闲等待事件和非空闲等待事件。空闲事件指Oracle正等待某种工作,在诊断和优化数据库的时候,可以不用过多注意这部分事件。'smon timer'、'pmon timer'、'rdbms ipc message'、'lock manager wait for remote message' 以及与’SQL’匹配的事件,就属于空闲事件。

视图v$session_wait提供最详细的底层信息,它是ORACLE所碰到的所有等待事件的直接记录,它的内容动态变化,可以看到在不同时刻关于不同会话的信息,而且在不同的时间点,它们的值也不尽相同,所以要想直观的查看数据库当前的等待状态,得多次刷新此视图。
 
4.sess.sql

CODE:
--sess.sql
--根据sid查询session
col sid_serial for a20
col username for a20
col osuser for a15
col machine for a30
col terminal for a30
col program for a40

select trim(''''||sid||','||serial#||'''') sid_serial,username,status,osuser,machine,terminal,program,sql_address,PREV_SQL_ADDR,LOGON_TIME,paddr
  from v$session
  where sid in (&sid);

这个脚本是为方便 alter system kill session 'sid,serial#' ;
的执行,而准备的。
 
5.lockwait.sql
 
CODE:
--lockwait.sql
--获取等待锁资源的用户进程信息
select * from v$lock where request>0;

通常在那种ERP的应用服务器和数据库服务器资源占用情况都不大,但用户反映速度慢的时候,多半就是发生了锁等待,这时候就应该找出造成锁等待的进程,并将它kill掉,就行了。
 
6.locksrc.sql

CODE:
--locksrc.sql
--获取造成锁等待的用户进程信息

select * from v$lock where block>0 and id1 in(select id1 from v$lock where request>0);
7.getsql.sql

CODE:
--getsql.sql
--通过sid,获取session正在执行的sql语句

SELECT sql_text  FROM v$sqltext
  WHERE address = (select sql_address from v$session where sid = &sid)
  ORDER BY piece;
pid2sid.sql

CODE:
--pid2sid.sql
--通过操作系统的pid查找sid

select * from v$session
where paddr=(select addr from v$process where spid=&spid);
 
sid2pid.sql
 
CODE:
--sid2pid.sql
--通过sid查找spid

select * from v$process
  where addr = (select paddr from v$session where sid = &sid);

linux下oracle的自启动脚本:【上一篇】
创建RMAN CATAGORY:【下一篇】
【相关文章】
  • linux下oracle的自启动脚本
  • Redhat-Linux-Enterprise-AS4-Up2上安装Oracle amd64_db_9204
  • ORACLE应用中常见的傻瓜问题1000问 (一)
  • ORACLE应用中常见的傻瓜问题1000问 (二)
  • ORACLE应用中常见的傻瓜问题1000问 (三)
  • oracle10g 首选项主机用户名的设置
  • Oracle关于时间/日期的操作
  • Oracle日期函数大礼包
  • oracle interval日期函数的bug!
  • ORACLE执行计划的一些基本概念
  • 【随机文章】
  • 初装ubuntu
  • 推荐:麻省理工学院“开放式课程网页”和莱斯大学“Connexions”
  • 用PS为美女安吉丽娜·朱丽上色(2)
  • WSAAsyncSelect() 模型
  • Oracle基本知识点总结一
  • Why I hate Web 2.0/AJAX? Here are some reasons...
  • (转)java连接oracle数据库的各种方法及java在数据库中的含义
  • 网页Flash代码相关【摘自蓝色经典论坛】
  • ASP的自定义实用函数表(1)
  • 0516-1008错误的处理过程-原创
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.