Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Oracle Database Performance Tuning
Using oratop
Tips and tricks
Sandesh Rao
VP AIOps for the Autonomous
@sandeshr
https://www.linkedin.com/in/raosandesh/
https://www.slideshare.net/SandeshRao4
A text-based interface like “top”, which can
be run against Real Application Cluster
(RAC) or non-RAC databases
It provides the ability to monitor the
database in near real time
What is oratop
Visual layout
(1) Database
(2) Instance activity
(3) AWR like
“Top 5 Timed Events”
(4) Process or SQL
Command line mode
$ export ORACLE_HOME=<path>
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH
$ ./oratop –h
oratop: Release 16.5.1
The oratop program provides a dynamic near real-time view of an open database
It also provides a limited on-line interactive interface.
Usage:
oratop [ [Options] [Logon] ]
Logon: {username[@connect_identifier] | / } [AS SYSDBA]
Password is prompted and the connect_identifier is TNS/ EZconnect
Options:
-b: batch mode. Used with –n iteration (default is console)
-n: maximum number of iterations (requires a value)
-o: Write console output to a file (in batch mode)
-i: interval delay (requires a value, default: 5)
-r: real-time (RT) wait events. (section 3, default: Cumulative)
-m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM)
-s: SQL mode. (section 4, default: session/process mode)
-f: detailed format, 132 columns. (default: standard, 80 columns)
-v: oratop release version number
-h: this help
$ export ORACLE_HOME=<path>
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH
$ ./oratop –h
oratop: Release 16.5.1
The oratop program provides a dynamic near real-time view of an open database
It also provides a limited on-line interactive interface.
Usage:
oratop [ [Options] [Logon] ]
Logon: {username[@connect_identifier] | / } [AS SYSDBA]
Password is prompted and the connect_identifier is TNS/ EZconnect
Options:
-b: batch mode. Used with –n iteration (default is console)
-n: maximum number of iterations (requires a value)
-o: Write console output to a file (in batch mode)
-i: interval delay (requires a value, default: 5)
-r: real-time (RT) wait events. (section 3, default: Cumulative)
-m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM)
-s: SQL mode. (section 4, default: session/process mode)
-f: detailed format, 132 columns. (default: standard, 80 columns)
-v: oratop release version number
-h: this help
Command line mode
$ export ORACLE_HOME=<path>
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH
oratop: Release 16.5.1
The oratop program provides a dynamic near real-time view of an open database
It also provides a limited on-line interactive interface.
Usage:
oratop [ [Options] [Logon] ]
Logon: {username[@connect_identifier] | / } [AS SYSDBA]
Password is prompted and the connect_identifier is TNS/ EZconnect
Options:
-b: batch mode. Used with –n iteration (default is console)
-n: maximum number of iterations (requires a value)
-o: Write console output to a file (in batch mode)
-i: interval delay (requires a value, default: 5)
-r: real-time (RT) wait events. (section 3, default: Cumulative)
-m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM)
-s: SQL mode. (section 4, default: session/process mode)
-f: detailed format, 132 columns. (default: standard, 80 columns)
-v: oratop release version number
-h: this help
$ ./oratop –h
Login
$ oratop / as sysdba
Connection method is like sqlplus
Connecting “ / as sysdba“ is allowed only for bequeath connections
The remote database requires setting the parameter “REMOTE_LOGIN_PASSWORDFILE”
paired with the availability of an Oracle password file.
$ export TWO_TASK= rmtdbhost:1521/db1.domain.com
Login
oratop sys@rmtdbhost:1521/db1.domain.com as sysdba
TNS:
export TNS_ADMIN and connect with a TNS alias name as defined in tnsnames.ora
TWO_TASK can be set with any of the above for ease of use, example
EZConnect, example:
oratop: Release 16.5.1 Production on Fri Feb 11 05:54:50 UTC 2022
Copyright (c) 2011, Oracle. All rights reserved.
Enter password:
$ ./oratop sys as sysdba
Symbols:
(B)tyle, (K)illo, (M)ega, (G)iga, (T)err, [PEXY]
(u)micro, (m)illi, (s)econd, minu(t)e, (h)our, (d)ay, (y)ear
[60s/ 15s] – metric interval size, else current.
Interactive Mode
Options can be seen after starting the utility followed by pressing the keyboard key ‘h’
oratop: Release 16.5.1
Abbreviations Help Menu:
Section 1 – DATABASE .. [1]
Section 2 – INSTANCE .. [2]
Section 3 – DB WAIT EVENTS .. [3]
Section 4 – SESSION/PROCESS .. [4]
Quit Help .. (q|Q)
Enter selection number:
Interactive Keys: [default]
f : toggle between [standard] & detailed format
r : toggle between [Cumulative ©] & Real-Time (RT) (section 3)
s : switch to SQL mode (section 4)
p : switch to [session/process] mode (section 4)
m : Toggle session [USERNAME/PROGRAM] & MODULE/ACTION (sections 4)
t : tablespace information (N/A on standby)
x : SQL plan table (requires a value)
I : refresh interval, requires value in seconds [5]
q : quit/ exit program
Esc : pause.
Miscellaneous
Wait Events (section 3)
Keyboard key press ‘r’ will toggle the wait event section between Cumulative and Realtime.
For C, the stats shown is the accumulation since the last database restart
Header’s %DCP
Column “%DCP” (in section 2) is the database instance cpu usage as %CPU of the host
Header’s “archivelog” and “er” (incidents) These two values are static, they are acquired once upon
start of monitoring only. They are not auto refreshed because the first incur expensive recursive query
and the second adds to diagnosability database waits
Values appearing in RED color
Values flagged and highlighted in red color are merely an emphasis of warning
Tablespaces listing
A list of all the tablespaces (cdb and pdb) can be obtained online with keyboard key press ‘t’
Miscellaneous
Detailed format (long)
Note. in RAC environment, while section 2 (instance section) is restricted to the top 5 instances in the
text-based user interface, all of the available instances will be listed in the batch mode.
Cycle 1 - oratop: Release 16.5.1 Production on Fri Apr 28 19:42:49 UTC 2023
Oracle 21c - 19:41:56 Pri r/w cdbs up: 13h, 12 sn, 4G sga, 10%fra, 15%db
ID %CPU LOAD AAS ASC ASI ASW ISW IORT MBPS %FRE PGA UCPS SQRT %DBC %DBW
-------------------------------------------------------------------------------
1 51 3 1 0 0 6 6 17m 2 8 834M 42 1m 4 11
EVENT (C) T/O WAIT TIME AVG %DBT WAIT_CLASS
-------------------------------------------------------------------------------
SQL*Net more data from client 31k 1d 3s 93 Network
SQL*Net message from dblink 505k 39t 5m 2 Network
DB CPU 39t 2
oracle thread bootstrap 9k 27t 186m 2 Other
db file sequential read 35k 4t 6m 0 User I/O
ID SID SPID USR PROG S OPN SQLID/BLOCKER E/T %CPU PGA ACT EVENT/OB W/T
-------------------------------------------------------------------------------
1 792 517 TPC tpcc D PL/ 582r1jmmm3tgj 3s 3 4M INA SQL*Net 3s
1 802 439 TPC tpcc D PL/ 582r1jmmm3tgj 184m 3 4M INA SQL*Net 184m
1 418 413 TPC tpcc D PL/ 582r1jmmm3tgj 185m 1 4M INA SQL*Net 185m
Batch Mode
Batch mode is applicable at the command line with the relevant input options.
Cycle 2 - oratop: Release 16.5.1 Production on Fri Apr 28 19:42:54 UTC 2023
Oracle 21c - 19:41:56 Pri r/w cdbs up: 13h, 12 sn, 4G sga, 10%fra, 15%db
ID %CPU LOAD AAS ASC ASI ASW ISW IORT MBPS %FRE PGA UCPS SQRT %DBC %DBW
-------------------------------------------------------------------------------
1 51 3 1 0 0 6 6 17m 2 8 834M 42 1m 4 11
EVENT (C) T/O WAIT TIME AVG %DBT WAIT_CLASS
oratop: Release 16.5.1 Production on Fri Apr 28 19:42:40 UTC 2023
Copyright (c) 2011, Oracle. All rights reserved.
Enter password:
Connecting
$ ./oratop / sysdba -bn1
SQL (key press ‘s’)
SQL
SQL (key press ‘x’)
SQL Plan
Standby or mounted database instance
• STANDBY - key press “t” for “TABLESPACE INFORMATION” will not return any rows. Reason: BUG
27841703
• MOUNTED Instance – Section 2 will show inst_id highlighted in red color. Reason: Required
statistics is not available until instance is opened.
Miscellaneous
Unprivileged user
A typical error encountered by a non-privileged user upon connection to the database using the tool
is “ORA-00942: table or view does not exist”
To allow the non-privileged user to use oratop, the system administrator with a DBA role may issue
the following grant: “GRANT SELECT ANY DICTIONARY TO ;”
Exiting
To quit the program gracefully, user may press keyboard keys: "q" or "Q", or Esc key. A Ctrl+c to abort
forcibly. In all cases, proper database logout is performed
Monitor a local database:
Monitoring a remote database:
or
Monitoring a database every 10 seconds
$ ./oratop -i 10 / as sysdba
$ ./oratop -i 10 username/password@tns_alias
$ ./oratop -i 10 system/manager@tns_alias
Running from AHF
tfactl menu..
tfactl menu..
tfactl menu..
f : toggle between [standard] & detailed format
r : toggle between [Cumulative ©] & Real-Time (RT) (section 3)
m : Toggle session [USERNAME/PROGRAM] & MODULE/ACTION (sections 4)
t : tablespace information (N/A on standby)
x : SQL plan table (requires a value)
I : refresh interval, requires value in seconds [5]
(h) Help menu
Oracle major
version
Current time from
system metric
Role
(Primary,
Physical
standby)
Read write, read
only, w/apply
(active)
Name
Database
uptime
Number user
sessions
Number of
instances
Number of
pluggable
databases
Diag active
problem count
Total
database
Size
Largest system
global area
% used flashback
recovery area
Archivelog mode
Database
utilization
(%busy)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Physical
write
total IO
request /
sec
Instance
ID
CPU
Count
CPU %
Busy
Current
OS load
Avg
active
sessions
Avg active
sessions
waiting on
I/O
Avg active
sessions
waiting
Inactive
sessions
waiting or
sleeping
Redo
created
per sec
Temp space
used
I/O Response
Time
(avg sync
single-block
read latency)
I/O
through
put in
MB /sec
I/O requests
/ second
(DB R/W)
Active
sessions on
CPU Physical
read total
IO request
/ sec
Logical
reads /
sec
GC CR+
current
block
received /
sec
Shared
pool free
%
Total PGA
allocated
Network
traffic
(bytes) /
sec
User
trans’ /
sec
User calls
/ sec
SQL service
response time
/ call
Database
CPU
(%Host)
Database
WAIT
(%Host)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Wait event name
(real time mode)
1
2
Number
sessions
waiting
Total number
of waits for
the event
Avg wait
time
Total wait
time
% of
database
time
Name of
wait class
3
4
5
6
7
Thank you
Any Questions?
Sandesh Rao
VP AIOps for the Autonomous Database
@sandeshr
https://www.linkedin.com/in/raosandesh/
https://www.slideshare.net/SandeshRao4
Performance Tuning Using oratop

