added sga and pga diagnostics and db parameters
This commit is contained in:
parent
b1ffd59111
commit
68057dd986
@ -20,6 +20,17 @@
|
|||||||
"type": "command",
|
"type": "command",
|
||||||
"content": "output=$(/opt/ticket-ai/src/scripts/db_version_info.sh) && echo \"$output\""
|
"content": "output=$(/opt/ticket-ai/src/scripts/db_version_info.sh) && echo \"$output\""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"tag": "pga_diagnostics",
|
||||||
|
"type": "command",
|
||||||
|
"content": "output=$(/opt/ticket-ai/src/scripts/pga_diagnostics.sh) && echo \"$output\""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "sga_diagnostics",
|
||||||
|
"type": "command",
|
||||||
|
"content": "output=$(/opt/ticket-ai/src/scripts/sga_diagnostics.sh) && echo \"$output\""
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"tag": "apex_usage",
|
"tag": "apex_usage",
|
||||||
"type": "command",
|
"type": "command",
|
||||||
@ -45,6 +56,11 @@
|
|||||||
"type": "command",
|
"type": "command",
|
||||||
"content": "output=$(/opt/ticket-ai/src/scripts/topRedoSQL.sh) && echo \"$output\""
|
"content": "output=$(/opt/ticket-ai/src/scripts/topRedoSQL.sh) && echo \"$output\""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"tag": "dbparameters",
|
||||||
|
"type": "command",
|
||||||
|
"content": "output=$(/opt/ticket-ai/src/scripts/showdbparameter.sh) && echo \"$output\""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"tag": "top",
|
"tag": "top",
|
||||||
"type": "command",
|
"type": "command",
|
||||||
|
|||||||
139
src/scripts/pga_diagnostics.sh
Executable file
139
src/scripts/pga_diagnostics.sh
Executable file
@ -0,0 +1,139 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# High PGA-Consuming Sessions
|
||||||
|
echo "=== High PGA-Consuming Sessions and SQL Statements ==="
|
||||||
|
echo "This query shows sessions and SQL statements consuming the most PGA memory, with values in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN USERNAME FORMAT A20
|
||||||
|
COLUMN MODULE FORMAT A30
|
||||||
|
COLUMN PGA_ALLOC_MB FORMAT 99999.99
|
||||||
|
COLUMN PGA_USED_MB FORMAT 99999.99
|
||||||
|
COLUMN SQL_TEXT FORMAT A50
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
s.SID,
|
||||||
|
s.SERIAL#,
|
||||||
|
s.USERNAME,
|
||||||
|
s.MODULE,
|
||||||
|
ROUND(p.PGA_ALLOC_MEM / 1024 / 1024, 2) AS PGA_ALLOC_MB,
|
||||||
|
ROUND(p.PGA_USED_MEM / 1024 / 1024, 2) AS PGA_USED_MB,
|
||||||
|
q.SQL_TEXT
|
||||||
|
FROM
|
||||||
|
V\\\$SESSION s
|
||||||
|
JOIN
|
||||||
|
V\\\$PROCESS p
|
||||||
|
ON
|
||||||
|
s.PADDR = p.ADDR
|
||||||
|
LEFT JOIN
|
||||||
|
V\\\$SQL q
|
||||||
|
ON
|
||||||
|
s.SQL_ID = q.SQL_ID
|
||||||
|
WHERE
|
||||||
|
p.PGA_ALLOC_MEM > (SELECT VALUE FROM V\\\$PGASTAT WHERE NAME = 'total PGA allocated') / 10
|
||||||
|
ORDER BY
|
||||||
|
p.PGA_ALLOC_MEM DESC;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# PGA Usage Overview
|
||||||
|
echo "=== PGA Usage Overview ==="
|
||||||
|
echo "This query provides a summary of current PGA usage statistics, with values in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN NAME FORMAT A40
|
||||||
|
COLUMN VALUE_MB FORMAT 999999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
NAME,
|
||||||
|
ROUND(VALUE / 1024 / 1024, 2) AS VALUE_MB
|
||||||
|
FROM
|
||||||
|
V\\\$PGASTAT
|
||||||
|
WHERE
|
||||||
|
NAME IN ('total PGA allocated', 'total PGA inuse',
|
||||||
|
'maximum PGA allocated', 'over allocation count');
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Sessions Using Temporary Tablespace
|
||||||
|
echo "=== Sessions Using Temporary Tablespace ==="
|
||||||
|
echo "This query identifies sessions that are spilling to temporary tablespaces, with values in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN USERNAME FORMAT A20
|
||||||
|
COLUMN TABLESPACE FORMAT A20
|
||||||
|
COLUMN TEMP_MB FORMAT 99999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
s.SID,
|
||||||
|
s.SERIAL#,
|
||||||
|
s.USERNAME,
|
||||||
|
tsu.TABLESPACE,
|
||||||
|
ROUND(tsu.BLOCKS * (SELECT VALUE FROM V\\\$PARAMETER WHERE NAME = 'db_block_size') / 1024 / 1024, 2) AS TEMP_MB
|
||||||
|
FROM
|
||||||
|
V\\\$SESSION s
|
||||||
|
JOIN
|
||||||
|
V\\\$TEMPSEG_USAGE tsu
|
||||||
|
ON
|
||||||
|
s.SID = tsu.SESSION_NUM
|
||||||
|
ORDER BY
|
||||||
|
TEMP_MB DESC;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Active Sessions Using Large Work Areas
|
||||||
|
echo "=== Active Sessions Using Large Work Areas ==="
|
||||||
|
echo "This query lists sessions using significant PGA memory for sorts, hash joins, or other large work areas."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN SID FORMAT 99999
|
||||||
|
COLUMN OPERATION_TYPE FORMAT A20
|
||||||
|
COLUMN WORK_AREA_SIZE_MB FORMAT 99999.99
|
||||||
|
COLUMN ACTUAL_MEM_USED_MB FORMAT 99999.99
|
||||||
|
COLUMN NUMBER_PASSES FORMAT 99999
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
SID,
|
||||||
|
OPERATION_TYPE,
|
||||||
|
ROUND(WORK_AREA_SIZE / 1024 / 1024, 2) AS WORK_AREA_SIZE_MB,
|
||||||
|
ROUND(ACTUAL_MEM_USED / 1024 / 1024, 2) AS ACTUAL_MEM_USED_MB,
|
||||||
|
NUMBER_PASSES
|
||||||
|
FROM
|
||||||
|
V\\\$SQL_WORKAREA_ACTIVE
|
||||||
|
WHERE
|
||||||
|
ACTUAL_MEM_USED > 0
|
||||||
|
ORDER BY
|
||||||
|
ACTUAL_MEM_USED_MB DESC;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Top Resource-Consuming SQL Statements
|
||||||
|
echo "=== Top Resource-Consuming SQL Statements ==="
|
||||||
|
echo "This query highlights the SQL statements with the highest disk reads, buffer gets, and elapsed times, all in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN SQL_ID FORMAT A15
|
||||||
|
COLUMN DISK_READS_MB FORMAT 99999.99
|
||||||
|
COLUMN BUFFER_GETS_MB FORMAT 999999.99
|
||||||
|
COLUMN ELAPSED_TIME_SEC FORMAT 99999.99
|
||||||
|
COLUMN SQL_TEXT FORMAT A50
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
SQL_ID,
|
||||||
|
ROUND(DISK_READS / 1024 / 1024, 2) AS DISK_READS_MB,
|
||||||
|
ROUND(BUFFER_GETS / 1024 / 1024, 2) AS BUFFER_GETS_MB,
|
||||||
|
ROUND(ELAPSED_TIME / 1000000, 2) AS ELAPSED_TIME_SEC,
|
||||||
|
SQL_TEXT
|
||||||
|
FROM
|
||||||
|
V\\\$SQL
|
||||||
|
WHERE
|
||||||
|
DISK_READS > 100
|
||||||
|
ORDER BY
|
||||||
|
DISK_READS DESC FETCH FIRST 10 ROWS ONLY;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
110
src/scripts/sga_diagnostics.sh
Executable file
110
src/scripts/sga_diagnostics.sh
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Overall SGA Usage
|
||||||
|
echo "=== Overall SGA Usage ==="
|
||||||
|
echo "This query shows the sizes of all major SGA components (e.g., buffer cache, shared pool, redo log) in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN NAME FORMAT A40
|
||||||
|
COLUMN VALUE_MB FORMAT 999999999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
NAME,
|
||||||
|
ROUND(BYTES / 1024 / 1024, 2) AS VALUE_MB
|
||||||
|
FROM
|
||||||
|
V\\\$SGAINFO;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Shared Pool Usage
|
||||||
|
echo "=== Shared Pool Usage ==="
|
||||||
|
echo "This query provides details on the shared pool memory usage (session memory, UGA, shared pool) in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN NAME FORMAT A40
|
||||||
|
COLUMN VALUE_MB FORMAT 9999999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
NAME,
|
||||||
|
ROUND(VALUE / 1024 / 1024, 2) AS VALUE_MB
|
||||||
|
FROM
|
||||||
|
V\\\$SYSSTAT
|
||||||
|
WHERE
|
||||||
|
NAME LIKE 'session%memory%'
|
||||||
|
OR NAME LIKE 'session uga memory%'
|
||||||
|
OR NAME LIKE 'shared pool%';
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Buffer Cache Statistics
|
||||||
|
echo "=== Buffer Cache Statistics ==="
|
||||||
|
echo "This query shows buffer cache usage and performance metrics, including logical and physical reads."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN NAME FORMAT A40
|
||||||
|
COLUMN VALUE FORMAT 9999999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
NAME,
|
||||||
|
ROUND(VALUE / 1024 / 1024, 2) AS VALUE_MB
|
||||||
|
FROM
|
||||||
|
V\\\$SYSSTAT
|
||||||
|
WHERE
|
||||||
|
NAME LIKE 'physical reads%'
|
||||||
|
OR NAME LIKE 'buffer%'
|
||||||
|
OR NAME LIKE 'cache%';
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Library Cache Usage
|
||||||
|
echo "=== Library Cache Usage ==="
|
||||||
|
echo "This query analyzes memory usage in the library cache, focusing on SQL and PL/SQL execution and reload rates."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN NAMESPACE FORMAT A25
|
||||||
|
COLUMN GETS FORMAT 999999999
|
||||||
|
COLUMN PINS FORMAT 999999999
|
||||||
|
COLUMN RELOADS FORMAT 999999999
|
||||||
|
COLUMN PIN_HIT_RATIO FORMAT 999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
NAMESPACE,
|
||||||
|
ROUND(GETS / 1024 / 1024, 2) AS GETS_MB,
|
||||||
|
ROUND(PINS / 1024 / 1024, 2) AS PINS_MB,
|
||||||
|
ROUND(RELOADS / 1024 / 1024, 2) AS RELOADS_MB,
|
||||||
|
ROUND((PINS - RELOADS) / DECODE(PINS, 0, 1, PINS) * 100, 2) AS PIN_HIT_RATIO
|
||||||
|
FROM
|
||||||
|
V\\\$LIBRARYCACHE
|
||||||
|
ORDER BY
|
||||||
|
PINS DESC;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
# Top SQL Area Memory Consumers
|
||||||
|
echo "=== Top SQL Area Memory Consumers ==="
|
||||||
|
echo "This query lists SQL statements that consume the most memory in the shared pool, with disk reads and buffer gets in MB."
|
||||||
|
su - oracle -s /bin/bash -c "
|
||||||
|
sqlplus -s / as sysdba <<EOF
|
||||||
|
SET LINESIZE 200
|
||||||
|
COLUMN SQL_TEXT FORMAT A80
|
||||||
|
COLUMN PARSE_CALLS FORMAT 9999999
|
||||||
|
COLUMN DISK_READS_MB FORMAT 9999999.99
|
||||||
|
COLUMN BUFFER_GETS_MB FORMAT 9999999.99
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
SQL_TEXT,
|
||||||
|
PARSE_CALLS,
|
||||||
|
ROUND(DISK_READS / 1024 / 1024, 2) AS DISK_READS_MB,
|
||||||
|
ROUND(BUFFER_GETS / 1024 / 1024, 2) AS BUFFER_GETS_MB
|
||||||
|
FROM
|
||||||
|
V\\\$SQLAREA
|
||||||
|
WHERE
|
||||||
|
BUFFER_GETS > 10000
|
||||||
|
ORDER BY
|
||||||
|
BUFFER_GETS DESC FETCH FIRST 10 ROWS ONLY;
|
||||||
|
EOF
|
||||||
|
"
|
||||||
@ -11,12 +11,42 @@ chown oracle $OUTPUT_FILE
|
|||||||
su - oracle -s /bin/bash -c "
|
su - oracle -s /bin/bash -c "
|
||||||
sqlplus -s / as sysdba <<EOF >> \"$OUTPUT_FILE\"
|
sqlplus -s / as sysdba <<EOF >> \"$OUTPUT_FILE\"
|
||||||
whenever sqlerror exit sql.sqlcode;
|
whenever sqlerror exit sql.sqlcode;
|
||||||
set echo on
|
|
||||||
set heading on
|
|
||||||
set linesize 150
|
|
||||||
set pagesize 100
|
|
||||||
|
|
||||||
show parameters;
|
-- Set SQL*Plus Formatting
|
||||||
|
SET LINESIZE 200
|
||||||
|
SET PAGESIZE 50
|
||||||
|
COLUMN parameter_name FORMAT A35
|
||||||
|
COLUMN current_value FORMAT A25
|
||||||
|
COLUMN is_default FORMAT A12
|
||||||
|
COLUMN is_sys_modifiable FORMAT A18
|
||||||
|
COLUMN description FORMAT A80
|
||||||
|
|
||||||
|
-- SQL Query for Important Parameters
|
||||||
|
SELECT
|
||||||
|
name AS parameter_name,
|
||||||
|
value AS current_value,
|
||||||
|
isdefault AS is_default,
|
||||||
|
issys_modifiable AS is_sys_modifiable,
|
||||||
|
description
|
||||||
|
FROM
|
||||||
|
v\\\$parameter
|
||||||
|
WHERE
|
||||||
|
name IN (
|
||||||
|
-- Memory Management
|
||||||
|
'sga_target', 'sga_max_size', 'pga_aggregate_target', 'memory_target',
|
||||||
|
'memory_max_target', 'db_cache_size', 'shared_pool_size', 'large_pool_size',
|
||||||
|
'log_buffer',
|
||||||
|
-- Sessions and Processes
|
||||||
|
'sessions', 'processes', 'transactions',
|
||||||
|
-- Cursors
|
||||||
|
'open_cursors', 'session_cached_cursors', 'cursor_sharing',
|
||||||
|
-- Redo and Logs
|
||||||
|
'log_checkpoint_interval', 'log_checkpoint_timeout', 'log_buffer',
|
||||||
|
-- Other Important Performance Parameters
|
||||||
|
'db_block_size', 'optimizer_mode', 'parallel_max_servers'
|
||||||
|
)
|
||||||
|
ORDER BY name;
|
||||||
|
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user