From 66e20186f24eafdc87398c4792372859cc0b7401 Mon Sep 17 00:00:00 2001 From: Zulqarnain Date: Thu, 21 Nov 2024 07:43:56 -0500 Subject: [PATCH] tags improvments and SQL formatting --- src/config.json | 2 +- src/scripts/apexBots.sh | 11 +++++++---- src/scripts/apexUsage.sh | 14 ++++++++----- src/scripts/apex_mail_queue.sh | 13 ++++++++---- src/scripts/apex_smtp_settings.sh | 25 ++++++++++++++++------- src/scripts/datafileUsage.sh | 16 +++++++++++---- src/scripts/db_version_info.sh | 10 ++++++---- src/scripts/processfinder.sh | 17 +++++++++++++--- src/scripts/tablespaceUsage.sh | 15 ++++++++++---- src/scripts/topRedoSQL.sh | 33 +++++++++++++++++++++++++++---- 10 files changed, 116 insertions(+), 40 deletions(-) diff --git a/src/config.json b/src/config.json index 04a6583..c45146f 100644 --- a/src/config.json +++ b/src/config.json @@ -48,7 +48,7 @@ { "tag": "top", "type": "command", - "content": "top -b -n 1" + "content": "top -b -n 1 | head -n 27" }, { "tag": "iostat", diff --git a/src/scripts/apexBots.sh b/src/scripts/apexBots.sh index 6182eed..eeeed04 100755 --- a/src/scripts/apexBots.sh +++ b/src/scripts/apexBots.sh @@ -13,11 +13,14 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo on - set heading on + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN AGENT FORMAT A100 + COLUMN HIT_COUNT FORMAT 999999 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; diff --git a/src/scripts/apexUsage.sh b/src/scripts/apexUsage.sh index bb14feb..fdefc67 100755 --- a/src/scripts/apexUsage.sh +++ b/src/scripts/apexUsage.sh @@ -13,12 +13,16 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo on - set heading on - SET UNDERLINE '=' - set feedback off - set linesize 150 + SET ECHO ON + SET HEADING ON + SET UNDERLINE '=' + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN OWNER FORMAT A20 + COLUMN MB_USED FORMAT 9999999.99 + -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; diff --git a/src/scripts/apex_mail_queue.sh b/src/scripts/apex_mail_queue.sh index 4f9ec24..7641363 100755 --- a/src/scripts/apex_mail_queue.sh +++ b/src/scripts/apex_mail_queue.sh @@ -13,11 +13,16 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo on - set heading on + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN WORKSPACE_NAME FORMAT A30 + COLUMN TOTAL_EMAILS FORMAT 99999999 + COLUMN UNSENT_EMAILS FORMAT 99999999 + COLUMN EMAILS_WITH_ERRORS FORMAT 99999999 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; diff --git a/src/scripts/apex_smtp_settings.sh b/src/scripts/apex_smtp_settings.sh index 38d2886..e7082cc 100755 --- a/src/scripts/apex_smtp_settings.sh +++ b/src/scripts/apex_smtp_settings.sh @@ -13,11 +13,14 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo on - set heading on + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN PARAMETER_NAME FORMAT A20 + COLUMN PARAMETER_VALUE FORMAT A50 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; @@ -31,7 +34,7 @@ run_query() { DUAL UNION ALL SELECT - 'SMTP_PORT', APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_PORT') + 'SMTP_PORT', APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_HOST_PORT') FROM DUAL UNION ALL @@ -41,10 +44,18 @@ run_query() { DUAL UNION ALL SELECT - 'SMTP_AUTH_REQUIRED', APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_AUTH_REQUIRED') + 'SMTP_PASSWORD' AS PARAMETER_NAME, + CASE + WHEN APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_PASSWORD') IS NOT NULL THEN 'ABCDEFGHIJKLM' + ELSE NULL + END AS PARAMETER_VALUE + FROM + DUAL + UNION ALL + SELECT + 'SMTP_TLS_MODE', APEX_INSTANCE_ADMIN.GET_PARAMETER('SMTP_TLS_MODE') FROM DUAL; - exit; EOF " diff --git a/src/scripts/datafileUsage.sh b/src/scripts/datafileUsage.sh index 09f4fde..0813612 100755 --- a/src/scripts/datafileUsage.sh +++ b/src/scripts/datafileUsage.sh @@ -13,11 +13,19 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo off - set heading on + + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 200 + SET PAGESIZE 100 + COLUMN datafile_path FORMAT A50 + COLUMN tablespace_name FORMAT A20 + COLUMN allocated_mb FORMAT 9999999.99 + COLUMN used_mb FORMAT 9999999.99 + COLUMN free_mb FORMAT 9999999.99 + COLUMN pct_used FORMAT 999.99 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; diff --git a/src/scripts/db_version_info.sh b/src/scripts/db_version_info.sh index 67a16a4..9d84ca5 100755 --- a/src/scripts/db_version_info.sh +++ b/src/scripts/db_version_info.sh @@ -12,11 +12,13 @@ get_oracle_version() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <<'EOF' >> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo off - set heading on + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN BANNER FORMAT A80 PROMPT Oracle Database Version:; SELECT banner FROM v\$version WHERE banner LIKE 'Oracle%' AND ROWNUM = 1; diff --git a/src/scripts/processfinder.sh b/src/scripts/processfinder.sh index 25a0d02..81a150a 100755 --- a/src/scripts/processfinder.sh +++ b/src/scripts/processfinder.sh @@ -1,7 +1,7 @@ #!/bin/bash # Define the CPU usage threshold -CPU_THRESHOLD=90 +CPU_THRESHOLD=60 # File path for output OUTPUT_FILE="/tmp/findsql.tmp" @@ -24,8 +24,19 @@ if [ ${#pid[@]} -gt 0 ]; then su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <<'EOF' >> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo off - set heading on + + SET ECHO ON + SET HEADING ON + SET UNDERLINE '=' + SET FEEDBACK OFF + SET LINESIZE 200 + SET PAGESIZE 100 + COLUMN datafile_path FORMAT A50 + COLUMN tablespace_name FORMAT A20 + COLUMN allocated_mb FORMAT 9999999.99 + COLUMN used_mb FORMAT 9999999.99 + COLUMN free_mb FORMAT 9999999.99 + COLUMN pct_used FORMAT 999.99 select DISTINCT s.CLIENT_IDENTIFIER, s.schemaname, s.module, s.action, q.sql_id, q.sql_text diff --git a/src/scripts/tablespaceUsage.sh b/src/scripts/tablespaceUsage.sh index 06218e4..f41868b 100755 --- a/src/scripts/tablespaceUsage.sh +++ b/src/scripts/tablespaceUsage.sh @@ -13,11 +13,18 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo off - set heading on + + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 150 + SET PAGESIZE 100 + COLUMN tablespace_name FORMAT A25 + COLUMN allocated FORMAT 9999999.99 + COLUMN used FORMAT 9999999.99 + COLUMN free FORMAT 9999999.99 + COLUMN PCT_USED FORMAT 999.99 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; diff --git a/src/scripts/topRedoSQL.sh b/src/scripts/topRedoSQL.sh index 4f99662..35aa872 100755 --- a/src/scripts/topRedoSQL.sh +++ b/src/scripts/topRedoSQL.sh @@ -13,11 +13,18 @@ run_query() { su - oracle -s /bin/bash -c " sqlplus -s / as sysdba <> \"$OUTPUT_FILE\" whenever sqlerror exit sql.sqlcode; - set echo on - set heading on + + SET ECHO ON + SET HEADING ON SET UNDERLINE '=' - set feedback off - set linesize 150 + SET FEEDBACK OFF + SET LINESIZE 200 + SET PAGESIZE 100 + COLUMN SID FORMAT 99999 + COLUMN SERIAL# FORMAT 999999 + COLUMN SQL_TEXT FORMAT A100 + COLUMN USERNAME FORMAT A20 + COLUMN REDO_SIZE_MB FORMAT 999999.99 -- Switch to the specified container ALTER SESSION SET CONTAINER = $container_name; @@ -41,11 +48,29 @@ run_query() { V\\\$STATNAME N ON R.STATISTIC# = N.STATISTIC# WHERE N.NAME = 'redo size' + AND NVL( R.VALUE, 0 ) <> 0 AND S.LAST_CALL_ET < 7200 -- Filter sessions active within last 2 hours ORDER BY R.VALUE DESC FETCH FIRST 10 ROWS ONLY; + SELECT + Q.PARSING_SCHEMA_NAME AS USERNAME, + Q.EXECUTIONS, + Q.ROWS_PROCESSED, + Q.SQL_TEXT + FROM + V\\\$SQL Q + WHERE + Q.ROWS_PROCESSED > 10 + AND UPPER(Q.SQL_TEXT) NOT LIKE 'SELECT%' + AND Q.PARSING_USER_ID != 0 -- Ignore SYS + AND Q.COMMAND_TYPE != 47 -- Ignore PL/SQL + ORDER BY + Q.ROWS_PROCESSED DESC + FETCH FIRST 10 ROWS ONLY; + + exit; EOF "