More Related Content

Performance Tuning Using oratop

  • 1. Oracle Database Performance Tuning Using oratop Tips and tricks Sandesh Rao VP AIOps for the Autonomous @sandeshr https://www.linkedin.com/in/raosandesh/ https://www.slideshare.net/SandeshRao4
  • 2. A text-based interface like “top”, which can be run against Real Application Cluster (RAC) or non-RAC databases It provides the ability to monitor the database in near real time What is oratop
  • 3. Visual layout (1) Database (2) Instance activity (3) AWR like “Top 5 Timed Events” (4) Process or SQL
  • 4. Command line mode $ export ORACLE_HOME=<path> $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib $ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH $ ./oratop –h oratop: Release 16.5.1 The oratop program provides a dynamic near real-time view of an open database It also provides a limited on-line interactive interface. Usage: oratop [ [Options] [Logon] ] Logon: {username[@connect_identifier] | / } [AS SYSDBA] Password is prompted and the connect_identifier is TNS/ EZconnect Options: -b: batch mode. Used with –n iteration (default is console) -n: maximum number of iterations (requires a value) -o: Write console output to a file (in batch mode) -i: interval delay (requires a value, default: 5) -r: real-time (RT) wait events. (section 3, default: Cumulative) -m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM) -s: SQL mode. (section 4, default: session/process mode) -f: detailed format, 132 columns. (default: standard, 80 columns) -v: oratop release version number -h: this help $ export ORACLE_HOME=<path> $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib $ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH $ ./oratop –h oratop: Release 16.5.1 The oratop program provides a dynamic near real-time view of an open database It also provides a limited on-line interactive interface. Usage: oratop [ [Options] [Logon] ] Logon: {username[@connect_identifier] | / } [AS SYSDBA] Password is prompted and the connect_identifier is TNS/ EZconnect Options: -b: batch mode. Used with –n iteration (default is console) -n: maximum number of iterations (requires a value) -o: Write console output to a file (in batch mode) -i: interval delay (requires a value, default: 5) -r: real-time (RT) wait events. (section 3, default: Cumulative) -m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM) -s: SQL mode. (section 4, default: session/process mode) -f: detailed format, 132 columns. (default: standard, 80 columns) -v: oratop release version number -h: this help
  • 5. Command line mode $ export ORACLE_HOME=<path> $ export LD_LIBRARY_PATH=$ORACLE_HOME/lib $ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH oratop: Release 16.5.1 The oratop program provides a dynamic near real-time view of an open database It also provides a limited on-line interactive interface. Usage: oratop [ [Options] [Logon] ] Logon: {username[@connect_identifier] | / } [AS SYSDBA] Password is prompted and the connect_identifier is TNS/ EZconnect Options: -b: batch mode. Used with –n iteration (default is console) -n: maximum number of iterations (requires a value) -o: Write console output to a file (in batch mode) -i: interval delay (requires a value, default: 5) -r: real-time (RT) wait events. (section 3, default: Cumulative) -m: Session/Process MODULE/ACTION (default: USERNAME/PROGRAM) -s: SQL mode. (section 4, default: session/process mode) -f: detailed format, 132 columns. (default: standard, 80 columns) -v: oratop release version number -h: this help $ ./oratop –h
  • 6. Login $ oratop / as sysdba Connection method is like sqlplus Connecting “ / as sysdba“ is allowed only for bequeath connections The remote database requires setting the parameter “REMOTE_LOGIN_PASSWORDFILE” paired with the availability of an Oracle password file.
  • 7. $ export TWO_TASK= rmtdbhost:1521/db1.domain.com Login oratop sys@rmtdbhost:1521/db1.domain.com as sysdba TNS: export TNS_ADMIN and connect with a TNS alias name as defined in tnsnames.ora TWO_TASK can be set with any of the above for ease of use, example EZConnect, example: oratop: Release 16.5.1 Production on Fri Feb 11 05:54:50 UTC 2022 Copyright (c) 2011, Oracle. All rights reserved. Enter password: $ ./oratop sys as sysdba
  • 8. Symbols: (B)tyle, (K)illo, (M)ega, (G)iga, (T)err, [PEXY] (u)micro, (m)illi, (s)econd, minu(t)e, (h)our, (d)ay, (y)ear [60s/ 15s] – metric interval size, else current. Interactive Mode Options can be seen after starting the utility followed by pressing the keyboard key ‘h’ oratop: Release 16.5.1 Abbreviations Help Menu: Section 1 – DATABASE .. [1] Section 2 – INSTANCE .. [2] Section 3 – DB WAIT EVENTS .. [3] Section 4 – SESSION/PROCESS .. [4] Quit Help .. (q|Q) Enter selection number: Interactive Keys: [default] f : toggle between [standard] & detailed format r : toggle between [Cumulative ©] & Real-Time (RT) (section 3) s : switch to SQL mode (section 4) p : switch to [session/process] mode (section 4) m : Toggle session [USERNAME/PROGRAM] & MODULE/ACTION (sections 4) t : tablespace information (N/A on standby) x : SQL plan table (requires a value) I : refresh interval, requires value in seconds [5] q : quit/ exit program Esc : pause.
  • 9. Miscellaneous Wait Events (section 3) Keyboard key press ‘r’ will toggle the wait event section between Cumulative and Realtime. For C, the stats shown is the accumulation since the last database restart Header’s %DCP Column “%DCP” (in section 2) is the database instance cpu usage as %CPU of the host Header’s “archivelog” and “er” (incidents) These two values are static, they are acquired once upon start of monitoring only. They are not auto refreshed because the first incur expensive recursive query and the second adds to diagnosability database waits Values appearing in RED color Values flagged and highlighted in red color are merely an emphasis of warning Tablespaces listing A list of all the tablespaces (cdb and pdb) can be obtained online with keyboard key press ‘t’
  • 10. Miscellaneous Detailed format (long) Note. in RAC environment, while section 2 (instance section) is restricted to the top 5 instances in the text-based user interface, all of the available instances will be listed in the batch mode.
  • 11. Cycle 1 - oratop: Release 16.5.1 Production on Fri Apr 28 19:42:49 UTC 2023 Oracle 21c - 19:41:56 Pri r/w cdbs up: 13h, 12 sn, 4G sga, 10%fra, 15%db ID %CPU LOAD AAS ASC ASI ASW ISW IORT MBPS %FRE PGA UCPS SQRT %DBC %DBW ------------------------------------------------------------------------------- 1 51 3 1 0 0 6 6 17m 2 8 834M 42 1m 4 11 EVENT (C) T/O WAIT TIME AVG %DBT WAIT_CLASS ------------------------------------------------------------------------------- SQL*Net more data from client 31k 1d 3s 93 Network SQL*Net message from dblink 505k 39t 5m 2 Network DB CPU 39t 2 oracle thread bootstrap 9k 27t 186m 2 Other db file sequential read 35k 4t 6m 0 User I/O ID SID SPID USR PROG S OPN SQLID/BLOCKER E/T %CPU PGA ACT EVENT/OB W/T ------------------------------------------------------------------------------- 1 792 517 TPC tpcc D PL/ 582r1jmmm3tgj 3s 3 4M INA SQL*Net 3s 1 802 439 TPC tpcc D PL/ 582r1jmmm3tgj 184m 3 4M INA SQL*Net 184m 1 418 413 TPC tpcc D PL/ 582r1jmmm3tgj 185m 1 4M INA SQL*Net 185m Batch Mode Batch mode is applicable at the command line with the relevant input options. Cycle 2 - oratop: Release 16.5.1 Production on Fri Apr 28 19:42:54 UTC 2023 Oracle 21c - 19:41:56 Pri r/w cdbs up: 13h, 12 sn, 4G sga, 10%fra, 15%db ID %CPU LOAD AAS ASC ASI ASW ISW IORT MBPS %FRE PGA UCPS SQRT %DBC %DBW ------------------------------------------------------------------------------- 1 51 3 1 0 0 6 6 17m 2 8 834M 42 1m 4 11 EVENT (C) T/O WAIT TIME AVG %DBT WAIT_CLASS oratop: Release 16.5.1 Production on Fri Apr 28 19:42:40 UTC 2023 Copyright (c) 2011, Oracle. All rights reserved. Enter password: Connecting $ ./oratop / sysdba -bn1
  • 12. SQL (key press ‘s’) SQL
  • 13. SQL (key press ‘x’) SQL Plan
  • 14. Standby or mounted database instance • STANDBY - key press “t” for “TABLESPACE INFORMATION” will not return any rows. Reason: BUG 27841703 • MOUNTED Instance – Section 2 will show inst_id highlighted in red color. Reason: Required statistics is not available until instance is opened. Miscellaneous Unprivileged user A typical error encountered by a non-privileged user upon connection to the database using the tool is “ORA-00942: table or view does not exist” To allow the non-privileged user to use oratop, the system administrator with a DBA role may issue the following grant: “GRANT SELECT ANY DICTIONARY TO ;” Exiting To quit the program gracefully, user may press keyboard keys: "q" or "Q", or Esc key. A Ctrl+c to abort forcibly. In all cases, proper database logout is performed
  • 15. Monitor a local database: Monitoring a remote database: or Monitoring a database every 10 seconds $ ./oratop -i 10 / as sysdba $ ./oratop -i 10 username/password@tns_alias $ ./oratop -i 10 system/manager@tns_alias
  • 20. f : toggle between [standard] & detailed format
  • 21. r : toggle between [Cumulative ©] & Real-Time (RT) (section 3)
  • 22. m : Toggle session [USERNAME/PROGRAM] & MODULE/ACTION (sections 4)
  • 23. t : tablespace information (N/A on standby)
  • 24. x : SQL plan table (requires a value)
  • 25. I : refresh interval, requires value in seconds [5]
  • 27. Oracle major version Current time from system metric Role (Primary, Physical standby) Read write, read only, w/apply (active) Name Database uptime Number user sessions Number of instances Number of pluggable databases Diag active problem count Total database Size Largest system global area % used flashback recovery area Archivelog mode Database utilization (%busy) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 28. Physical write total IO request / sec Instance ID CPU Count CPU % Busy Current OS load Avg active sessions Avg active sessions waiting on I/O Avg active sessions waiting Inactive sessions waiting or sleeping Redo created per sec Temp space used I/O Response Time (avg sync single-block read latency) I/O through put in MB /sec I/O requests / second (DB R/W) Active sessions on CPU Physical read total IO request / sec Logical reads / sec GC CR+ current block received / sec Shared pool free % Total PGA allocated Network traffic (bytes) / sec User trans’ / sec User calls / sec SQL service response time / call Database CPU (%Host) Database WAIT (%Host) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
  • 29. Wait event name (real time mode) 1 2 Number sessions waiting Total number of waits for the event Avg wait time Total wait time % of database time Name of wait class 3 4 5 6 7
  • 30. Thank you Any Questions? Sandesh Rao VP AIOps for the Autonomous Database @sandeshr https://www.linkedin.com/in/raosandesh/ https://www.slideshare.net/SandeshRao4