ORACLE常用脚本

ORACLE常用脚本

在进行系统维护时,最好把监控/优化步骤以及优化过程中用到的技巧和SQL语句形成文档,供系统维护使用。

1.1   用户基本信息监控

1.   目前有多少用户在使用,其系统信息、用户名、机器名、运行的程序、状态等:

select sid,serial#,username,machine, status from v$session;

2.   如何把一个进程从系统中清除:

Alter system kill session ‘sid,serial#’;

3.   如何查询到操作系统上相关的进程号:

Select spid from v$process where addr =

(select paddr from v$session where sid=&sid and serial#=&serial);

4.   了解用户的基本信息,包括:用户名、默认表空间、临时表空间、创建时间等

Select username,default_tablespace,temporary_tablespace from dba_users;

1.2   监控用户锁信息

1.   查看当前有哪些锁信息,包括:哪些用户加了锁信息,锁住了哪些对象

Select * from v$lock where type in (‘TM’,’TX’);

2.   查看某个用户锁住了哪些表:

Select object_id,object_name from dba_objects

where object_id in (select id2 from v$lock where sid=&sid and type in (‘TM’,’TX’));

3.   查看哪个用户为主加锁的用户:

select *from v$locked_object where object_id=&object_id;

4.   通过v$lock来查看主加锁的用户信息:

select * from v$lock where  block !=0;

5.   查看等待他人锁释放的用户信息:

select sid,serial#,username from v$session where row_wait_obj# is not null;     

说明:在v$session中如果一个用户正在等待其他用户锁的释放,那么该记录上的row_wait_obj#为非空。如果想要得到进一步的记录信息,那么可以通过v$session中的row_wait_file#,row_wait_block#,row_wait_row#的相应的信息得到记录的rowid,再进一步通过dbms_rowid来得到对应的实际的数据值。

6.   检测系统中谁在锁表

set echo on

column username format a13

column object_name format a20

column MACHINE format a10

select

a.sid,b.serial#,a.type,c.object_name,b.username,a.lmode,b.machine,d.spid

from

v$lock a,v$session b,all_objects c,v$process d

where

a.sid=b.sid

and a.type in ('TM','TX')

and c.object_id=a.id1

and b.paddr=d.addr

order by username

1.3   表空间管理

1.   目前系统由哪些表空间构成、相应的状态:

select tablesapce_name,pct_increase,status from dba_tablespaces ;

2.   表空间由哪些数据文件构成,每个数据文件的实际组成、大小、块数目多少,以及数据文件的状态:

select tablesapce_name,file_name,bytes,blocks,status

from dba_data_files order by tablespace_name;

3.   查看每个表空间的大小和块的数目的多少:

select tablespace_name,sum(bytes),sum(blocks)

from dba_data_files where status=’ AVAILABLE’ group by tablespace_name ;

4.   查看数据库表空间的剩余信息情况、以及最大、最小的连续空间的情况:

select tablespace_name,sum(bytes),count(block_id),max(blocks),min(blocks)

from dba_free_space group by tablespace_name;

原文地址:https://www.cnblogs.com/geminichao/p/5673780.html