life without tools: monitoring database activity with the power of sql ari kaplan independent...
TRANSCRIPT
Life Without Life Without Tools: Monitoring Tools: Monitoring
Database Database Activity With The Activity With The
Power Of SQLPower Of SQLAri KaplanAri Kaplan
Independent ConsultantIndependent Consultant
Topic Overview Which users are logged on to the database?Which users are logged on to the database?
What SQL statement is a particular user accountWhat SQL statement is a particular user account
executing?executing?
Setting up an interactive script for viewing users and SQLSetting up an interactive script for viewing users and SQL
What is my What is my datafile datafile activity like?activity like?
Which rollback segments are being used by which userWhich rollback segments are being used by which user
accounts?accounts?
What has the largest number of concurrent users been?What has the largest number of concurrent users been?
Which locks are being held?Which locks are being held?
Which users have hogged up the most CPU usage?Which users have hogged up the most CPU usage?
What is the archiving status of the database?What is the archiving status of the database?
Quick Overview of Typical Quick Overview of Typical Monitoring ViewsMonitoring Views
DDaattaa DDiiccttiioonnaarryy VViieeww WWhhaatt II tt SShhoowwss
DDBBAA__FFRREEEE__SSPPAACCEE FFrreeee cchhuunnkkss ooff ttaabblleessppaaccee
DDBBAA__DDAATTAA__FFIILLEESS DDaattaa FFiillee llooccaattiioonn aanndd ssiizzeess
VV$$FFIILLEESSTTAATT RReeaaddss//WWrriitteess ttoo ddaattaaffiilleess
VV$$SSGGAASSTTAATT DDeettaaiilleedd sshhaarreedd ppooooll iinnffoorrmmaattiioonn ((ffrreeee mmeemmoorryy,, eettcc))
VV$$RROOLLLLSSTTAATT RRoollllbbaacckk SSeeggmmeenntt IInnffoorrmmaattiioonn ((sshhrriinnkkss,, ooppttiimmaall ssiizzee,, ……))
VV$$SSEESSSSIIOONN IInnffoorrmmaattiioonn oonn ccoonnnneeccttiioonnss
VV$$SSYYSSSSTTAATT 220000 ssyysstteemm--wwiiddee ssttaattiissttiiccss
VV$$PPAARRAAMMEETTEERR IInniittiiaalliizzaattiioonn ppaarraammeetteerr sseettttiinnggss
VV$$LLOOCCKK LLoocckkss wwiitthhiinn tthhee ddaattaabbaassee
DDBBAA__SSEEGGMMEENNTTSS SSeeggmmeennttss aanndd hhooww mmaannyy eexxtteennttss,, nneexxtt eexxtteenntt
Who Is Logged On?Who Is Logged On?
The V$SESSION view contains The V$SESSION view contains information on all active information on all active sessions:sessions:
SELECTSELECT sid, schemaname, osuser sid, schemaname, osuser substr(machine,1,20) Machine substr(machine,1,20) MachineFROMFROM v$session v$sessionORDER BYORDER BY schemaname; schemaname;
A sample output from the above SQL follows:A sample output from the above SQL follows:
SIDSID SCHEMANAMESCHEMANAME OSUSEROSUSER MACHINEMACHINE
11 SYSSYS
22 SYSSYS
33 SYSSYS
44 SYSSYS
77 SYSTEMSYSTEM platplat headqheadq
1313 SYSTEMSYSTEM oracleoracle headqheadq
66 WWW_DBAWWW_DBA oracleoracleuk_officeuk_office
1414 WWW_DBAWWW_DBA oracleoracleuk_officeuk_office
1212 PRODMANPRODMAN mr_bossmr_boss ny_officeny_office
Who Is Logged On?Who Is Logged On?SELECT sid, schemaname, osuser, substr(machine,1,20) MachineFROM v$sessionORDER BY schemaname;
What SQL Statement Is A What SQL Statement Is A Particular User Account Particular User Account
Executing?Executing?SELECTSELECT sql_text sql_textFROMFROM v$sqlarea v$sqlareaWHEREWHERE (address, hash_value) (address, hash_value) ININ
((SELECTSELECT sql_address, sql_address, sql_hash_value sql_hash_value FROMFROM v$session v$session WHEREWHERE sid = &sid_number); sid = &sid_number);
A sample output from the above SQL A sample output from the above SQL
follows:follows:
Enter value for sid_numberEnter value for sid_number: : 1717
old 1: WHERE SID = &sid_numberold 1: WHERE SID = &sid_number
new 1: WHERE USERNAME = 17new 1: WHERE USERNAME = 17
SQL_TEXTSQL_TEXT
Update EMP set first_name = ‘Ari’ where Update EMP set first_name = ‘Ari’ where first_name = ‘Arie’;first_name = ‘Arie’;
What SQL Statement Is A Particular User What SQL Statement Is A Particular User Account Executing?Account Executing?
SELECTSELECT sql_text sql_textFROMFROM v$sqlarea v$sqlareaWHEREWHERE (address, hash_value) (address, hash_value) ININ
((SELECTSELECT sql_address, sql_address, sql_hash_value sql_hash_value FROMFROM v$session v$session WHEREWHERE sid = &sid_number); sid = &sid_number);
UNIX Script “SQL_RUN”UNIX Script “SQL_RUN”UNIX Script “SQL_RUN”UNIX Script “SQL_RUN”
SELECTSELECT sid, schemaname, osuser, sid, schemaname, osuser, substr(machine,1,20) Machine substr(machine,1,20) Machine FROMFROM v$session v$session ORDER BYORDER BY schemaname; schemaname;
SELECTSELECT sid, schemaname, osuser, sid, schemaname, osuser, substr(machine,1,20) Machine substr(machine,1,20) Machine FROMFROM v$session v$session ORDER BYORDER BY schemaname; schemaname;
Setting Up An Interactive Script For Setting Up An Interactive Script For Viewing Users And SQLViewing Users And SQL
SQL Script “SQL1.SQL”SQL Script “SQL1.SQL”SQL Script “SQL1.SQL”SQL Script “SQL1.SQL”SELECTSELECT sql_text sql_textFROMFROM v$sqlarea v$sqlareaWHEREWHERE (address, hash_value) (address, hash_value) ININ
((SELECTSELECT sql_address, sql_address,sql_hash_valuesql_hash_value
FROMFROM v$session v$sessionWHEREWHERE sid= sid_number; sid= sid_number;
SELECTSELECT sql_text sql_textFROMFROM v$sqlarea v$sqlareaWHEREWHERE (address, hash_value) (address, hash_value) ININ
((SELECTSELECT sql_address, sql_address,sql_hash_valuesql_hash_value
FROMFROM v$session v$sessionWHEREWHERE sid= sid_number; sid= sid_number;
SQL Script “SQL2.SQL”SQL Script “SQL2.SQL”SQL Script “SQL2.SQL”SQL Script “SQL2.SQL”
Who is logged in to the database?
What SQL is used?
echo “Enter the database to connect to:”read DATABASEecho “Enter the password for the SYSTEM user:”stty -echoecho “Password:\c”read PASSWDstty echoecho “”sqlplus system/$PASSWD\@DATABASE << EOF
@sql1.sqlEOF
echo “Enter the database to connect to:”read DATABASEecho “Enter the password for the SYSTEM user:”stty -echoecho “Password:\c”read PASSWDstty echoecho “”sqlplus system/$PASSWD\@DATABASE << EOF
@sql1.sqlEOF
echo “Enter the SID for which SQL you wish to see:”read SID_NUMsqlplus system/$PASSWD@DATABASE << EOF
select sql_text from v$sqlareawhere (address, hash_value) in(select sql_addresss, sql_hash_valuefrom v$sessionWHERE sid = $SID_NUM)/EOF
echo “Enter the SID for which SQL you wish to see:”read SID_NUMsqlplus system/$PASSWD@DATABASE << EOF
select sql_text from v$sqlareawhere (address, hash_value) in(select sql_addresss, sql_hash_valuefrom v$sessionWHERE sid = $SID_NUM)/EOF
SELECTSELECT file_name, phyrds, phywrts, file_name, phyrds, phywrts, decode(phyrds,0,0,phyblkrd/phyrds) “Blocks/Read” decode(phyrds,0,0,phyblkrd/phyrds) “Blocks/Read” decode(phywrts,0,0,phyblkwrt/phywrts) “Blocks/Write” decode(phywrts,0,0,phyblkwrt/phywrts) “Blocks/Write”FROMFROM dba_data_files, v$filestat dba_data_files, v$filestatWHERE WHERE dba_data_files.file_id=v$filestat.file#dba_data_files.file_id=v$filestat.file#;;
FILE_NAME FILE_NAME PHYRDSPHYRDS PHYWRTSPHYWRTS BLOCKS/READBLOCKS/READ BLOCKS/WRITEBLOCKS/WRITE/u01/oradata/PRODDB/system01.dbf 10243 3478 4.928 1/u01/oradata/PRODDB/system01.dbf 10243 3478 4.928 1/u02/oradata/PRODDB/rbs01.dbf 1759 49649 1 1/u02/oradata/PRODDB/rbs01.dbf 1759 49649 1 1/u03/oradata/PRODDB/temp01.dbf 0 0 0 0/u03/oradata/PRODDB/temp01.dbf 0 0 0 0/u04/oradata/PRODDB/tools01.dbf 0 0 0 0/u04/oradata/PRODDB/tools01.dbf 0 0 0 0/u05/oradata/PRODDB/ctxdata01.dbf 187293 15846 1.959 1/u05/oradata/PRODDB/ctxdata01.dbf 187293 15846 1.959 1/u05/oradata/PRODDB/ctxdata02.dbf 455377 397 4 14. 258 1/u05/oradata/PRODDB/ctxdata02.dbf 455377 397 4 14. 258 1/u05/oradata/PRODDB/ctxindex01.dbf 332860 616291 1.248 1/u05/oradata/PRODDB/ctxindex01.dbf 332860 616291 1.248 1/u02/oradata/PRODDB/rbs02.dbf 91528 11593 6.130 1/u02/oradata/PRODDB/rbs02.dbf 91528 11593 6.130 1
What is my datafile activity like?What is my datafile activity like?
Which Rollback Segments Are Which Rollback Segments Are Being Used By Which User Being Used By Which User
Accounts?Accounts? “SET TRANSACTION USE ROLLBACK SEGMENT
rollback_segment_name” specifies a rollback segment to use. This is issued first, or immediately after COMMIT or ROLLBACK.
Use V$ROLLSTAT and V$ROLLNAME to get general rollback segment activity
Link V$ROLLNAME with V$LOCK and V$SESSION to determine which users are using which rollback segments.
More information on the users can be collected by further joining with the V$PROCESS view.
Which Rollback Segments Are Which Rollback Segments Are Being Used By Which User Being Used By Which User
Accounts?Accounts? When a user is doing rollback activity, Oracle creates
a latch (lock of type “TX”) on an extent of a rollback segment.
The USN (Unique Serial Number) of V$ROLLNAME links with V$LOCK’s ID1 column. The ID1 column contains the object id of the object (rollback segment) being locked.
The V$LOCK view contains a SID column which links to the SID column of V$SESSION.
The V$SESSION view links to the V$PROCESS view via the PADDR column.
NAMENAMEUSNUSNNAMENAMEUSNUSN
Which Rollback Segments Are Which Rollback Segments Are Being Used By Which User Being Used By Which User
Accounts?Accounts?
V$ROLLNAMEV$ROLLNAMEV$ROLLNAMEV$ROLLNAME
ID1ID1SIDSIDTYPETYPELMODELMODE
ID1ID1SIDSIDTYPETYPELMODELMODE
V$LOCKV$LOCKV$LOCKV$LOCK
SIDSIDPADDRPADDRSIDSIDPADDRPADDR
V$SESSIONV$SESSIONV$SESSIONV$SESSIONADDRADDRPIDPIDSPIDSPIDUSERNAMEUSERNAMETERMINALTERMINAL
ADDRADDRPIDPIDSPIDSPIDUSERNAMEUSERNAMETERMINALTERMINAL
V$PROCESSV$PROCESSV$PROCESSV$PROCESS
NOTE: Only relevant columns are listed with tablesNOTE: Only relevant columns are listed with tables
echo “Enter the password for the SYSTEM user:”echo “Enter the password for the SYSTEM user:”read PASSWDread PASSWDsqlplus system/$PASSWD << EOFsqlplus system/$PASSWD << EOFspool temp.lstspool temp.lstset head offset head offset pagesize 0set pagesize 0connect system\$PASSWD@DBNAMEconnect system\$PASSWD@DBNAME
SELECTSELECT to_char(rownum+3)||’) ‘||rpad(r.name,17)||rpad(to_char(p.pid),11) || to_char(rownum+3)||’) ‘||rpad(r.name,17)||rpad(to_char(p.pid),11) || rpad(s.sid,6)|| rpad(p.spid,11) || rpad(nvl(p.username,’NO TRANSACTION’),17) || rpad(s.sid,6)|| rpad(p.spid,11) || rpad(nvl(p.username,’NO TRANSACTION’),17) || rpad(p.terminal,8) rpad(p.terminal,8)FROMFROM v\$lock l, v\$process p, v\$rollname r, v\$session s v\$lock l, v\$process p, v\$rollname r, v\$session sWHEREWHERE l.sid = s.sid (+) l.sid = s.sid (+) ANDAND p.addr = s.paddr p.addr = s.paddr ANDAND l.type(+)=‘TX’ l.type(+)=‘TX’ ANDAND l.lmode(+)=6 l.lmode(+)=6 ANDAND trunc(l.idl1(+)/65536)=r.usn trunc(l.idl1(+)/65536)=r.usnUNIONUNIONSELECTSELECT ‘2) ROLLBACK SEG;ORACLE PID; SYSTEM PID; SID; TRANSACTION; ‘2) ROLLBACK SEG;ORACLE PID; SYSTEM PID; SID; TRANSACTION; TERMINAL’TERMINAL’FROMFROM dual dualUNIONUNION SELECTSELECT ‘1) ‘ ‘1) ‘ FROMFROM dual dualUNIONUNION SELECTSELECT ‘3) ---------------- ---------- ---------- ----------- --------’ ‘3) ---------------- ---------- ---------- ----------- --------’ FROMFROM dual dualORDERORDER BY 1; BY 1;EOFEOF
Which Rollback Segments Are Which Rollback Segments Are Being Used By Which User Being Used By Which User
Accounts?Accounts?
Below is a sample output from the preceding SQL:Below is a sample output from the preceding SQL:
1)1)2) ROLLBACK SEGMENT; ORACLE PID; SYSTEM PID; SID; TRANSACTION; 2) ROLLBACK SEGMENT; ORACLE PID; SYSTEM PID; SID; TRANSACTION; TERMINALTERMINAL3)------------------------- --------------- --------------- ---- ----------------- ------------3)------------------------- --------------- --------------- ---- ----------------- ------------4) R014) R01 70 1632 14 oracle ? 70 1632 14 oracle ?5) BIG_ROLL 65 1492 21 oracle5) BIG_ROLL 65 1492 21 oracle ? ?
Which Rollback Segments Are Which Rollback Segments Are Being Used By Which User Being Used By Which User
Accounts?Accounts?
What Has The Largest Number What Has The Largest Number Of Concurrent Users Been?Of Concurrent Users Been?
set pagesize 24set pagesize 24
set linesize 100set linesize 100
SELECTSELECT rpad(c.name||’:’,11)||chr(9)||chr(9)||rpad(c.name||’:’,11)||chr(9)||chr(9)||
rpad(‘ current logons=‘||(to_number(b.sessions_current)-rpad(‘ current logons=‘||(to_number(b.sessions_current)-
1),20)||chr(10)||1),20)||chr(10)||
‘‘cumulative logons=‘||rpad(substr(a.value,1,12),12)||chr(9)||cumulative logons=‘||rpad(substr(a.value,1,12),12)||chr(9)||
‘‘highwater mark=‘||b.sessions_highwater||chr(9)highwater mark=‘||b.sessions_highwater||chr(9)
FROMFROM v$sysstat a, v$license b, v$database cv$sysstat a, v$license b, v$database c
WHEREWHERE a.name = ‘logons cumulative’;a.name = ‘logons cumulative’;
PINDB: current logons=298 PINDB: current logons=298 cumulative logons=7967 highwater cumulative logons=7967 highwater mark=391mark=391
Output from the preceding SQL:
What Has The Largest Number What Has The Largest Number Of Concurrent Users Been?Of Concurrent Users Been?
What Has The Largest Number What Has The Largest Number Of Concurrent Users Been?Of Concurrent Users Been?
export LOGDIR=$ORACLE_HOME/udump
echo “Enter the password for the SYSTEM user:”read PASSWDfor SID in PRODDB TESTDB TRAINDB DEVDBdosqlplus system/$PASSWD@$SID << EOF >> $LOGDIR/temp_users.lstset linesize 100SELECT rpad(c.name||’:’,11)||chr(9)||chr(9)||
rpad(‘ current logons=‘||(to_number(b.sessions_current)-1),20)||chr(10)||
‘cumulative logons=‘||rpad(substr(a.value,1,12),12)||chr(9)||
‘highwater mark=‘||b.sessions_highwater||chr(9)
FROM v\$sysstat a, v\$license b, v\$database c
WHERE a.name = ‘logons cumulative’;
EOFdonecat $LOGDIR/temp_users.lst |grep “LOG” > $LOGDIR/archive`date “+%m%d”`.logrm $LOGDIR/temp_users.lst
Loop through four databases
PRODDB: current logons=298 cumulative logons=7967 highwater PRODDB: current logons=298 cumulative logons=7967 highwater mark=391mark=391TESTDB: current logons=15 cumulative logons=187 highwater mark=15TESTDB: current logons=15 cumulative logons=187 highwater mark=15TRAINDB: current logons=8 cumulative logons=613 highwater mark=25TRAINDB: current logons=8 cumulative logons=613 highwater mark=25DEVDB: current logons=23 cumulative logons=1024 highwater mark=30DEVDB: current logons=23 cumulative logons=1024 highwater mark=30
Output from the preceding SQL for four databases:
What Has The Largest Number What Has The Largest Number Of Concurrent Users Been?Of Concurrent Users Been?
Which Locks Are Being Which Locks Are Being Held?Held?-- V$LOCK -- V$LOCK holds information on internal Oracle locks.holds information on internal Oracle locks.
-- -- Six views show information more clearly:Six views show information more clearly:
DBA_LOCK: DBA_LOCK: locks held and locks requested;is locks held and locks requested;is blocking?blocking?
DBA_LOCK_INTERNAL: DBA_LOCK_INTERNAL: locks held and locks locks held and locks requestedrequested
DBA_DML_LOCKS: DBA_DML_LOCKS: DML locks (subset of DBA_LOCK)DML locks (subset of DBA_LOCK)
DBA_DDL_LOCKS: DBA_DDL_LOCKS: DDL locks (subset of DBA_LOCK)DDL locks (subset of DBA_LOCK)
DBA_WAITERS: DBA_WAITERS: which sessions are holding and which sessions are holding and waiting for locks?waiting for locks?
DBA_BLOCKERS: DBA_BLOCKERS: which sessions are holding locks which sessions are holding locks but are not waiting on another lock themselves?but are not waiting on another lock themselves?
-- -- These are created by the These are created by the $ORACLE_HOME/rdbms/admin/catblock.sql $ORACLE_HOME/rdbms/admin/catblock.sql scriptscript
---- Use Use $ORACLE_HOME/rdbms/admin/utllockt.sql $ORACLE_HOME/rdbms/admin/utllockt.sql to analyze to analyze these views.these views.
SELECT * FROM DBA_LOCK;SELECT * FROM DBA_LOCK;SESSION_ID TYPE MODE_HELD SESSION_ID TYPE MODE_HELD MODE_REQUESTEDMODE_REQUESTED--------------- ------------------- --------------- -------------------------------------- ------------------- --------------- -----------------------LOCK_ID1 LOCK_ID2 LAST_CONVERT LOCK_ID1 LOCK_ID2 LAST_CONVERT BLOCKING_OTHERSBLOCKING_OTHERS------------ ------------ ------------------ ------------ ------------ ------------------ ------------------------------------------------2 Media Recovery Share None2 Media Recovery Share None212 0 113054 Not 212 0 113054 Not BlockingBlocking
4 Redo Thread Exclusive None4 Redo Thread Exclusive None1 0 0 Not 1 0 0 Not BlockingBlocking
310 Transaction Exclusive None310 Transaction Exclusive None196612 399886 123 Not 196612 399886 123 Not BlockingBlocking
310 DML Row-X (SX) None310 DML Row-X (SX) None438580 0 123 Not 438580 0 123 Not BlockingBlocking
Which Locks Are Being Which Locks Are Being Held?Held?
Which Locks Are Being Held?Which Locks Are Being Held?
The previous views can be neatly arranged with the $ORACLE_HOME/rdbms/admin/utllockt.sql script.
The utllockt.sql script creates two temporary tables: LOCK_HOLDERS and DBA_LOCKS_TEMP
DBA_LOCKS_TEMP is created to improve performance over using the slower DBA_LOCKS view.
Output uses the CONNECT BY and START WITH clauses to make a hierarchical tree structure.
The highest level in the tree is where HOLDING_SESSION is null.
SELECTSELECT lpad(‘ ‘,3*level-1)) || waiting_sessions lpad(‘ ‘,3*level-1)) || waiting_sessions “WAITING SESSION”, “WAITING SESSION”, lock_type, mode_requested, mode_held, lock_type, mode_requested, mode_held, lock_id1, lock_id2 lock_id1, lock_id2FROMFROM lock_holders lock_holdersCONNECT BY PRIORCONNECT BY PRIOR waiting_session=holding_sessionwaiting_session=holding_session
START WITH holding_session IS NULL; START WITH holding_session IS NULL;WAITING_ LOCK_ MODE_ MODE_ LOCK_ WAITING_ LOCK_ MODE_ MODE_ LOCK_ LOCK_LOCK_SESSION TYPE REQUESTED HELD ID1 ID2SESSION TYPE REQUESTED HELD ID1 ID2
---------- ------- ------------- ------- -------- ---------------- ------- ------------- ------- -------- ------133 None133 None 319 Transaction Exclusive Exclusive 196613 406415 319 Transaction Exclusive Exclusive 196613 406415
Which Locks Are Being Which Locks Are Being Held?Held?
NAMENAMESTATISTIC#STATISTIC#CLASSCLASS
NAMENAMESTATISTIC#STATISTIC#CLASSCLASS
Which Users Have Hogged Up Which Users Have Hogged Up The Most CPU Usage?The Most CPU Usage?
V$STATNAMEV$STATNAMEV$STATNAMEV$STATNAME
PROGRAMPROGRAMTYPETYPESQL_ADDRESSSQL_ADDRESSSQL_HASH_VALUESQL_HASH_VALUEMODULEMODULEMODULE_HASHMODULE_HASHACTIONACTIONACTION_HASHACTION_HASHCLIENT_INFOCLIENT_INFOFIXED_TABLE_SEQUENCEFIXED_TABLE_SEQUENCEROW_WAIT_OBJ#ROW_WAIT_OBJ#ROW_WAIT_FILE#ROW_WAIT_FILE#ROW_WAIT_BLOCK#ROW_WAIT_BLOCK#ROW_WAIT_ROW#ROW_WAIT_ROW#LOGON_TIMELOGON_TIMELAST_CALL_ETLAST_CALL_ETPDML_ENABLEDPDML_ENABLEDFAILOVER_TYPEFAILOVER_TYPEFAILOVER_METHODFAILOVER_METHODFAILED_OVERFAILED_OVER
PROGRAMPROGRAMTYPETYPESQL_ADDRESSSQL_ADDRESSSQL_HASH_VALUESQL_HASH_VALUEMODULEMODULEMODULE_HASHMODULE_HASHACTIONACTIONACTION_HASHACTION_HASHCLIENT_INFOCLIENT_INFOFIXED_TABLE_SEQUENCEFIXED_TABLE_SEQUENCEROW_WAIT_OBJ#ROW_WAIT_OBJ#ROW_WAIT_FILE#ROW_WAIT_FILE#ROW_WAIT_BLOCK#ROW_WAIT_BLOCK#ROW_WAIT_ROW#ROW_WAIT_ROW#LOGON_TIMELOGON_TIMELAST_CALL_ETLAST_CALL_ETPDML_ENABLEDPDML_ENABLEDFAILOVER_TYPEFAILOVER_TYPEFAILOVER_METHODFAILOVER_METHODFAILED_OVERFAILED_OVER
V$SESSIONV$SESSIONV$SESSIONV$SESSION
SIDSIDSTATISTIC#STATISTIC#VALUEVALUE
SIDSIDSTATISTIC#STATISTIC#VALUEVALUE
V$SESSTATV$SESSTATV$SESSTATV$SESSTATSADDRSADDR
SIDSIDSERIAL#SERIAL#AUDSIDAUDSIDPADDRPADDRUSER#USER#
USERNAMEUSERNAMECOMMANDCOMMANDOWNERIDOWNERIDTADDRTADDRLOCKWAITLOCKWAITSTATUSSTATUSSERVERSERVERSCHEMA#SCHEMA#SCHEMANAMESCHEMANAMEOSUSEROSUSERPROCESSPROCESSMACHINEMACHINETERMINALTERMINAL
SADDRSADDR
SIDSIDSERIAL#SERIAL#AUDSIDAUDSIDPADDRPADDRUSER#USER#
USERNAMEUSERNAMECOMMANDCOMMANDOWNERIDOWNERIDTADDRTADDRLOCKWAITLOCKWAITSTATUSSTATUSSERVERSERVERSCHEMA#SCHEMA#SCHEMANAMESCHEMANAMEOSUSEROSUSERPROCESSPROCESSMACHINEMACHINETERMINALTERMINAL
like ‘%CPU used by this session%’
SELECTSELECT substr(sn.name,1,30) parameter, substr(sn.name,1,30) parameter, ss.username ||’ (’|| se_sid ||’) ‘ user_process, se.value ss.username ||’ (’|| se_sid ||’) ‘ user_process, se.valueFROMFROM v$session ss, v$sesstat se, v$statname sn v$session ss, v$sesstat se, v$statname snWHERE WHERE se. statistic# = sn.statistic# se. statistic# = sn.statistic# ANDAND
sn.name sn.name LIKELIKE ‘%CPU used by this session%’ ‘%CPU used by this session%’ ANDAND se.sid=ss.sid se.sid=ss.sidORDER BYORDER BY sn.name, se_value sn.name, se_value DESC;DESC;PARAMETER USER_PROCESS VALUEPARAMETER USER_PROCESS VALUE-------------------------------- ------------------------ ----------------------------------------------- ------------------------ ---------------CPU used by this session OLAP_MAN (390) 15230CPU used by this session OLAP_MAN (390) 15230CPU used by this session PIN (35) 4324CPU used by this session PIN (35) 4324CPU used by this session OPERATOR (17) 157CPU used by this session OPERATOR (17) 157CPU used by this session SYS (11) 0CPU used by this session SYS (11) 0
Which Users Have Hogged Up Which Users Have Hogged Up The Most CPU Usage?The Most CPU Usage?
SVRMGRL>SVRMGRL> ARCHIVE LOG LIST; ARCHIVE LOG LIST;Database log modeDatabase log mode No Archive ModeNo Archive ModeAutomatic archivalAutomatic archival DisabledDisabledArchive DestinationArchive Destination ?/dbs/arch?/dbs/archOldest online log sequenceOldest online log sequence 45254525Current log sequenceCurrent log sequence 45284528
What Is The Archiving Status Of What Is The Archiving Status Of The Database?The Database?
Why is archiving important?What happens when the archive volume fills up?How do you find the archiving status?How do you turn on archiving?
SELECTSELECT ‘NAME=‘|| a.name, ‘LOG_MODE=‘|| a.log_mode, ‘NAME=‘|| a.name, ‘LOG_MODE=‘|| a.log_mode, ‘LOG_ARCHIVE_START=‘|| b.value, ‘LOG_ARCHIVE_START=‘|| b.value, ‘LOG_ARCHIVE_DEST=‘|| c.value, ‘LOG_ARCHIVE_DEST=‘|| c.value, ‘LOG_ARCHIVE_FORMAT=‘|| d.value ‘LOG_ARCHIVE_FORMAT=‘|| d.valueFROMFROM v$database a, v$parameter b, v$parameter c, v$database a, v$parameter b, v$parameter c, v$parameter d v$parameter dWHERE WHERE b.name=‘log_archive_start’ b.name=‘log_archive_start’ ANDAND c.name=‘log_archive_dest’ c.name=‘log_archive_dest’ ANDAND d.name=‘log_archive_format’ d.name=‘log_archive_format’;;NAME=PINDBNAME=PINDBLOG_MODE=NOARCHIVELOGLOG_MODE=NOARCHIVELOGLOG_ARCHIVE_START=TRUELOG_ARCHIVE_START=TRUELOG_ARCHIVE_DEST=/u01/oracle/product/8.0.3/dbs/archLOG_ARCHIVE_DEST=/u01/oracle/product/8.0.3/dbs/archLOG_ARCHIVE_FOMAT=_%s_%t.logLOG_ARCHIVE_FOMAT=_%s_%t.log
What Is The Archiving Status Of What Is The Archiving Status Of The Database?The Database?
Where to Now?Where to Now? There are many discussion Newsgroups on the internet for you to give There are many discussion Newsgroups on the internet for you to give
questions and get answers:questions and get answers:
comp.databases.oracle.servercomp.databases.oracle.server
comp.databases.oracle.toolscomp.databases.oracle.tools
comp.databases.oracle.misccomp.databases.oracle.misc
These can be accessed through a newsgroup program or “These can be accessed through a newsgroup program or “www.deja.comwww.deja.com””
Ari’s free Oracle Tips web page at:Ari’s free Oracle Tips web page at:
There are over 370 tips and answers to questions that have been posed to There are over 370 tips and answers to questions that have been posed to me over the years. This paper will be downloadable from the web page as me over the years. This paper will be downloadable from the web page as well.well.
Other good sites with links: Other good sites with links: www.orafaq.org, www.orafans.com, www.orafaq.org, www.orafans.com, www.ioug.org, www.orasearch.com, www.revealnet.comwww.ioug.org, www.orasearch.com, www.revealnet.com