Thursday, July 31, 2025

How to Create shell script to Start Database and Checking Table Space

 #dr_check_db_ERPGF.sh

#!/bin/bash


#run ./dr_check_db_ERPGF.sh | tee dr_ERPGF.out


echo -e "\n"

echo -e "+++++ Start Check Database Oracle EBS (ERP-GF) Date $(date +"%Y-%m-%d %H:%M:%S") +++++\n"

echo -e "\n"

echo "============================================================="

echo "== Process : Start Service (If Not Auto Start) "

echo "============================================================="



# Start the database

sqlplus / as sysdba << EOF

startup;

exit;

EOF


# Start the listener (optional, but recommended if not already running)

lsnrctl start sso1cdb

#wait


echo -e "\n"

echo -e "\n"

echo -e "**Command lsnrctl status \n"


lsnrctl status sso1cdb


echo -e "\n"

echo -e "\n"

echo -e "**Command netstat -nat | grep 1521\n"


netstat -nat | grep 1551 | grep ESTABLISHED 


cd /u03/ORCL/db/19.0.0

. ./ORCL_erpapp.env



# Oracle connection details (replace with your actual values)

DB_USER="apps"

DB_PASSWORD="apps" # Consider using environment variables or secure methods for passwords

ORACLE_SID="ORCL" # e.g., ORCL, XE



# Query the database name from V$DATABASE

HOST_NAME=$(sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}" <<EOF

SET PAGESIZE 0 FEEDBACK OFF HEADING OFF VERIFY OFF

SELECT HOST_NAME FROM V\$INSTANCE;

EXIT;

EOF

)


DB_NAME=$(sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}" <<EOF

SET PAGESIZE 0 FEEDBACK OFF HEADING OFF VERIFY OFF

SELECT NAME FROM V\$DATABASE;

EXIT;

EOF

)


echo -e "\n"

echo -e "\n"

echo -e "\n"

echo "Host Name: $HOST_NAME"

echo -e "Oracle Database Name: $DB_NAME\n"

echo -e "\n"

echo "============================================================="

echo "== Process : Check Database & Service Status "

echo -e "=============================================================\n"




DB_STATUS=$(echo "SET LINESIZE 1000;

column INSTANCE_NAME FORMAT A15;

column HOST_NAME FORMAT A20;

column STARTUP_TIME FORMAT A20;

SELECT INSTANCE_NAME, HOST_NAME, VERSION, STARTUP_TIME, STATUS, DATABASE_STATUS, EDITION FROM V\$INSTANCE;" | sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}")


echo "$DB_STATUS"



# Check if sqlplus is available

if ! command -v sqlplus &> /dev/null 

then

echo "Error: sqlplus command not found. Ensure Oracle client is installed and configured in PATH."

exit 1

fi


echo -e "\n"

echo "============================================================="

echo "== Process : Tablespace Status "

echo -e "=============================================================\n"

echo "***** Table Space Status at $(date +"%Y-%m-%d %H:%M:%S") *****"

echo -e "**Command : select tablespace_name, status from dba_tablespaces order by tablespace_name \n"


TBS_STATUS=$(echo "select tablespace_name, status from dba_tablespaces order by tablespace_name;" | sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}")


TBD_STATUS=$(echo "SET LINESIZE 1000;

column TableSpaceName FORMAT A20;

select a.TABLESPACE_NAME "TableSpaceName",

round(a.BYTES / 1024 / 1024) "MBAllocated",

round((a.BYTES-nvl(b.BYTES, 0)) / 1024 / 1024) "MBUsed",

nvl(round(b.BYTES / 1024 / 1024), 0) "MBFree",

round(((a.BYTES-nvl(b.BYTES, 0))/a.BYTES)*100,2) "PctUsed",

round((1-((a.BYTES-nvl(b.BYTES,0))/a.BYTES))*100,2) "PctFee"

from   (select   TABLESPACE_NAME, sum(BYTES) BYTES

from     sys.dba_data_files

group by TABLESPACE_NAME) a,

(select   TABLESPACE_NAME, sum(BYTES) BYTES

from     sys.dba_free_space

group by TABLESPACE_NAME) b

where  a.TABLESPACE_NAME = b.TABLESPACE_NAME (+)

order  by ((a.BYTES-b.BYTES)/a.BYTES) desc;" | sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}")


TBS_COUNT=$(echo "@$HOME/CountTB.sql" | sqlplus -S "${DB_USER}/${DB_PASSWORD}@${ORACLE_SID}")



# Check if the query returned a database name

if [ -z "$DB_NAME" ]; then

echo "Error: Could not retrieve Oracle database name. Check connection details and database status."

else

echo "$TBS_STATUS"

echo -e "$TBD_STATUS\n"

echo -e "\n"

echo "$TBS_COUNT"

fi


# Start the database

#sqlplus apps/apps@ORCL << EOF

#@$ORACLE_HOME\CountTB.sql

#exit;

#EOF


How to Fix Toad 12.8.0.49

 How to Fix Toad 12.8.0.49

Error ORA-00904: "REF": invalid Identifier




How to Fix

1.click edit/view script option

2.click up check Audit Statements 




it work.

enjoy.

How to Create shell script to Start Database and Checking Table Space

 #dr_check_db_ERPGF.sh #!/bin/bash #run ./dr_check_db_ERPGF.sh | tee dr_ERPGF.out echo -e "\n" echo -e "+++++ Start Check Dat...