- 锁表处理
a) 查询锁表【单库】
SELECT SESS.SID,
SESS.SERIAL#,
LO.ORACLE_USERNAME,
LO.OS_USER_NAME,
AO.OBJECT_NAME,
Q LO.LOCKED_MODE
FROM V$LOCKED_OBJECT LO, DBA_OBJECTS AO, V$SESSION SESS
WHERE AO.OBJECT_ID = LO.OBJECT_ID
AND LO.SESSION_ID = SESS.SID;
或者
SELECT l.session_id sid,
s.serial#,
l.locked_mode 锁模式,
l.oracle_username 登录用户,
l.os_user_name 登录机器用户名,
s.machine 机器名,
s.terminal 终端用户名,
o.object_name 被锁对象名,
s.logon_time 登录数据库时间
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial#;
b) 查询锁表【RAC集群】
SELECT OBJECT_NAME,
MACHINE,
'alter system kill session ' || '''' || S.SID || ',' || S.SERIAL# ||
''';'
FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S
WHERE L.OBJECT_ID = O.OBJECT_ID
AND L.SESSION_ID = S.SID;
c) 杀死
alter system kill session 'sid,SERIAL#';
将以上查询的sid,SERIAL#替换到以上语句中执行即可,值得注意的是,在RAC环境下,如果在一台节点上执行后,还是锁表,请在所有节点上执行杀死语句即可。
- 追加数据文件到表空间
alter tablespace TS_STAT_IDX add datafile '+DATA2' size 100M autoextend on next 100M maxsize UNLIMITED;
注意【DATA2】为ASM组,当为RAC环境时,不需要指定具体的数据文件路径,让环境自行创建。
- ASM磁盘组空间查询
select name,total_mb,free_mb,(free_mb/total_mb)*100 as usage from v$asm_diskgroup;
- 删除表空间文件
drop tablespace niptest including contents and datafiles;
注意:执行上语句时,请先行删除表。
- 正在执行的sql语句及执行该语句的用户
SELECT b.sid oracleID,
b.username 登录Oracle用户名,
b.serial#,
spid 操作系统ID,
paddr,
sql_text 正在执行的SQL,
b.machine 计算机名
FROM v$process a, v$session b, v$sqlarea c
WHERE a.addr = b.paddr
AND b.sql_hash_value = c.hash_value
- 正在执行sql的客户端程序、SQL以及耗时
SELECT OSUSER 电脑登录身份,
PROGRAM 发起请求的程序,
USERNAME 登录系统的用户名,
SCHEMANAME,
B.Cpu_Time 花费cpu的时间,
STATUS,
B.SQL_TEXT 执行的sql
FROM V$SESSION A
LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS
AND A.SQL_HASH_VALUE = B.HASH_VALUE
ORDER BY b.cpu_time DESC
- 当前连接数查询
select username,count(username) from v$session where username is not null group by username;