#!/bin/bash # # Run level script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4) # Script should work on other UNIX like oses :) # ------------------------------------------------------------------------- # Copyright (c) 2006 nixCraft project <http://cyberciti.biz/fb/> # This script is licensed under GNU GPL version 2.0 or above # Comment/suggestion: <vivek at nixCraft DOT com> # ------------------------------------------------------------------------- # chkconfig: 345 91 19 # description: Startup/Shutdown Oracle service OUSER="oracle" OPATH="/home/oracle/oracle/product/10.2.0/db_1" # check Oracle db status function chkdb_status() { # set username SUSER="scott" # set password SPASS="123456" sqlplus -s /nolog > /dev/null 2>&1 <<EOF whenever sqlerror exit failure connect $SUSER/$SPASS exit success EOF if [ $? -ne 0 ]; then echo "Connection failed : DB is down" exit 1 else echo "Connection succeeded : DB is up" fi } case "$1" in start) echo "*** Starting Oracle *** " su - $OUSER -c "$OPATH/bin/lsnrctl start" su - $OUSER -c "$OPATH/bin/dbstart" ;; stop) echo "*** Stopping Oracle *** " su - $OUSER -c "$OPATH/bin/lsnrctl stop" su - $OUSER -c "$OPATH/bin/dbshut" ;; restart) $0 stop $1 start ;; isqlstart) echo "*** Starting Oracle iSQL Plus *** " su - $OUSER -c "$OPATH/bin/isqlplusctl start" echo "*** Note: You can access service at url: http://$(hostname):5560/isqlplus" ;; isqlstop) echo "*** Stopping Oracle iSQL Plus *** " su - $OUSER -c "$OPATH/bin/isqlplusctl stop" ;; emstart) echo "*** Starting Oracle Enterprise Manager 10g Database Control ***" su - $OUSER -c "$OPATH/bin/emctl start dbconsole" echo "*** Note: You can access service at url: http://$(hostname):1158/em" ;; emstop) echo "*** Stopping Oracle Enterprise Manager 10g Database Control ***" su - $OUSER -c "$OPATH/bin/emctl stop dbconsole" ;; status) echo "*** Oracle database status ***" chkdb_status ;; *) echo $"Usage: $0 {start|stop|isqlstart|isqlstop|emstart|emstop}" exit 1 esac exit 0
Get the latest tutorials on SysAdmin, Linux/Unix, Open Source, and DevOps topics:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 10 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Dears,
i want to do the same script for linux suse and oracle 12 c
is that possible or not
startup pfile =’/home/oracle/$dirname/admin/pfile/initswamy.ora’ nomount;
A quick search on google reveal:
Quote
To enable hugetlbpages, first you need 2.6 kernel, and then you need to recompile it with the following config options enabled:
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLBFS=y
or just disable hugetlb tables:
export DISABLE_HUGETLBFS=1
If you are doing this you need to have a lot of free RAM
Anyway optimizing oracle is a heavy job. Take a look after limits.conf and oracle. You need to increase the number of file descriptors and a lot of other things.
Regards
The problem I am having is that although this script will start and stop oracle when run on the command line, it does not shutdown oracle at re-boot. After logging a call with RH they told me to check the status within the script by adding the following to the script
# Source function library.
. /etc/rc.d/init.d/functions
and then in the status case statment
status dbora # ie name of script
This then returned
[root@host init.d]# ./dbora status
dbora dead but subsys locked
because the status of the system is not running no attempt will be made to shut it down at boot.
Anyone know what code is required such that status returned will be running?
Hi Nikhil, I had the same problem.
I settled with the following instructions
pront > sqlplus /nolog
SQL>connect / as sysdba
SQL>startup
SQL>quit
pront> cd $ORACLE_HOME/bin
pront> lsnrctl start
I am using oracle 10g through command line..It gives me following error while connecting. i am trying to connect as a dba..i am suse LINUX operating system…
SQL*PLUS:Release10.2.0.1.0- Production on Wed: Apr 15 17:26:27 2009
Copyright(c) 1982, 2005, Oracle. All Rights Reserved.
SQL> connect
Enter user-name:SYS
Enter password:123
ERROR:
ORA-01034: ORACLE not available.
ORA-27121: unable to determine the size of share memory segment.
Linux Error:13:Permission Denied
kindly suggest me what to do?
COuld you please sendm me a mail?I want to ask you which editor did you use to paste this good looking code?
Is it html code ?
Thank you. Quite helpful. :)
Thank you … that tutorial has me very helped.