Visit Our UNIX and Linux User Community


Script to force Oracle database shutdown when shutdown immediate does not work


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Script to force Oracle database shutdown when shutdown immediate does not work
# 1  
Old 03-09-2010
Script to force Oracle database shutdown when shutdown immediate does not work

I have Oracle 9i R2 on AIX 5.2. My Database is running in shared server mode (MTS).

Sometimes when I shutdown the database it shutsdown cleanly in 4-5 mints and sometimes it takes good 15-20 minutes and then I get some ora-600 errors and only way to shutdown is by opening another session and doing the shutdown abort.

Is there a way/workaround so I can do this with some script like if my database is not shutdown properly in 15-20 minutes since I issue "shutdown immediate" command it kicks of shutdown abort command? Something like this

**************************************************
"checks for smon/PMON if database still up then connects and issues shutdown abort"
**************************************************

Thanks

Last edited by aixhp; 03-10-2010 at 05:11 PM..
# 2  
Old 03-10-2010
I would cite as the main reason for not receiving a response to your question, up to now, the poor subject title you used. It in no way convey's the nature of your question.

Having said that(!) here's my lame attempt at a solution:

Code:
$ cat ShutdownDB
#!/bin/ksh
WAIT_MINS=15

ShutdownDB() {
echo "Shutdown database [$ORACLE_SID]..."
  sqlplus / as sysdba << ! > /dev/null
    shutdown immediate;
!
}

ForceShutdownDB() {
  echo "Forcing DB shutdown, please wait..."
  sqlplus / as sysdba << ! > /dev/null
    shutdown abort;
    startup restrict;
    shutdown immediate;
!
}

ShutdownDB &
sleep 10

X=0
while true; do
  jobs > /dev/null
  if [ $(jobs | wc -l) -eq 0 ]; then
    break
  else
    [ $X -le $WAIT_MINS ] && echo "Waiting $((WAIT_MINS -$X)) minute(s)..." && X=$((X + 1)) && sleep 60 && continue
  fi
  kill %1
  sleep 3
  ForceShutdownDB
  break
done

echo "Database stopped."

$ ./ShutdownDB
Shutdown database [DB1]...
Waiting 15 minute(s)...
Waiting 14 minute(s)...
...
...
Waiting 1 minute(s)...
Waiting 0 minute(s)...
Forcing DB shutdown, please wait...
Database stopped.

HTH
# 3  
Old 03-10-2010
Thanks scottn for sharing your Script. Sorry for the poor title. I will try to do better next time.
# 4  
Old 03-10-2010
No problems, I've renamed the thread Smilie
# 5  
Old 03-10-2010
Personally I would modify the Oracle provided script "dbshut" to issue "shutdown immediate" rather than just "shutdown". It is ruthless in disconnecting sessions but lets you get on with the next task such as a database backup. This botch "technique" has worked well for Oracle 7,8,9 daily for many years.

Last edited by methyl; 03-10-2010 at 09:15 PM..
# 6  
Old 03-10-2010
Quote:
Originally Posted by methyl
Personally I would modify the Oracle provided script "dbshut" to issue "shutdown immediate" rather than just "shutdown". It is ruthless in disconnecting sessions but lets you get on with the next task such as a database backup. This botch "technique" has worked well for Oracle 7,8,9 .
Here's what dbshut says:

Quote:
# This script is used to shutdown ORACLE from /etc/rc(.local).
# It should ONLY be executed as part of the system boot procedure.
I didn't see anything about shutting down or rebooting a server in the question.

Besides, the OP was asking about when shutdown immediate takes too long. The simple solution would be to wait the hour for the ORA-01013 and take that as a no.

I would investigate the 0600 though.
# 7  
Old 03-11-2010
Hi scottn

I missed the point that the O/P was only shutting down the instance not the whole computer. Therefore probably not using Oracle supplied scripts.

It think the O/P original issue is caused by issuing "shutdown" rather than "shutdown immediate" ... then having to issue "shutdown abort" if it takes too long.

Many admins (myself included) write parodies of the contents dbshut and dbstart to stop/start individual databases at will.
 

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Shutdown Oracle DB on SunOS Cluster

Hi, I've this Oracle database version: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production Oracle is install in a SunOS DBSERVER1 5.11 11.2 sun4v sparc sun4v cluster (Not RAC environment) DBSERVER1 is node active and DBSERVER2 is node inactive ... (4 Replies)
Discussion started by: db_senior
4 Replies

2. Shell Programming and Scripting

Help required for Oracle database shutdown script conversion from shell to perl

Please tell me how to convert below program from shell script to perl. Same commands need to use in shutdown, just need program help for startup. export ORACLE_BASE=/home/oracle1 lsnrctl start lndb1 sqlplus '/ as sysdba' startup; (2 Replies)
Discussion started by: learnbash
2 Replies

3. Shell Programming and Scripting

db shutdown script

I am going to create shutdown database script. We have dabase shutdown script. But i need take dabase which online and make it down. I got user id which needs to dabase to down ID=`ps -ef | grep -i pmon | grep -v grep | awk '{print $1}'` ( got orace side DB=`ps -ef | grep -i pmon |... (1 Reply)
Discussion started by: allwin
1 Replies

4. Solaris

shutdown -y -i5 -g0 DOESN'T work

hello, The command above seems not working on my solaris 8/9 sparc machines. a. resulted to the ff below when I instead use "shutdown" only. Broadcast Message from root (pts/1) on "hostname" date.. The system "hostname" will be shut down in 30 seconds THE SYSTEM bdosg IS BEING SHUT... (4 Replies)
Discussion started by: lhareigh890
4 Replies

5. Shell Programming and Scripting

Oracle DB Start shutdown scripts

Hi, We have a requirement wherein we do not want to share the Oracle DB sys and system passwords to be shared with the support desk. But they will be responsible for starting/shuting down the Database. Is it possible to write a shell script which will read the sys and system passwords from a... (0 Replies)
Discussion started by: narayanv
0 Replies

6. BSD

Battery Empty -> force shutdown

hi Howto force shutdown on the notebook with freeBSD before battery is empty? (3 Replies)
Discussion started by: ccc
3 Replies

7. UNIX for Advanced & Expert Users

Capturing Oracle Shutdown error

Hi, Iam calling 3 sql scripts through one shell script 'rmia.sh'. Till now this was working fine, but last time while calling the SQL scripts, Oracle was down. But amazingly the exit status was '0' (success)!!! Below is the shell code: #!/usr/bin/ksh -x assign_file asql a.sql 1... (15 Replies)
Discussion started by: ganapati
15 Replies

8. HP-UX

Shutdown script

Hi, I am on Alpha Server with HP Tru64 system. I wish to setup shutdown to automatically and cleanly shutdown informix during the shutting down of the system. Ie. I was trying to use rc0.d to do this but failed. Has anyone tried doing this before? I already have the script and linked it to... (0 Replies)
Discussion started by: kingsto88
0 Replies

9. UNIX for Dummies Questions & Answers

A script for shutdown

I want to make a script to shutdown a unixware computer from other user then root. In Sco version i use "as root" but in the unixware i don't know. Please help me. 10x (12 Replies)
Discussion started by: kelu
12 Replies

10. UNIX for Advanced & Expert Users

Shutdown script

Hi Guys, I want to execute few of my bash script, so that whenever someone calls shutdown now -r command, I want my script to execute first before shutting down. Any help please????? I've just started playing with the unix system, so far its been brilliant.... (10 Replies)
Discussion started by: alpha_manic
10 Replies

Featured Tech Videos