Skip to content

Instantly share code, notes, and snippets.

@haballan
Last active October 19, 2022 16:11
Show Gist options
  • Save haballan/ff4bc7acbef530799a980a87becb65e8 to your computer and use it in GitHub Desktop.
Save haballan/ff4bc7acbef530799a980a87becb65e8 to your computer and use it in GitHub Desktop.
This shell script collect the main configuration baseline data for Linux OS and Oracle databases http://dba-tips.blogspot.com/2016/12/configuration-baseline-script-for-linux.html
# #######################################################################################################################
# Ver [3.4]
# CONFIGURATION BASELINE COLLECTOR SCRIPT FOR ORACLE DATABASE & LINUX OS
# THIS SCRIPT WILL WRITE FOUR LOG FILES:
# - ONE FOR DATABASE CONFIGURATIONS [One log for EACH database].
# - ONE CONTAINS CREATION/GRANTED PRIVILEGES DDL STATEMENTS FOR ALL DB USERS [One log for EACH database].
# - ONE FOR CONTROLFILE BACKUP TO TRACE [One log for EACH database].
# - ONE FOR OS CONFIGURATIONS.
#
# FEATURES:
# ^^^^^^^^
# - DATABASE Configuration Baseline: [For each database]
# - Gather Instances & Database general info.
# - Gather NON-DEFAULT Intialization Parameters.
# - Gather DATABASE ENABLED FEATURES.
# - Gather DATABASE FEATURES USAGE HISTORY.
# - Gather DATABASE SETTINGS [Default tablespaces, Characterset, ...]
# - Gather SERVICES details.
# - Gather CLUSTERWARE INTERCONNECT details.
# - Gather PATHCING history.
# - Gather DATABASE LINKS.
# - Gather DIRECTORIES info.
# - Gather ACLs.
# - Gather AUDIT settings.
# - Gather USERS AND PROFILES details.
# - Gather NUMBER OF OBJECTS in each schema.
# - Gather the SIZE of each schema.
# - Gather the biggest 100 objects [DB wide].
# - Gather PRIVILEGED USERS details.
# - Gather DATABASE PHYSICAL STRUCTURE information:
# - CONTROLFILES.
# - REDOLOG FILES AND GROUPS.
# - TABLESPACES AND DATAFILES [+Utilization].
# - ASM DISK GROUPS AND ASM FILES [+Utilization].
# - FLASH RECOVERY AREA DETAILS [+Utilization].
# - Gather RMAN NON-DEFAULT CONFIGURATIONS.
# - Gather ACTVIE INCIDENTS information.
# - Gather OUTSTANDING BUILT-IN ALERTS.
# - Gather SCHEDULED JOBS details.
# - Gather AUTOTASK MAINTENANCE WINDOW details.
# - Gather ADVISORS STATUS.
# - Gather HARDWARE STATISTICS details.
# - Gather RECYCLEBIN information.
# - Gather FLASHBACK RESTORE POINTS details.
# - Gather FORIEGN KEY COLUMNS HAVING NO INDEXES information.
# - Gather DISABLED CONSTRAINTS details.
# - Gather MONITORED INDEXES details.
# - Gather COMPRESSED TABLES details.
# - Gather PARTITIONED TABLES details.
# - Gather BLOCK CHANGE TRACKING details.
# - Gather DB USERS CREATION/GRANTED PRIVILEGES DDL STATEMENT.
#
# - OPERATING SYSTEM Configuration Baseline:
# - Gather RUNNING DATABASES & LISTENERS names.
# - Gather LISTENERS STATUS details.
# - Gather SERVER NAME AND OS/KERNEL VERSION information.
# - Gather BOOT CONFIGURATIONS.
# - Gather CLUSTERWARE CONFIGURATIONS.
# - Gather ORACLE FILES details:
# - oratab
# - listener.ora
# - tnsnames.ora
# - sqlnet.ora
# - Gather INSTALLED OPATCH PATCHES details.
# - Gather FILESYSTEM details.
# - Gather FILSYSTEM configurations.
# - LOCAL FILESYSTEM.
# - NFS SHARES.
# - RAW DEVICES.
# - MULTIPATH CONFIGURATIONS.
# - ORACLE ASM CONFIGURATIONS.
# - Gather USERS AND GROUPS details.
# - Gather ACCOUNTS SETTINGS details.
# - Gather USERS RESOURCES LIMITS details.
# - Gather ORACLE USER CRONTAB JOBS details.
# - Gather ORACLE USER PROFILE.
# - Gather GENERIC/bashrc PROFILE.
# - Gather SECURITY CONFIGURATIONS:
# - FIREWALL RULES. [hashed]
# - PAM configurations.
# - LOGINS default configurations.
# - SELINUX configurations.
# - INTRO MESSAGE.
# - Gather SERVICES CONFIGURATIONS.
# - Gather KERNEL PARAMETERS SETTINGS.
# - Gather NETWORK CONFIGURATIONS:
# - GENERAL NETWORK SETTINGS.
# - DNS SETTINGS.
# - NICS CONFIGURATIONS.
# - NICS BONDING ALIASES.
# - LOCAL/ALLOWED/DENIED HOSTS SETTINGS.
# - Gather TIME AND DATE CONFIGURATIONS:
# - LOCAL TIME CONFIGURATIONS.
# - NTP STATUS & SETTINGS.
# - Gather LOGGING SETTINGS:
# - SYSLOG SETTINGS.
# - KEEP LOG SETTINGS.
# - LOG ROTATE SETTINGS.
# - Gather HARDWARE INFORMATION:
# - ALL ATTCHED HARDWARES.
# - ATTCHED PCI DEVICES.
# - CPU details.
# - MEMORY details.
# - Gather INSTALLED PACKAGES information.
#
# ^^^^^^^^
# CAUTION:
# ^^^^^^^^
# THIS SCRIPT MAY CAUSE A SLIGHT PERFORMANCE OVERHEAD WHEN IT RUNS,
# IT'S RECOMMENDED TO RUN IT DURING NON PEAK HOURS.
#
# # # #
# Author: Mahmmoud ADEL # # # # ###
# # # # # #
#
# Created: 22-11-16
# Modifications:
# 13-12-16 Added the biggest 100 objects. "Advised by: Farrukh Salman"
# 23-12-16 New feature added to gather clusterware configurations
# 27-12-16 New feature added to gather Oracle Restart configurations
# 17-05-17 Adjusted the Display settings (PAGES/LINESIZE)
# 13-08-17 Added SCAN/SCAN Listeners details.
# 07-09-17 Added OBJECTS WITH NON-DEFAULT DEGREE OF PARALLELISM.
# "Query quoted from Tanel Poder blog: blog.tanelpoder.com"
# 14-12-17 Gather DB USERS CREATION/GRANTED PRIVILEGES DDL STATEMENT.
# 09-01-18 Workaround for df command bug "`/root/.gvfs': Permission denied"
# 13-11-18 Added view of routing table info.
# 06-01-21 Enable HTML format for DATABASE CONFIGURATION report.
# 26-05-21 Added the display of all disks connect to the host.
# 18-11-21 Removed the columns that are not present in 12c+ DB versions.
# 03-10-22 Added NON-VALIDATED constraints which the Optimizer can ignore their associated indexes.
#
#
#
#
#
#
# #######################################################################################################################
# Provide your EMAIL in below line:
EMAIL="youremail@yourcompany.com"
SCRIPT_NAME="CONFIGURATION_BASELINE.sh"
SRV_NAME=`uname -n`
# ###############################
# ENABLE/DISABLE OPTIONS SECTION:
# ###############################
MAIL_CONFBASE=Y # Send Configuration Baseline by Email Option: [Y|N]
HTMLENABLE=Y # Enable HTML Output Format
DB_CONFBASE_ONLY=N # Collect configuration baseline for DATABASES ONLY | DON'T collect OS baseline: [Y|N]
COLLECT_DBUSERS_DDL=Y # Collect DDL Creation Statements + Granted Privileges & Roles for ALL DB Users: [Y|N]
CLUSTER_CHECK=Y # CHECK CLUSTERWARE CONFIGURATIONS:
LINESIZE=156 # LINESIZE in SQLPLUS
# Check if MAIL_LIST parameter was set:
case ${EMAIL} in
"youremail@yourcompany.com")
echo ""
echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
echo "The Configuration Baseline will be saved in the current directory but will NOT be sent by E-mail."
echo "In order to receive the report by email, please EDIT line# 140 by replacing youremail@yourcompany.com with your E-mail address."
echo ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "
# Disable HTML format:
export HTMLENABLE=N
esac
case ${DB_CONFBASE_ONLY} in
y|Y|yes|YES|Yes)
echo ""
echo -e "\033[33;5mThe Configuration Baseline is getting collected for DATABASES ONLY...\033[0m"
echo "" ;;
*)
echo ""
echo -e "\033[33;5mThe Configuration Baseline is getting collected...\033[0m"
echo "" ;;
esac
export MAIL_LIST="${EMAIL}"
# #######################################
# Excluded INSTANCES:
# #######################################
# Here you can mention the instances the script will IGNORE and will NOT run against:
# Use pipe "|" as a separator between each instance name.
# e.g. Excluding: -MGMTDB, ASM instances:
EXL_DB="\-MGMTDB|ASM|APX" #Excluded INSTANCES [Will not get reported offline].
# ######################################
# Check the number of running instances:
# ######################################
INS_COUNT=$( ps -ef|grep pmon|grep -v grep|egrep -v ${EXL_DB}|wc -l )
# #########################
# Setting ORACLE_SID:
# #########################
for ORACLE_SID in $( ps -ef|grep pmon|grep -v grep|egrep -v ${EXL_DB}|awk '{print $NF}'|sed -e 's/ora_pmon_//g'|grep -v sed|grep -v "s///g" )
do
export ORACLE_SID
# #########################
# Getting ORACLE_HOME
# #########################
ORA_USER=`ps -ef|grep ${ORACLE_SID}|grep pmon|grep -v grep|egrep -v ${EXL_DB}|awk '{print $1}'|tail -1`
USR_ORA_HOME=`grep ${ORA_USER} /etc/passwd| cut -f6 -d ':'|tail -1`
# SETTING ORATAB:
if [ -f /etc/oratab ]
then
ORATAB=/etc/oratab
export ORATAB
## If OS is Solaris:
elif [ -f /var/opt/oracle/oratab ]
then
ORATAB=/var/opt/oracle/oratab
export ORATAB
fi
# ATTEMPT1: Get ORACLE_HOME using pwdx command:
export PGREP=`which pgrep`
export PWDX=`which pwdx`
if [[ -x ${PGREP} ]] && [[ -x ${PWDX} ]]
then
PMON_PID=`pgrep -lf _pmon_${ORACLE_SID}|awk '{print $1}'`
export PMON_PID
ORACLE_HOME=`pwdx ${PMON_PID} 2>/dev/null|awk '{print $NF}'|sed -e 's/\/dbs//g'`
export ORACLE_HOME
fi
# ATTEMPT2: If ORACLE_HOME not found get it from oratab file:
if [ ! -f ${ORACLE_HOME}/bin/sqlplus ]
then
## If OS is Linux:
if [ -f /etc/oratab ]
then
ORATAB=/etc/oratab
ORACLE_HOME=`grep -v '^\#' $ORATAB | grep -v '^$'| grep -i "^${ORACLE_SID}:" | perl -lpe'$_ = reverse' | cut -f3 | perl -lpe'$_ = reverse' |cut -f2 -d':'`
export ORACLE_HOME
## If OS is Solaris:
elif [ -f /var/opt/oracle/oratab ]
then
ORATAB=/var/opt/oracle/oratab
ORACLE_HOME=`grep -v '^\#' $ORATAB | grep -v '^$'| grep -i "^${ORACLE_SID}:" | perl -lpe'$_ = reverse' | cut -f3 | perl -lpe'$_ = reverse' |cut -f2 -d':'`
export ORACLE_HOME
fi
#echo "ORACLE_HOME from oratab is ${ORACLE_HOME}"
fi
# ATTEMPT3: If ORACLE_HOME is still not found, search for the environment variable: [Less accurate]
if [ ! -f ${ORACLE_HOME}/bin/sqlplus ]
then
ORACLE_HOME=`env|grep -i ORACLE_HOME|sed -e 's/ORACLE_HOME=//g'`
export ORACLE_HOME
#echo "ORACLE_HOME from environment is ${ORACLE_HOME}"
fi
# ATTEMPT4: If ORACLE_HOME is not found in the environment search user's profile: [Less accurate]
if [ ! -f ${ORACLE_HOME}/bin/sqlplus ]
then
ORACLE_HOME=`grep -h 'ORACLE_HOME=\/' $USR_ORA_HOME/.bash_profile $USR_ORA_HOME/.*profile | perl -lpe'$_ = reverse' |cut -f1 -d'=' | perl -lpe'$_ = reverse'|tail -1`
export ORACLE_HOME
#echo "ORACLE_HOME from User Profile is ${ORACLE_HOME}"
fi
# ATTEMPT5: If ORACLE_HOME is still not found, search for orapipe: [Least accurate]
if [ ! -f ${ORACLE_HOME}/bin/sqlplus ]
then
if [ -x /usr/bin/locate ]
then
ORACLE_HOME=`locate -i orapipe|head -1|sed -e 's/\/bin\/orapipe//g'`
export ORACLE_HOME
fi
#echo "ORACLE_HOME from orapipe search is ${ORACLE_HOME}"
fi
# TERMINATE: If all above attempts failed to get ORACLE_HOME location, EXIT the script:
if [ ! -f ${ORACLE_HOME}/bin/sqlplus ]
then
echo "Please export ORACLE_HOME variable in your .bash_profile file under oracle user home directory in order to get this script to run properly"
echo "e.g."
echo "export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1"
exit
fi
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib
# #########################
# Variables:
# #########################
export LOGDATE=`date +%d-%b-%y`
export PATH=$PATH:${ORACLE_HOME}/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export LOG_DIR=`pwd`
if [ ! -d ${LOG_DIR} ]
then
export LOG_DIR=/tmp
fi
export DB_BASELINE=${LOG_DIR}/${ORACLE_SID}_ConfigurationBaseline_${LOGDATE}.log
export OS_BASELINE=${LOG_DIR}/${SRV_NAME}_ConfigurationBaseline_${LOGDATE}.log
# Neutralize login.sql file:
# #########################
# Existance of login.sql file under current working directory eliminates many functions during the execution of this script:
if [ -f ./login.sql ]
then
mv ./login.sql ./login.sql_NeutralizedBy${SCRIPT_NAME}
fi
if [ -f ${USR_ORA_HOME}/login.sql ]
then
mv ${USR_ORA_HOME}/login.sql ${USR_ORA_HOME}/login.sql_NeutralizedBy${SCRIPT_NAME}
fi
# ########################
# Getting ORACLE_BASE:
# ########################
# Get ORACLE_BASE from user's profile if it EMPTY:
if [ ! -d "${ORACLE_BASE}" ]
then
ORACLE_BASE=`cat ${ORACLE_HOME}/install/envVars.properties|grep ^ORACLE_BASE|tail -1|awk '{print $NF}'|sed -e 's/ORACLE_BASE=//g'`
export ORACLE_BASE
fi
if [ ! -d "${ORACLE_BASE}" ]
then
ORACLE_BASE=`grep -h 'ORACLE_BASE=\/' ${USR_ORA_HOME}/.bash* ${USR_ORA_HOME}/.*profile | perl -lpe'$_ = reverse' |cut -f1 -d'=' | perl -lpe'$_ = reverse'|tail -1`
export ORACLE_BASE
fi
# #########################
# Getting DB_NAME:
# #########################
DB_NAME_RAW=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" <<EOF
set pages 0 feedback off lines 1000;
prompt
SELECT name from v\$database;
exit;
EOF
)
# Getting DB_NAME in Uppercase & Lowercase:
DB_NAME_UPPER=`echo ${DB_NAME_RAW}| perl -lpe'$_ = reverse' |awk '{print $1}'|perl -lpe'$_ = reverse'`
DB_NAME_LOWER=$( echo "${DB_NAME_UPPER}" | tr -s '[:upper:]' '[:lower:]' )
export DB_NAME_UPPER
export DB_NAME_LOWER
# #########################
# Getting DB_UNQ_NAME:
# #########################
VAL121=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" <<EOF
set pages 0 feedback off;
prompt
select value from v\$parameter where name='db_unique_name';
exit;
EOF
)
# Getting DB_NAME in Uppercase & Lowercase:
DB_UNQ_NAME=`echo ${VAL121}| perl -lpe'$_ = reverse' |awk '{print $1}'|perl -lpe'$_ = reverse'`
export DB_UNQ_NAME
# In case DB_UNQ_NAME variable is empty then use DB_NAME instead:
case ${DB_UNQ_NAME} in
'') DB_UNQ_NAME=${DB_NAME}; export DB_UNQ_NAME;;
esac
if [ -d ${ORACLE_BASE}/diag/rdbms/${DB_NAME_UPPER} ]
then
DB_NAME=${DB_NAME_UPPER}
fi
if [ -d ${ORACLE_BASE}/diag/rdbms/${DB_NAME_LOWER} ]
then
DB_NAME=${DB_NAME_LOWER}
fi
if [ -d ${ORACLE_BASE}/diag/rdbms/${DB_UNQ_NAME} ]
then
DB_NAME=${DB_UNQ_NAME}
fi
export DB_NAME
# ###################
# Checking DB Version:
# ###################
VAL311=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" <<EOF
set pages 0 feedback off;
prompt
select version from v\$instance;
exit;
EOF
)
DB_VER=`echo ${VAL311}|perl -lpe'$_ = reverse' |awk '{print $1}'|perl -lpe'$_ = reverse'|cut -f1 -d '.'`
# #####################
# Getting DB Block Size:
# #####################
VAL312=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" <<EOF
set pages 0 feedback off;
prompt
select value from v\$parameter where name='db_block_size';
exit;
EOF
)
blksize=`echo ${VAL312}|perl -lpe'$_ = reverse' |awk '{print $1}'|perl -lpe'$_ = reverse'|cut -f1 -d '.'`
# #####################
# Getting DB ROLE:
# #####################
VAL302=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" <<EOF
set pages 0 feedback off;
prompt
select DATABASE_ROLE from v\$database;
exit;
EOF
)
DB_ROLE=`echo ${VAL302}|perl -lpe'$_ = reverse' |awk '{print $1}'|perl -lpe'$_ = reverse'|cut -f1 -d '.'`
case ${DB_ROLE} in
PRIMARY) DB_ROLE_ID=0;;
*) DB_ROLE_ID=1;;
esac
# #########################
# HTML Preparation:
# #########################
cat /dev/null > ${DB_BASELINE}
export LOGFILE=${DB_BASELINE}
case ${HTMLENABLE} in
y|Y|yes|YES|Yes|ON|On|on)
if [ -x /usr/sbin/sendmail ]
then
export SENDMAIL="/usr/sbin/sendmail -t"
export MAILEXEC="echo #"
export HASHHTML=""
export HASHNONHTML="--"
export HASHHTMLOS=""
export HASHNOHTMLOS="echo #"
SENDMAILARGS=$(
echo "To: ${EMAIL};"
echo "Subject: ${MSGSUBJECT} ;"
echo "Content-Type: text/html;"
echo "MIME-Version: 1.0;"
cat ${LOGFILE}
)
export SENDMAILARGS
else
export SENDMAIL="echo #"
export MAILEXEC="mail -s"
export HASHHTML="--"
export HASHNONHTML=""
export HASHHTMLOS="echo #"
export HASHNOHTMLOS=""
fi
;;
*)
export SENDMAIL="echo #"
export HASHHTML="--"
export HASHNONHTML=""
export HASHHTMLOS="echo #"
export HASHNOHTMLOS=""
export MAILEXEC="mail -s"
;;
esac
# ############################################
# Populating Database Configuration Baseline:
# ############################################
if [ ${INS_COUNT} -gt 0 ]
then
VAL611=$(${ORACLE_HOME}/bin/sqlplus -S "/ as sysdba" << EOF
set linesize ${LINESIZE} pages 300
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
spool ${DB_BASELINE}
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='40%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CONFIGURATION BASELINE FOR DATABASE: ${ORACLE_SID} [Collected on: ${LOGDATE}]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT #################################### ########
${HASHNONHTML} PROMPT CONFIGURATION BASELINE FOR DATABASE: ${ORACLE_SID} [COLLECTED ON: ${LOGDATE}]
${HASHNONHTML} PROMPT #################################### ########
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT Database General Information:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT Database General Information:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT INSTANCE INFO:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
PROMPT
${HASHNONHTML} PROMPT INSTANCE INFO:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^
col INST_ID for 9999999
col inst_name for a20
col host_name for a30
col BLOCKED for a7
col STARTUP_TIME for a19
select INST_ID,instance_name INS_NAME,STATUS,DATABASE_STATUS DB_STATUS,VERSION,INSTANCE_ROLE,LOGINS,BLOCKED,to_char(STARTUP_TIME,'DD-MON-YY HH24:MI:SS') STARTUP_TIME from gv\$instance;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATABASE INFO:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATABASE INFO:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^
col name for a8
col DB_UNIQUE_NAME for a14
col FLASHBACK for a9
col CURRENT_SCN for 9999999999999999999
col "LOG_MODE | FORCE" for a18
col "PLATFORM_NAME | ID" for a23
col created for a9
col RESETLOGS_TIME for a15
select DBID,NAME, DB_UNIQUE_NAME, DATABASE_ROLE, PROTECTION_MODE, to_char(CREATED,'DD-MON-YY') CREATED, PLATFORM_NAME||' | '||PLATFORM_ID "PLATFORM_NAME | ID", LOG_MODE||' | '||FORCE_LOGGING "LOG_MODE | FORCE", FLASHBACK_ON FLASHBACK,OPEN_MODE, LAST_OPEN_INCARNATION# LAST_INCR#, to_char(RESETLOGS_TIME,'DD-MON-YY HH24:MI') RESETLOGS_TIME,CURRENT_SCN from v\$DATABASE;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT INSTANCE NON-DEFAULT PARAMETERS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT INSTANCE NON-DEFAULT PARAMETERS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col INST_ID for 9999999
col "PARAMETER_VALUE" for a130
select INST_ID,NAME||'='''||VALUE||'''' "PARAMETER_VALUE"
from gv\$parameter
where ISDEFAULT='FALSE'
order by INST_ID,NAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATABASE AVAILABLE FEATURES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATABASE AVAILABLE FEATURES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^
col PARAMETER for a45
col value for a20
select * from v\$option order by 2,1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATABASE FEATURES USAGE HISTORY: [Licensing]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATABASE FEATURES USAGE HISTORY: [Licensing]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col name for a65
select NAME,FIRST_USAGE_DATE,LAST_USAGE_DATE,DETECTED_USAGES,AUX_COUNT,ERROR_COUNT from SYS.wri\$_dbu_feature_usage order by 3,2;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATABASE SETTINGS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATABASE SETTINGS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
col PROPERTY_NAME for a45
col PROPERTY_VALUE for a100
select PROPERTY_NAME,PROPERTY_VALUE from database_properties order by 1;
col PRODUCT for a60
col VERSION for a20
select PRODUCT,VERSION from product_component_version;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT BLOCK CHANGE TRACKING:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT BLOCK CHANGE TRACKING:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^
col FILENAME for a80
select * from v\$block_change_tracking;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT ALL SERVICES: [DBA_SERVICES]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ALL SERVICES: [DBA_SERVICES]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^
col SERVICE_NAME for a30
col NETWORK_NAME for a40
col FAILOVER_METHOD for a15
col FAILOVER_TYPE for a15
col ENABLED for a7
col CLB_GOAL for a8
select NAME SERVICE_NAME, NETWORK_NAME, ENABLED, FAILOVER_METHOD, FAILOVER_TYPE, GOAL, CLB_GOAL, to_char(CREATION_DATE,'DD-MON-YY') CREATED, AQ_HA_NOTIFICATIONS from dba_services order by 1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='40%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CLUSTERWARE INTERCONNECT: [GV\$CLUSTER_INTERCONNECTS]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT CLUSTERWARE INTERCONNECT: [GV\$CLUSTER_INTERCONNECTS]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^
col NAME for a45
select * from SYS.GV\$CLUSTER_INTERCONNECTS;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT PATCHING HISTORY: [DBA_REGISTRY_HISTORY]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT PATCHING HISTORY: [DBA_REGISTRY_HISTORY]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^
col ACTION_TIME for a19
col "ACTION | COMMENT" for a80
col VERSION for a12
select to_char(ACTION_TIME,'DD-MON-YY HH24:MI:SS') ACTION_TIME, ACTION||' | '||COMMENTS "ACTION | COMMENT", VERSION from dba_registry_history;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATABASE LINKS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATABASE LINKS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
col "OWNER | TARGET_USER" for a45
col DB_LINK for a24
col host for a60
col created format A19 Heading "created"
select OWNER||' | '||USERNAME "OWNER | TARGET_USER",
DB_LINK,
HOST,
to_char(CREATED,'MM/DD/YYYY HH24:MI:SS') created
from dba_db_links
order by OWNER,DB_LINK;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DIRECTORIES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DIRECTORIES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^
col owner for a30
col DIRECTORY_NAME for a35
col DIRECTORY_PATH for a85
select OWNER,DIRECTORY_NAME,DIRECTORY_PATH from DBA_DIRECTORIES;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT SECURITY SETTINGS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT SECURITY SETTINGS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT ACLS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ACLS:
${HASHNONHTML} PROMPT ^^^^^
col host for a35
col ACL for a50
col PRINCIPAL for a15
col ACLID for a35
col start_date for a19
col end_date for a19
col ACL_OWNER for a30
col PRIVILEGE for a20
col USER_NAME for a30
select * from dba_network_acls;
SELECT ACL,ACLID,PRINCIPAL,PRIVILEGE,IS_GRANT,INVERT FROM dba_network_acl_privileges;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT AUDIT SETTINGS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT AUDIT SETTINGS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT AUDITED SYSTEM PRIVILEGES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT AUDITED SYSTEM PRIVILEGES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
Select user_name,PRIVILEGE,success,failure from DBA_PRIV_AUDIT_OPTS order by 1,2;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT AUDITED OBJECT PRIVILEGES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT AUDITED OBJECT PRIVILEGES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
col "OWNER.OBJECT_NAME" for a50
select OWNER||'.'||OBJECT_NAME "OWNER.OBJECT_NAME",OBJECT_TYPE,ALT,AUD,COM,DEL,GRA,IND,INS,LOC,REN,SEL,UPD,EXE,CRE,REA,WRI,FBK from DBA_OBJ_AUDIT_OPTS order by 1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FINE GRAINED AUDITING SETTINGS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT FINE GRAINED AUDITING SETTINGS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Select POLICY_NAME,ENABLED,OBJECT_SCHEMA,OBJECT_NAME,POLICY_COLUMN from DBA_AUDIT_POLICIES;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT USERS AND PROFILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT USERS AND PROFILES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT USERS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT USERS:
${HASHNONHTML} PROMPT ^^^^^
set pages 300
col USERNAME for a21
col ACCOUNT_STATUS for a23
col EXPIRY_DATE for a11
col LOCK_DATE for a11
col PROFILE for a15
col "CREATE_DATE | PASS_LAST_CHANGE" for a28
col "DEFAULT | TEMP TABLESPACE" for a25
col hash for a16
col LIMIT for a30
select u.USERNAME,u.ACCOUNT_STATUS,u.PROFILE,u.DEFAULT_TABLESPACE||' | '||u.TEMPORARY_TABLESPACE "DEFAULT | TEMP TABLESPACE",to_char(u.EXPIRY_DATE,'DD-MON-YY')EXPIRY_DATE,to_char(u.LOCK_DATE,'DD-MON-YY')LOCK_DATE,s.PASSWORD HASH,
to_char(CTIME,'DD-MON-YY') ||' | '||to_char(s.PTIME,'DD-MON-YY') "CREATE_DATE | PASS_LAST_CHANGE"
from sys.dba_users u, sys.user\$ s where u.username=s.name order by 1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT PROFILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT PROFILES:
${HASHNONHTML} PROMPT ^^^^^^^^
col PROFILE for a35
select * from dba_profiles order by profile,resource_name;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT NUMBER OF OBJECTS IN EACH SCHEMA:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT NUMBER OF OBJECTS IN EACH SCHEMA:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col USERNAME for a25
select USERNAME,
count(decode(o.TYPE#, 2,o.OBJ#,'')) Tables,
count(decode(o.TYPE#, 1,o.OBJ#,'')) Indexes,
count(decode(o.TYPE#, 5,o.OBJ#,'')) Syns,
count(decode(o.TYPE#, 4,o.OBJ#,'')) Views,
count(decode(o.TYPE#, 6,o.OBJ#,'')) Seqs,
count(decode(o.TYPE#, 7,o.OBJ#,'')) Procs,
count(decode(o.TYPE#, 8,o.OBJ#,'')) Funcs,
count(decode(o.TYPE#, 9,o.OBJ#,'')) Pkgs,
count(decode(o.TYPE#,12,o.OBJ#,'')) Trigs,
count(decode(o.TYPE#,10,o.OBJ#,'')) Deps
from SYS.obj\$ o,
SYS.dba_users u
where u.USER_ID = o.OWNER# (+)
group by USERNAME
order by USERNAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT SCHEMAS SIZE:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT SCHEMAS SIZE:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^
set pages 999
col "size MB" format 999,999,999
col "Objects" format 999,999,999
select obj.owner "Owner"
, obj_cnt "Objects"
, decode(seg_size, NULL, 0, seg_size) "size MB"
from (select owner, count(*) obj_cnt from dba_objects group by owner) obj
, (select owner, ceil(sum(bytes)/1024/1024) seg_size
from dba_segments group by owner) seg
where obj.owner = seg.owner(+)
order by 3 desc ,2 desc, 1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT BIGGEST 100 OBJECTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT BIGGEST 100 OBJECTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
col owner for a35
col tablespace_name format a35
col segment_name for a35
Select * from (select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 SIZE_MB from dba_segments order by 5 desc)where rownum <101 order by SIZE_MB desc;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT Super Users:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^
${HASHNONHTML} PROMPT Super Users:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT SYSDBA USERS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT SYSDBA USERS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^
select * from v\$pwfile_users;
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DBA USERS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DBA USERS:
${HASHNONHTML} PROMPT ^^^^^^^^^
select GRANTEE,GRANTED_ROLE from dba_role_privs where granted_role='DBA' order by 1;
--PROMPT
--${HASHNONHTML} PROMPT USERS PERMISSIONS:
--${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT PHYSICAL STRUCTURE:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT PHYSICAL STRUCTURE:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CONTORLFILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT CONTORLFILES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^
col name for a120
select NAME from V\$CONTROLFILE;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT REDOLOG GROUPS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT REDOLOG GROUPS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^
select THREAD#,GROUP#,MEMBERS,BLOCKSIZE,BYTES/1024/1024"SIZE_MB" from v\$log order by THREAD#,GROUP#;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT REDOLOG FILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT REDOLOG FILES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^
col MEMBER for a120
select GROUP#,TYPE,MEMBER from v\$logfile order by GROUP#;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT TABLESPACES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT Tablespaces:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^
col FORCE_LOGGING for a13
col EXTENT_MANAGEMENT for a12
col ALLOCATION_TYPE for a15
col SEG_SPACE_MANAG for a15
col BIGFILE for a7
col COMPRESSED for a10
col ENCRYPTED for a4
select TABLESPACE_NAME,BLOCK_SIZE,STATUS,CONTENTS,LOGGING,FORCE_LOGGING,EXTENT_MANAGEMENT,SEGMENT_SPACE_MANAGEMENT SEG_SPACE_MANAG,BIGFILE,DEF_TAB_COMPRESSION COMPRESSED,ENCRYPTED from dba_tablespaces
order by TABLESPACE_NAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DATAFILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DATAFILES:
${HASHNONHTML} PROMPT ^^^^^^^^^
col FILE_NAME for a90
select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 SIZE_MB,MAXBYTES/1024/1024 MAXSIZE_MB,ONLINE_STATUS from dba_data_files order by 1;
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT TABLESPACES UTILIZATION:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT TABLESPACES UTILIZATION:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^
col tablespace_name for A25
col Total_MB for 999999999999
col Used_MB for 999999999999
col '%Used' for 999.99
comp sum of Total_MB on report
comp sum of Used_MB on report
comp sum of FREE_MB on report
bre on report
select tablespace_name,
(tablespace_size*$blksize)/(1024*1024) Total_MB,
(used_space*$blksize)/(1024*1024) Used_MB,
used_percent "%Used"
from dba_tablespace_usage_metrics;
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT ASM DISKGROUPS AND DISKFILES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ASM DISKGROUPS AND DISKFILES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col DISK_FILE_PATH for a40
col DISK_GROUP_NAME for a15
col DISK_FILE_NAME for a15
col DISK_FILE_PATH for a35
col fail_group for a12
col "PCT_USED%" for 999.99
SELECT NVL(a.name, '[CANDIDATE]') disk_group_name
--, b.HEADER_STATUS
, a.type REDUNDANCY
, a.state MOUNT_STAT
--, b.MOUNT_STATUS
, b.STATE
, b.path disk_file_path
, b.name disk_file_name
, b.failgroup fail_group
,b.TOTAL_MB, b.COLD_USED_MB, b.FREE_MB, b.COLD_USED_MB*100/b.TOTAL_MB "PCT_USED%"
FROM v\$asm_diskgroup a RIGHT OUTER JOIN v\$asm_disk b USING (group_number) ORDER BY a.name, b.path;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FRA_SIZE:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT FRA_SIZE:
${HASHNONHTML} PROMPT ^^^^^^^^^
col name for a25
SELECT NAME,NUMBER_OF_FILES,SPACE_LIMIT/1024/1024/1024 AS TOTAL_SIZE_GB,SPACE_USED/1024/1024/1024 SPACE_USED_GB,
SPACE_RECLAIMABLE/1024/1024/1024 SPACE_RECLAIMABLE_GB,ROUND((SPACE_USED-SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1) AS "%FULL_AFTER_CLAIM",
ROUND((SPACE_USED)/SPACE_LIMIT * 100, 1) AS "%FULL_NOW" FROM V\$RECOVERY_FILE_DEST;
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FRA_COMPONENTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT FRA_COMPONENTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
select * from v\$flash_recovery_area_usage;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT RMAN CONFIGURATIONS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT RMAN CONFIGURATIONS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^
col name for a45
col VALUE for a100
select name, value from v\$rman_configuration;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT Active Incidents:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT Active Incidents:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
col PROBLEM_KEY for a65
select PROBLEM_KEY,to_char(FIRSTINC_TIME,'DD-MON-YY HH24:mi:ss') FIRST_OCCURENCE,to_char(LASTINC_TIME,'DD-MON-YY HH24:mi:ss')
LAST_OCCURENCE FROM V\$DIAG_PROBLEM;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT OUTSTANDING ALERTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT OUTSTANDING ALERTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
select * from DBA_OUTSTANDING_ALERTS;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT SCHEDULED JOBS STATUS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT SCHEDULED JOBS STATUS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DBMS_JOBS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DBMS_JOBS:
${HASHNONHTML} PROMPT ^^^^^^^^^^
col schema_user for a30
col LAST_RUN for a25
col NEXT_RUN for a25
select job,schema_user,failures,to_char(LAST_DATE,'DD-Mon-YYYY hh24:mi:ss')LAST_RUN,to_char(NEXT_DATE,'DD-Mon-YYYY hh24:mi:ss')NEXT_RUN from dba_jobs;
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DBMS_SCHEDULER:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT
${HASHNONHTML} PROMPT DBMS_SCHEDULER:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
col OWNER for a15
col JOB_NAME for a30
col STATE for a10
col FAILURE_COUNT for 9999 heading 'Fail'
col "DURATION(d:hh:mm:ss)" for a22
col REPEAT_INTERVAL for a75
col "LAST_RUN || REPEAT_INTERVAL" for a60
col "DURATION(d:hh:mm:ss)" for a12
--col LAST_START_DATE for a40
select OWNER,JOB_NAME,ENABLED,STATE,FAILURE_COUNT,to_char(LAST_START_DATE,'DD-Mon-YYYY hh24:mi:ss')||' || '||REPEAT_INTERVAL "LAST_RUN || REPEAT_INTERVAL",
extract(day from last_run_duration) ||':'||
lpad(extract(hour from last_run_duration),2,'0')||':'||
lpad(extract(minute from last_run_duration),2,'0')||':'||
lpad(round(extract(second from last_run_duration)),2,'0') "DURATION(d:hh:mm:ss)"
from dba_scheduler_jobs where JOB_NAME NOT LIKE 'AQ$_PLSQL_NTFN%' order by ENABLED,STATE;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='35%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT AUTOTASK INTERNAL MAINTENANCE WINDOWS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT AUTOTASK INTERNAL MAINTENANCE WINDOWS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col WINDOW_NAME for a17
col NEXT_RUN for a20
col ACTIVE for a6
col OPTIMIZER_STATS for a15
col SEGMENT_ADVISOR for a15
col SQL_TUNE_ADVISOR for a16
col HEALTH_MONITOR for a15
SELECT WINDOW_NAME,TO_CHAR(WINDOW_NEXT_TIME,'DD-MM-YYYY HH24:MI:SS') NEXT_RUN,AUTOTASK_STATUS STATUS,WINDOW_ACTIVE ACTIVE,OPTIMIZER_STATS,SEGMENT_ADVISOR,SQL_TUNE_ADVISOR FROM DBA_AUTOTASK_WINDOW_CLIENTS;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='35%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FAILED DBMS_SCHEDULER JOBS IN THE LAST 24H:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT FAILED DBMS_SCHEDULER JOBS IN THE LAST 24H:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col LOG_DATE for a36
col OWNER for a15
col JOB_NAME for a35
col STATUS for a11
col RUN_DURATION for a20
col ID for 99
select INSTANCE_ID ID,JOB_NAME,OWNER,LOG_DATE,STATUS,ERROR#,RUN_DURATION from DBA_SCHEDULER_JOB_RUN_DETAILS where LOG_DATE > sysdate-1 and STATUS='FAILED' order by JOB_NAME,LOG_DATE;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT ADVISORS STATUS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT ADVISORS STATUS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^
col CLIENT_NAME for a40
col window_group for a30
col STATUS for a15
col CONSUMER_GROUP for a25
SELECT client_name, status, consumer_group, window_group FROM dba_autotask_client ORDER BY client_name;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='25%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CURRENT OS / HARDWARE STATISTICS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT CURRENT OS / HARDWARE STATISTICS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col value for 99999999999999999999999
select stat_name,value from v\$osstat;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT RESOURCE LIMIT:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT RESOURCE LIMIT:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
col INST_ID for 9999999
col RESOURCE_NAME for a40
col INITIAL_ALLOCATION for a20
col LIMIT_VALUE for a20
select * from gv\$resource_limit order by RESOURCE_NAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT RECYCLEBIN OBJECTS#
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT RECYCLEBIN OBJECTS#:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^
set feedback off
select count(*) "RECYCLED_OBJECTS#",sum(space)*$blksize/1024/1024 "TOTAL_SIZE_MB" from dba_recyclebin group by 1;
set feedback on
${HASHNONHTML} PROMPT
PROMPT [Note: Consider purging DBA_RECYCLEBIN for better performance]
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FLASHBACK RESTORE POINTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT FLASHBACK RESTORE POINTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
col TIME for a35
col RESTORE_POINT_TIME for a17
col "DATABASE_INCARNATION#" heading "DB_INCR#" for 99999999
col RESTORE_POINT_TIME for a18
select * from V\$RESTORE_POINT;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT HEALTH MONITOR:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT HEALTH MONITOR:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^
select * from V\$HM_RECOMMENDATION where time_detected > sysdate -1;
PROMPT
${HASHNONHTML} PROMPT ========================================================================================================
PROMPT
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT OBJECTS HIGHLIGHTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='3' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
${HASHNONHTML} PROMPT OBJECTS HIGHLIGHTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT INVALID OBJECTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT INVALID OBJECTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^
col SUBOBJECT_NAME for a30
col status for a15
col "OWNER.OBJECT_NAME" for a55
col LAST_DDL_TIME for a20
select OWNER||'.'||OBJECT_NAME "OWNER.OBJECT_NAME",SUBOBJECT_NAME,OBJECT_TYPE,status,to_char(LAST_DDL_TIME,'DD-MON-YY HH24:mi:ss') LAST_DDL_TIME from DBA_INVALID_OBJECTS;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT UNUSABLE INDEXES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT UNUSABLE INDEXES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
col INDEX_NAME for a50
col TABLE_NAME for a50
select owner||'.'||INDEX_NAME "INDEX_NAME",INDEX_TYPE,TABLE_OWNER||'.'||TABLE_NAME "TABLE_NAME",COMPRESSION,TABLESPACE_NAME from dba_indexes where status='UNUSABLE';
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='25%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT FOREIGN KEY COLUMNS WITHOUT INDEXES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT FOREIGN KEY COLUMNS WITHOUT INDEXES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col OWNER for a30
col TABLE_NAME for a35
col CONSTRAINT_NAME for a35
col COLUMN_NAME for a22
select acc.OWNER,
acc.TABLE_NAME,
acc.COLUMN_NAME,
acc.CONSTRAINT_NAME,
acc.POSITION,
'No Index' Problem
from dba_cons_columns acc,
dba_constraints ac
where ac.CONSTRAINT_NAME = acc.CONSTRAINT_NAME
and ac.CONSTRAINT_TYPE = 'R'
and acc.OWNER not in ('SYS','SYSTEM','DBSNMP','EXFSYS','MDSYS','ORDDATA','PERFSTAT','STDBYPERF','APEX_050000','SYSMAN','ORDSYS','OLAPSYS')
and not exists (
select 'TRUE'
from dba_ind_columns b
where b.TABLE_OWNER = acc.OWNER
and b.TABLE_NAME = acc.TABLE_NAME
and b.COLUMN_NAME = acc.COLUMN_NAME
and b.COLUMN_POSITION = acc.POSITION)
order by acc.OWNER, acc.CONSTRAINT_NAME, acc.COLUMN_NAME, acc.POSITION;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT DISABLED CONSTRAINTS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT DISABLED CONSTRAINTS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^
column OWNER format A20 Heading "OWNER"
column TABLE_NAME format A35 Heading "TABLE_NAME"
column CONSTRAINT_NAME format A35 Heading "CONSTRAINT_NAME"
column STATUS format A12 Heading "STATUS"
column type format A20 Heading "type"
select OWNER,
TABLE_NAME,
CONSTRAINT_NAME,
decode(CONSTRAINT_TYPE, 'C','Check',
'P','Primary Key',
'U','Unique',
'R','Foreign Key',
'V','With Check Option') type,
STATUS
from dba_constraints
where STATUS = 'DISABLED' and OWNER <> 'SYSTEM'
order by OWNER, TABLE_NAME, CONSTRAINT_NAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT NOT VALIDATED CONSTRAINTS: [Optimizer may ignore their associated indexes leading to BAD performance]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT NOT VALIDATED CONSTRAINTS: [Optimizer may ignore their associated indexes leading to BAD performance]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
PROMPT TO VALIDATE: ALTER TABLE <OWNER>.<TABLE_NAME> ENABLE VALIDATE CONSTRAINT <CONSTRAINT_NAME>;
column OWNER format A20 Heading "OWNER"
column TABLE_NAME format A35 Heading "TABLE_NAME"
column CONSTRAINT_NAME format A35 Heading "CONSTRAINT_NAME"
column STATUS format A12 Heading "STATUS"
column type format A20 Heading "type"
select OWNER,
TABLE_NAME,
CONSTRAINT_NAME,
decode(CONSTRAINT_TYPE, 'C','Check',
'P','Primary Key',
'U','Unique',
'R','Foreign Key',
'V','With Check Option') type,
STATUS,
VALIDATED
from dba_constraints
where VALIDATED='NOT VALIDATED'
and OWNER not in ('SYS','SYSTEM','GSMADMIN_INTERNAL','WMSYS','CTXSYS','ORDDATA','SYSMAN','OLAPSYS')
and TABLE_NAME NOT LIKE 'AQ$%'
order by OWNER, TABLE_NAME, CONSTRAINT_NAME;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT Monitored INDEXES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT Monitored INDEXES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
col Index_NAME for a40
col TABLE_NAME for a40
select io.name Index_NAME, t.name TABLE_NAME,decode(bitand(i.flags, 65536),0,'NO','YES') Monitoring,
decode(bitand(ou.flags, 1),0,'NO','YES') USED,ou.start_monitoring,ou.end_monitoring
from sys.obj$ io,sys.obj$ t,sys.ind$ i,sys.object_usage ou where i.obj# = ou.obj# and io.obj# = ou.obj# and t.obj# = i.bo# order by 1;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT COMPRESSED TABLES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT COMPRESSED TABLES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^
SELECT OWNER,TABLE_NAME,TABLESPACE_NAME,COMPRESSION,COMPRESS_FOR FROM DBA_TABLES WHERE COMPRESSION='ENABLED' AND OWNER <> 'SYSMAN' ORDER BY OWNER;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT PARTITIONED TABLES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT PARTITIONED TABLES:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^
col table_name format a40
select owner,table_name,DEF_TABLESPACE_NAME,partitioning_type,partition_count
from dba_part_tables
where owner not in ('SYS','SYSTEM','SYSMAN','SQLTXPLAIN')
order by owner;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT IOT TABLES:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT IOT TABLES:
${HASHNONHTML} PROMPT ^^^^^^^^^^
select owner,table_name,IOT_TYPE from dba_tables where IOT_TYPE='IOT' and owner not in ('SYS','EXFSYS','DBSNMP','WMSYS','CTXSYS','SYSMAN');
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='60%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT OBJECTS WITH NON-DEFAULT DEGREE OF PARALLELISM: [Query from: http://blog.tanelpoder.com/?s=index+rebuild]
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT OBJECTS WITH NON-DEFAULT DEGREE OF PARALLELISM: [Query from: http://blog.tanelpoder.com/?s=index+rebuild]
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
col DEGREE for a6
SELECT 'INDEX' OBJECT_TYPE, OWNER, INDEX_NAME, TRIM(DEGREE) DEGREE FROM DBA_INDEXES WHERE TRIM(DEGREE) > TO_CHAR(1)
UNION ALL
SELECT 'TABLE', OWNER, TABLE_NAME, TRIM(DEGREE) DEGREE FROM DBA_TABLES WHERE TRIM(DEGREE) > TO_CHAR(1)
order by 1,2;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='25%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT OBJECTS WITH NOLOGGING OPTION:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT OBJECTS WITH NOLOGGING OPTION:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SELECT 'INDEX' OBJECT_TYPE, OWNER, INDEX_NAME, LOGGING FROM DBA_INDEXES
WHERE LOGGING='NO' AND TEMPORARY='N'
AND owner not in ('SYS','XDB','DBSNMP','SQLTXPLAIN','WMSYS','SYSMAN','SYSTEM','MDSYS','EXFSYS')
UNION ALL
SELECT 'TABLE', OWNER, TABLE_NAME, LOGGING FROM DBA_TABLES
WHERE LOGGING='NO' AND TEMPORARY='N'
AND owner not in ('SYS','XDB','DBSNMP','SQLTXPLAIN','WMSYS','SYSMAN','SYSTEM','MDSYS','EXFSYS')
order by 1,2;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CORRUPTED BLOCKS:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT CORRUPTED BLOCKS:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^
select * from V\$DATABASE_BLOCK_CORRUPTION;
PROMPT
${HASHHTML} SET PAGES 1000
${HASHHTML} SET MARKUP HTML OFF SPOOL OFF
${HASHHTML} PROMPT <br> <p> <table border='3' bordercolor='#E67E22' width='20%' align='left' summary='Script output'> <tr> <th scope="col">
${HASHHTML} PROMPT CONTROLFILE TRACE BACKUP:
${HASHHTML} PROMPT </td> </tr> </table> <p> <br>
${HASHHTML} SET WRAP OFF ECHO OFF FEEDBACK OFF MARKUP HTML ON SPOOL ON HEAD '<title></title> <style type="text/css"> table { font-size: 80%; } th { background: #AF601A; } </style>' TABLE "border='2' bordercolor='#E67E22'" ENTMAP OFF
${HASHNONHTML} PROMPT CONTROLFILE TRACE BACKUP:
${HASHNONHTML} PROMPT ^^^^^^^^^^^^^^^^^^^^^^^^^
set feedback off
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '${LOG_DIR}/Controlfile_Trc_Bkp_${DB_NAME}.trc' REUSE NORESETLOGS;
spool off
exit;
EOF
)
FILE_NAME=${LOG_DIR}/Controlfile_Trc_Bkp_${DB_NAME}.trc
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${DB_BASELINE}
cat ${FILE_NAME} >> ${DB_BASELINE}
fi
case ${COLLECT_DBUSERS_DDL} in
y|Y|yes|YES|Yes)
export LOGDATE=`date +%d-%b-%y`
SPOOLLOF=${LOG_DIR}/List_Of_Users_${DB_NAME}_${LOGDATE}.log
SPOOL_FILE=${LOG_DIR}/ALL_USERS_DDL_${DB_NAME}_${LOGDATE}.log
cat /dev/null > ${SPOOLLOF}
echo "-------------------" > ${SPOOL_FILE}
echo "-- ALL DB USERS DLL: [Excluding SYSTEM USERS" >> ${SPOOL_FILE}
echo "-------------------" >> ${SPOOL_FILE}
echo "" >> ${SPOOL_FILE}
# Building a list of users --excluding system users to loop on:
VAL_LOOPUSERS=$(${ORACLE_HOME}/bin/sqlplus -s '/ as sysdba' << EOF
PROMPT
spool ${SPOOLLOF}
set pages 0
set echo off heading off feedback off
-- Excluding System users:
select username from dba_users where username not in ('ANONYMOUS','APEX_030200','APEX_PUBLIC_USER','APPQOSSYS','CTXSYS','DBSNMP','EXFSYS','MDDATA','MDSYS','MGMT_VIEW','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS','OWBSYS_AUDIT','PERFSTAT','SCOTT','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SYS','SYSMAN','SYSTEM','WMSYS','XDB') order by 1;
spool off
EOF
)
# Loop on each user with generating its DDL:
for USERNAME in `cat ${SPOOLLOF}`
do
export USERNAME
VAL_USERSDDL=$(${ORACLE_HOME}/bin/sqlplus -s '/ as sysdba' << EOF
spool ${SPOOL_FILE} APPEND
set termout off
set pages 50000
set feedback off
set trim on
set echo off
col USERNAME for a30
col account_status for a23
PROMPT
${HASHNONHTML} PROMPT --------------------------------------
${HASHNONHTML} PROMPT -- USER [${USERNAME}]
${HASHNONHTML} PROMPT --------------------------------------
PROMPT
select a.username,a.account_status,a.profile,q.tablespace_name,q.bytes/1024/1024 USED_MB, q.max_bytes "MAX_QUOTA_Bytes" from dba_users a, dba_ts_quotas q where a.username=q.username and a.username='${USERNAME}';
set pages 0
set echo off heading off feedback off
-- Generate Creation Statement:
SELECT 'CREATE USER ' || u.username ||' IDENTIFIED ' ||' BY VALUES ''' || c.password || ''' DEFAULT TABLESPACE ' || u.default_tablespace ||' TEMPORARY TABLESPACE ' || u.temporary_tablespace ||' PROFILE ' || u.profile || case when account_status= 'OPEN' then ';' else ' Account LOCK;' end "--Creation Statement"
FROM dba_users u,user$ c where u.username=c.name and u.username=upper('${USERNAME}')
UNION
-- Generate Granted Roles:
select 'GRANT '||GRANTED_ROLE||' TO '||GRANTEE|| case when ADMIN_OPTION='YES' then ' WITH ADMIN OPTION;' else ';' end "Granted Roles"
from dba_role_privs where grantee= upper('${USERNAME}')
UNION
-- Generate System Privileges:
select 'GRANT '||PRIVILEGE||' TO '||GRANTEE|| case when ADMIN_OPTION='YES' then ' WITH ADMIN OPTION;' else ';' end "Granted System Privileges"
from dba_sys_privs where grantee= upper('${USERNAME}')
UNION
-- Generate Object Privileges:
select 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||case when GRANTABLE='YES' then ' WITH GRANT OPTION;' else ';' end "Granted Object Privileges"
from DBA_TAB_PRIVS where GRANTEE=upper('${USERNAME}');
spool off
EOF
)
done
echo "" >> ${DB_BASELINE}
echo "-----------------------------" >> ${DB_BASELINE}
echo "-- ALL DB USERS DDL SAVED TO: ${SPOOL_FILE}" >> ${DB_BASELINE}
echo "-----------------------------" >> ${DB_BASELINE}
echo "" >> ${DB_BASELINE}
esac
echo "" >> ${DB_BASELINE}
#echo "" >> ${DB_BASELINE}
#echo "# REPORT BUGS to: mahmmoudadel@hotmail.com" >> ${DB_BASELINE}
#echo "# EVERY MONTH A NEW VERSION OF DBA BUNDLE GET RELEASED, DOWNLOAD IT FROM:" >> ${DB_BASELINE}
#echo "# http://dba-tips.blogspot.com/2014/02/oracle-database-administration-scripts.html" >> ${DB_BASELINE}
case ${HTMLENABLE} in
y|Y|yes|YES|Yes)
sed -i '/^--/d' ${DB_BASELINE}
sed -i '/^rows will be truncated/d' ${DB_BASELINE}
sed -i '/^truncating/d' ${DB_BASELINE}
sed -i '/STARTUP NOMOUNT/d' ${DB_BASELINE}
export LOGFILE=${DB_BASELINE}
export MSGSUBJECT="CONFIGURATION BASELINE | DATABASE [${DB_NAME}] On Server [${SRV_NAME}]"
${MAILEXEC} "${MSGSUBJECT}" ${MAIL_LIST} < ${LOGFILE}
(
echo "To: ${EMAIL};"
echo "MIME-Version: 1.0"
echo "Content-Type: text/html;"
echo "Subject: ${MSGSUBJECT}"
cat ${LOGFILE}
) | ${SENDMAIL}
#mail -s "CONFIGURATION BASELINE | DATABASE [${DB_NAME}] On Server [${SRV_NAME}]" ${MAIL_LIST} < ${DB_BASELINE};;
esac
echo "Configuration Baseline for DATABASE [${DB_NAME}]: ${DB_BASELINE}"
# End looping for databases:
fi
done
# Decide to go forward and collect OS configuration baseline or exit:
case ${DB_CONFBASE_ONLY} in
y|Y|yes|YES|Yes)
# De-Neutralize login.sql file:
# ############################
# If login.sql was renamed during the execution of the script revert it back to its original name:
if [ -f ./login.sql_NeutralizedBy${SCRIPT_NAME} ]
then
mv ./login.sql_NeutralizedBy${SCRIPT_NAME} ./login.sql
fi
if [ -f ${USR_ORA_HOME}/login.sql_NeutralizedBy${SCRIPT_NAME} ]
then
mv ${USR_ORA_HOME}/login.sql_NeutralizedBy${SCRIPT_NAME} ${USR_ORA_HOME}/login.sql
fi
exit;;
esac
# ###############################################################
# OS CONFIGURATION BASELINE
# ###############################################################
echo "# ########################################################" > ${OS_BASELINE}
echo "# OS Configuration Baseline" >> ${OS_BASELINE}
echo "# ########################################################" >> ${OS_BASELINE}
echo "[COLLECTED ON: ${LOGDATE}]" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "============ =============================================" >> ${OS_BASELINE}
echo "SERVER NAME: ${SRV_NAME}" >> ${OS_BASELINE}
echo "============ =============================================" >> ${OS_BASELINE}
FILE_NAME=/etc/oracle-release
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "OS Version:" >> ${OS_BASELINE}
echo "----------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
elif [ -f /etc/redhat-release ]
then
cat /etc/redhat-release >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "Uptime Info:" >> ${OS_BASELINE}
echo "-----------" >> ${OS_BASELINE}
uptime >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "Kernel Version:" >> ${OS_BASELINE}
echo "--------------" >> ${OS_BASELINE}
uname -a >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/oratab
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "${FILE_NAME}" >> ${OS_BASELINE}
echo "----------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/init.d/dbora
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
INST_COUNT=`/bin/ps -ef|grep pmon|grep -v grep |wc -l`
if [ ${INST_COUNT} -gt 0 ]
then
echo "RUNNING DATABASE INSTANCES:" >> ${OS_BASELINE}
echo "--------------------------" >> ${OS_BASELINE}
/bin/ps -ef|grep pmon|grep -v grep >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
LISTENER_COUNT=`/bin/ps -ef|grep tnslsnr|grep -v grep|wc -l`
if [ ${LISTENER_COUNT} -gt 0 ]
then
echo "RUNNING LISTENERS:" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
/bin/ps -ef|grep tnslsnr|grep -v grep >> ${OS_BASELINE}
#for LISTENER_NAME in $( ps -ef|grep -v grep|grep tnslsnr|awk 'NR==1{for (i=1;i<=NF;i++)if ($i=="-inherit"){n=i-1;m=NF-(i==NF)}} {for(i=1;i<=NF;i+=1+(i==n))printf "%s%s",$i,i==m?ORS:OFS}'|awk 'NR==1{for (i=1;i<=NF;i++)if ($i=="-no_crs_notify"){n=i-1;m=NF-(i==NF)}} {for(i=1;i<=NF;i+=1+(i==n))printf "%s%s",$i,i==m?ORS:OFS}'|awk '{print $NF}' )
for LISTENER_NAME in $( ps -ef|grep -v grep|grep tnslsnr|awk '{print $9}' )
do
export LISTENER_NAME
#LISTENER_HOME=`ps -ef|grep -v grep|grep tnslsnr|grep -i ${LISTENER_NAME}|awk 'NR==1{for (i=1;i<=NF;i++)if ($i=="-inherit"){n=i-1;m=NF-(i==NF)}} {for(i=1;i<=NF;i+=1+(i==n))printf "%s%s",$i,i==m?ORS:OFS}'|awk 'NR==1{for (i=1;i<=NF;i++)if ($i=="-no_crs_notify"){n=i-1;m=NF-(i==NF)}} {for(i=1;i<=NF;i+=1+(i==n))printf "%s%s",$i,i==m?ORS:OFS}'|awk '{print $(NF-1)}' |sed -e 's/\/bin\/tnslsnr//g'|grep -v sed|grep -v "s///g"|head -1`
LISTENER_HOME=`ps -ef|grep -v grep|grep tnslsnr|grep -i ${LISTENER_NAME}|awk '{print $8}' |sed -e 's/\/bin\/tnslsnr//g'|grep -v sed|grep -v "s///g"|head -1`
export LISTENER_HOME
TNS_ADMIN=${LISTENER_HOME}/network/admin; export TNS_ADMIN
# For DEBUGGING purpose:
#echo "Listener_name is: $LISTENER_NAME"
#echo "listener_home is: $LISTENER_HOME"
#echo "TNS_ADMIN is: $TNS_ADMIN"
FILE_NAME=${LISTENER_HOME}/bin/lsnrctl
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "LISTENER STATUS: [${LISTENER_NAME}]" >> ${OS_BASELINE}
echo "^^^^^^^^^^^^^^^" >> ${OS_BASELINE}
${LISTENER_HOME}/bin/lsnrctl status ${LISTENER_NAME} >> ${OS_BASELINE}
fi
done
fi
FILE_NAME=/etc/sysconfig/grub
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "Boot Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
# Hashed STARTUP configurations to be run only by root user:
#FILE_NAME=/etc/inittab
#export FILE_NAME
#if [ -f ${FILE_NAME} ]
#then
#echo "" >> ${OS_BASELINE}
#echo "Startup Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
#echo "-------------------------------------" >> ${OS_BASELINE}
#cat ${FILE_NAME} >> ${OS_BASELINE}
#fi
# ############################################
# Checking RAC/ORACLE_RESTART Services:
# ############################################
case ${CLUSTER_CHECK} in
y|Y|yes|YES|Yes)
# Check for ocssd clusterware process:
CHECK_OCSSD=`ps -ef|grep 'ocssd.bin'|grep -v grep|wc -l`
CHECK_CRSD=`ps -ef|grep 'crsd.bin'|grep -v grep|wc -l`
if [ ${CHECK_CRSD} -gt 0 ]
then
CLS_STR=crs
export CLS_STR
CLUSTER_TYPE=CLUSTERWARE
export CLUSTER_TYPE
else
CLS_STR=has
export CLS_STR
CLUSTER_TYPE=ORACLE_RESTART
export CLUSTER_TYPE
fi
if [ ${CHECK_OCSSD} -gt 0 ]
then
GRID_HOME=`ps -ef|grep 'ocssd.bin'|grep -v grep|awk '{print $NF}'|sed -e 's/\/bin\/ocssd.bin//g'|grep -v sed|grep -v "//g"|tail -1`
export GRID_HOME
if [ ! -d ${GRID_HOME} ]
then
ASM_INSTANCE_NAME=`ps -ef|grep pmon|grep -v grep|grep asm_pmon_|awk '{print $NF}'|sed -e 's/asm_pmon_//g'|grep -v sed|grep -v "s///g"|tail -1`
GRID_HOME=`dbhome ${ASM_INSTANCE_NAME}`
export GRID_HOME
fi
GRID_BASE=`cat ${GRID_HOME}/crs/install/crsconfig_params|grep ^ORACLE_BASE|tail -1|awk '{print $NF}'|sed -e 's/ORACLE_BASE=//g'`
export GRID_BASE
if [ ! -d ${GRID_BASE} ]
then
GRID_BASE=`cat ${GRID_HOME}/crs/utl/appvipcfg|grep ^ORACLE_BASE|tail -1|awk '{print $NF}'|sed -e 's/ORACLE_BASE=//g'`
export GRID_BASE
fi
if [ ! -d ${GRID_BASE} ]
then
GRID_BASE=`cat ${GRID_HOME}/install/envVars.properties|grep ^ORACLE_BASE|tail -1|awk '{print $NF}'|sed -e 's/ORACLE_BASE=//g'`
export GRID_BASE
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "${CLUSTER_TYPE} DETAILS" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=${GRID_HOME}/bin/crsctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "CLUSTER VERSION: crsctl query ${CLS_STR} softwareversion" >> ${OS_BASELINE}
echo "---------------" >> ${OS_BASELINE}
${GRID_HOME}/bin/crsctl query ${CLS_STR} softwareversion >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
if [ ${CHECK_CRSD} -gt 0 ]
then
GRID_HOME=`ps -ef|grep 'ocssd.bin'|grep -v grep|awk '{print $NF}'|sed -e 's/\/bin\/ocssd.bin//g'|grep -v sed|grep -v "//g"`
export GRID_HOME
FILE_NAME=${GRID_HOME}/bin/olsnodes
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER NAME: ${FILE_NAME} -c" >> ${OS_BASELINE}
echo "------------" >> ${OS_BASELINE}
${GRID_HOME}/bin/olsnodes -c >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "CLUSTER NODES: ${FILE_NAME} -n -s -t" >> ${OS_BASELINE}
echo "-------------" >> ${OS_BASELINE}
${GRID_HOME}/bin/olsnodes -n -s -t >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=${GRID_HOME}/bin/oifcfg
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER INTERCONNECT & PUBLIC IP NAME: oifcfg getif" >> ${OS_BASELINE}
echo "-------------------------------------" >> ${OS_BASELINE}
${GRID_HOME}/bin/oifcfg getif >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER SCAN IPs: srvctl config scan" >> ${OS_BASELINE}
echo "----------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config scan >> ${OS_BASELINE}
fi
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER VIRTUAL IP NAME: srvctl config nodeapps" >> ${OS_BASELINE}
echo "-----------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config nodeapps >> ${OS_BASELINE}
fi
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER SCAN Listeners: srvctl config scan_listener" >> ${OS_BASELINE}
echo "----------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config scan_listener >> ${OS_BASELINE}
fi
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CLUSTER SCAN Listeners status: srvctl status scan_listener" >> ${OS_BASELINE}
echo "-----------------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl status scan_listener >> ${OS_BASELINE}
fi
FILE_NAME=${GRID_HOME}/bin/ocrcheck
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "^^^^^^^^^^" >> ${OS_BASELINE}
echo "OCR DISKS:" >> ${OS_BASELINE}
echo "^^^^^^^^^^" >> ${OS_BASELINE}
${GRID_HOME}/bin/ocrcheck >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=${GRID_HOME}/bin/crsctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "^^^^^^^^^^^" >> ${OS_BASELINE}
echo "VOTE DISKS:" >> ${OS_BASELINE}
echo "^^^^^^^^^^^" >> ${OS_BASELINE}
${GRID_HOME}/bin/crsctl query css votedisk >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
fi
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "ASM CONFIGURATIONS: srvctl config asm" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config asm >> ${OS_BASELINE}
fi
FILE_NAME=${GRID_HOME}/bin/crsctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "CLUSTERWARE SERVICES: crsctl status resource" >> ${OS_BASELINE}
echo "---------------------" >> ${OS_BASELINE}
AWK=/usr/bin/awk
$AWK \
'BEGIN {printf "%-55s %-24s %-18s\n", "HA Resource", "Target", "State";
printf "%-55s %-24s %-18s\n", "-----------", "------", "-----";}' >> ${OS_BASELINE}
$GRID_HOME/bin/crsctl status resource | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$1'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-55s %-24s %-18s\n", appname, apptarget, appstate; state=0;}' >> ${OS_BASELINE}
fi
# Clustered Databases Configurations:
FILE_NAME=${ORACLE_HOME}/bin/srvctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
# Loop for the clustered configured databases:
for CLUSTER_DB in $(${ORACLE_HOME}/bin/srvctl config database)
do
export CLUSTER_DB
echo "" >> ${OS_BASELINE}
echo "^^^^^^^^^^^^^^^^^^^" >> ${OS_BASELINE}
echo "Database [${CLUSTER_DB}]" >> ${OS_BASELINE}
echo "^^^^^^^^^^^^^^^^^^^" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "DATABASE CONFIGURATIONS: srvctl config database -d ${CLUSTER_DB}" >> ${OS_BASELINE}
echo "-----------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config database -d ${CLUSTER_DB} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "DATABASE SERVICES STATUS: srvctl status service -d ${CLUSTER_DB}" >> ${OS_BASELINE}
echo "------------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl status service -d ${CLUSTER_DB} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "DATABASE SERVICES CONFIGURATIONS: srvctl config service" >> ${OS_BASELINE}
echo "--------------------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/bin/srvctl config service -d ${CLUSTER_DB} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
done
fi
FILE_NAME=${GRID_HOME}/crs/install/s_crsconfig_${SRV_NAME}_env.txt
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "CLUSTERWARE NLS_LANG CONFIGURATIONS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/oracle/ocr.loc
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "OCR DISKS LOCATION: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------" >> ${OS_BASELINE}
cat /etc/oracle/ocr.loc >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
fi
;;
esac
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "ORACLE FILES" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=${ORATAB}
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "ORATAB: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
# Oracle Network Files:
#TNS_ADMIN=${ORACLE_HOME}/network/admin
#export TNS_ADMIN
FILE_NAME=${TNS_ADMIN}/listener.ora
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "LISTENER: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=${TNS_ADMIN}/tnsnames.ora
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "TNSNAMES: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=${TNS_ADMIN}/sqlnet.ora
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "SQLNET: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
# APPLIED PATCHES DETAILS:
FILE_NAME=${ORACLE_HOME}/OPatch/opatch
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "ORACLE PATCHES DETAILS: opatch lsinventory -details" >> ${OS_BASELINE}
echo "-----------------------" >> ${OS_BASELINE}
${ORACLE_HOME}/OPatch/opatch lsinventory -details >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
# Workaround df command output bug "`/root/.gvfs': Permission denied"
if [ -f /etc/redhat-release ]
then
export DF='df -hTPx fuse.gvfs-fuse-daemon'
else
export DF='df -hT'
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "FILESYSTEM Settings" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "df -h" >> ${OS_BASELINE}
echo "------" >> ${OS_BASELINE}
/bin/${DF} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "mount Command:" >> ${OS_BASELINE}
echo "--------------" >> ${OS_BASELINE}
/bin/mount >> ${OS_BASELINE}
FILE_NAME=/etc/fstab
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "/etc/fstab" >> ${OS_BASELINE}
echo "----------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/sbin/blkid
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "ASM DISKS MOUNT AND LABELS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------------------" >> ${OS_BASELINE}
echo "NOTE: IT'S HIGHLY RECOMMENDED TO RUN THIS COMMAND AS ROOT TO GET AN ACCURATE LIST OF DISKS: /sbin/blkid |sort -k 2 -t:|grep oracleasm" >> ${OS_BASELINE}
# oracleasm listdisks | xargs oracleasm querydisk -p | grep TYPE | sort -k 2
/sbin/blkid |sort -k 2 -t:|grep oracleasm >> ${OS_BASELINE}
fi
FILE_NAME=/etc/exports
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NFS Shares: ${FILE_NAME}" >> ${OS_BASELINE}
echo "----------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/sysconfig/rawdevices
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "RAW Devices: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/multipath.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "Multipath Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/sysconfig/oracleasm
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "Oracle ASM Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/bin/lsblk
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "List of ALL Disks Connected to this Host: lsblk -fo +size" >> ${OS_BASELINE}
echo "----------------------------------------" >> ${OS_BASELINE}
/bin/lsblk -fo +size >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "USERS AND GROUPS" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "Oracle Owner Configuration:" >> ${OS_BASELINE}
echo "---------------------------" >> ${OS_BASELINE}
/usr/bin/id ${ORA_USER} >> ${OS_BASELINE}
/usr/bin/id >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "ACCOUNT Settings:" >> ${OS_BASELINE}
echo "................." >> ${OS_BASELINE}
/usr/bin/chage -l ${ORA_USER} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "RESOURCE Limits:" >> ${OS_BASELINE}
echo "................" >> ${OS_BASELINE}
ulimit -a >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "CRONTAB Jobs:" >> ${OS_BASELINE}
echo "............." >> ${OS_BASELINE}
/usr/bin/crontab -l 2>/dev/null >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "bash_profile:" >> ${OS_BASELINE}
echo "............." >> ${OS_BASELINE}
cat ~/.bash_profile >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/passwd
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "USERS Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "---------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/group
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "GROUPS Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "----------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/security/limits.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "USERS LIMITS Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "---------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/profile
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "GENERIC USERS PROFILE: ${FILE_NAME}" >> ${OS_BASELINE}
echo "----------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/bashrc
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "GENERIC BASHRC PROFILE: ${FILE_NAME}" >> ${OS_BASELINE}
echo "----------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "SECURITY Settings" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/pam.d/system-auth
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "PAM Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/login.defs
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "LOGINS DEFAULT Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
# Hashed FIREWALL configurations to be run only by root user:
#FILE_NAME=/etc/sysconfig/iptables-config
#export FILE_NAME
#if [ -f ${FILE_NAME} ]
#then
#echo "" >> ${OS_BASELINE}
#echo "FIREWALL Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
#echo "-----------------------" >> ${OS_BASELINE}
#cat ${FILE_NAME} >> ${OS_BASELINE}
#fi
#FILE_NAME=/etc/sysconfig/iptables
#export FILE_NAME
#if [ -f ${FILE_NAME} ]
#then
#echo "" >> ${OS_BASELINE}
#echo "FIREWALL RULES: ${FILE_NAME}" >> ${OS_BASELINE}
#echo "--------------" >> ${OS_BASELINE}
#cat ${FILE_NAME} >> ${OS_BASELINE}
#fi
FILE_NAME=/etc/sysconfig/selinux
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "SELINUX Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/etc/issue
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "INTRO Message Configuration: ${FILE_NAME}" >> ${OS_BASELINE}
echo "----------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "SERVICES Configurations" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
#FILE_NAME=/sbin/service
#export FILE_NAME
#if [ -f ${FILE_NAME} ]
#then
#echo "" >> ${OS_BASELINE}
#echo "RUNNING SERVICES: /sbin/service --status-all" >> ${OS_BASELINE}
#echo "-----------------" >> ${OS_BASELINE}
#/sbin/service --status-all 2>/dev/null >> ${OS_BASELINE}
#echo "" >> ${OS_BASELINE}
#fi
FILE_NAME=/sbin/chkconfig
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
if [ -f /etc/rc.d/init.d ]
then
echo "" >> ${OS_BASELINE}
echo "SERVICES Settings: chkconfig --list" >> ${OS_BASELINE}
echo "-----------------" >> ${OS_BASELINE}
/sbin/chkconfig --list|sort >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "NETWORK Settings" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/sysconfig/network
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "GENERAL NETWORK Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/resolv.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "DNS Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/sbin/ifconfig
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NICs Configurations: [ifconfig -a]" >> ${OS_BASELINE}
echo "--------------------" >> ${OS_BASELINE}
/sbin/ifconfig -a >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "Routing Table: [netstat -rn]" >> ${OS_BASELINE}
echo "--------------" >> ${OS_BASELINE}
netstat -rn >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "NICs Config Files:" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
for FILE_NAME in /etc/sysconfig/network-scripts/ifcfg-*
do
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "cat ${FILE_NAME}" >> ${OS_BASELINE}
echo "............................................." >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
done
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/modprobe.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NICs/BONDING ALIASES: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/hosts
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "${FILE_NAME} Configurations:" >> ${OS_BASELINE}
echo "---------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/hosts.allow
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "TCP WRAPPER: ALLOWED HOSTS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "---------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/hosts.deny
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "TCP WRAPPER: DENIED HOSTS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/mail/sendmail.mc
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "SMTP SERVER: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------" >> ${OS_BASELINE}
cat /etc/mail/sendmail.mc|grep SMART >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
# https://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux [datashaman]
FILE_NAME=/bin/netstat
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "Open Ports:" >> ${OS_BASELINE}
echo "^^^^^^^^^^^" >> ${OS_BASELINE}
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "TIME AND DATE Configurations" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/localtime
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "LOCAL TIME Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------------" >> ${OS_BASELINE}
tail -1 ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/sbin/chkconfig
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NTP SERVICE STATUS: chkconfig --list|grep ntp" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
/sbin/chkconfig --list|grep ntp >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/ntp.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NTP Configurations: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/sysconfig/ntpd
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "NTP Settings: ${FILE_NAME}" >> ${OS_BASELINE}
echo "------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "LOGGING Settings" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/sysconfig/syslog
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "SYSLOG Settings: ${FILE_NAME}" >> ${OS_BASELINE}
echo "---------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/sysconfig/sysstat
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "KEEP LOG Settings: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/etc/logrotate.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "ROTATE LOG Settings: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "CURRENT RESOURCES INFORMATION" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/dev/mem
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "ALL HARDWARE DETAILS: dmidecode" >> ${OS_BASELINE}
echo "---------------------" >> ${OS_BASELINE}
/usr/sbin/dmidecode >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/sbin/lspci
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "PCI DEVICES DETAILS: lspci" >> ${OS_BASELINE}
echo "-------------------" >> ${OS_BASELINE}
/sbin/lspci >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/proc/cpuinfo
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "CPU DETAILS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/proc/meminfo
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "MEMORY DETAILS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "--------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "KERNEL Settings" >> ${OS_BASELINE}
echo "==========================================================" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
FILE_NAME=/etc/sysctl.conf
export FILE_NAME
if [ -f ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "Kernel NON-DEFAULT PARAMETERS: ${FILE_NAME}" >> ${OS_BASELINE}
echo "-----------------------------" >> ${OS_BASELINE}
cat ${FILE_NAME} >> ${OS_BASELINE}
fi
FILE_NAME=/sbin/sysctl
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "ALL KERNEL PARAMETERS:" >> ${OS_BASELINE}
echo "----------------------" >> ${OS_BASELINE}
/sbin/sysctl -a 2>/dev/null >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
FILE_NAME=/bin/rpm
export FILE_NAME
if [ -x ${FILE_NAME} ]
then
echo "" >> ${OS_BASELINE}
echo "List Of ALL INSTALLED PACKAGES:" >> ${OS_BASELINE}
echo "------------------------------" >> ${OS_BASELINE}
/bin/rpm -qa|sort >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
fi
echo "" >> ${OS_BASELINE}
echo "---------------------------------" >> ${OS_BASELINE}
echo "END OF OS CONFIGURATION BASELINE." >> ${OS_BASELINE}
echo "---------------------------------" >> ${OS_BASELINE}
echo "" >> ${OS_BASELINE}
echo "# REPORT BUGS to: mahmmoudadel@hotmail.com" >> ${OS_BASELINE}
echo "# DOWNLOAD THE LATEST VERSION OF DBA BUNDLE FROM:" >> ${OS_BASELINE}
echo "# http://dba-tips.blogspot.com/2014/02/oracle-database-administration-scripts.html" >> ${OS_BASELINE}
case ${MAIL_CONFBASE} in
y|Y|yes|YES|Yes)
mail -s "CONFIGURATION BASELINE | SERVER [${SRV_NAME}]" ${MAIL_LIST} < ${OS_BASELINE};;
esac
echo "Configuration Baseline for OPERATING SYSTEM: ${OS_BASELINE}"
echo ""
# De-Neutralize login.sql file:
# ############################
# If login.sql was renamed during the execution of the script revert it back to its original name:
if [ -f ./login.sql_NeutralizedBy${SCRIPT_NAME} ]
then
mv ./login.sql_NeutralizedBy${SCRIPT_NAME} ./login.sql
fi
if [ -f ${USR_ORA_HOME}/login.sql_NeutralizedBy${SCRIPT_NAME} ]
then
mv ${USR_ORA_HOME}/login.sql_NeutralizedBy${SCRIPT_NAME} ${USR_ORA_HOME}/login.sql
fi
# #############
# END OF SCRIPT
# #############
# REPORT BUGS to: mahmmoudadel@hotmail.com
# DOWNLOAD THE LATEST VERSION OF DATABASE ADMINISTRATION BUNDLE FROM:
# http://dba-tips.blogspot.com/2014/02/oracle-database-administration-scripts.html
# DISCLAIMER: THIS SCRIPT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY. IT IS PROVIDED "AS IS".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment