Database (start,stop, status)
Prerequisites
- Oracle has been installed and database created.
- Oracle environment set for database instance to control.
- LINUX\UNIX
OS> set ORACLE_SID=<InstanceName> OS> set ORACLE_HOME=<OracleHomePath> OS> sqlplus sys/<Password> as sysdba SQLPlus> <shutdown immediate|startup>
- Windows 12c Services
Net <Start|Stop> OracleService{SID} Net <Start|Stop> OracleJobScheduler{SID} (If used) Net <Start|Stop> OracleMTSRecoveryService (Oracle 11g) Net <Start|Stop> OracleOraDB12gHome1TNSListenerOther services that may be initially active include:OracleDBConsole{SID}, OracleOraDbnng_home1ClrAgent, OracleRemExecServiceV2, OracleVSSWriter{SID}
Display
-- Display Database Status
SELECT d.dbid,i.instance_name,i.host_name,d.open_mode,
d.database_role,i.status,i.database_status,
to_char(i.startup_time,'YYYY-MM-DD HH:MM') AS "Started",
d.log_mode, i.archiver,i.version
FROM v$database d, v$instance i
WHERE UPPER(d.name) = UPPER(i.instance_name);
Start
LINUX\UNIX
OS> sqlplus sys/******** as sysdba SQLPLUS> startup
Windows
C:\> Net Start OracleServiceDB01 C:\> Net Start OracleJobSchedulerDB01 (If used) C:\> Net Start OracleOraDB12gHome1TNSListener
Note: The OracleService{SID} issues a STARTUP command in the background.
Stop
LINUX\UNIX
OS> sqlplus sys/******** as sysdba SQLPLUS> shutdown immediate
Windows
C:\> Net Stop OracleOraDB12gHome1TNSListener C:\> Net Stop OracleJobSchedulerDB01 (If used) C:\> Net Stop OracleServiceDB01
Note: The OracleService{SID} issues a SHUTDOWN IMMEDIATE command in the background.
Database Start on Linux OS Boot
Create a dbora script to start and stop your database.
For a dedicated standalone Data Guard StandBy database simply edit the $ORACLE_HOME/bin/dbstart script and change startup command to startup mount.
Example, change this (1):
"6") sqldba command=startup ;;
To This
"6") sqldba command=startup mount ;;
Assumptions:
- Password has not been set for the Oracle Net listener.
- The listener name is LISTENER. If not then you have to specify stop and start commands for it.
Ex: $ORACLE_HOME/bin/lsnrctl {start|stop} listener_name
vi /etc/init.d/dbora
#!/bin/sh
#
# Implementation:
# 1. Edit the /etc/oratab
# Ex: oradb:/u01/app/oracle/product/12.2.0.1/dbhome_1:Y
# 2. As root, create this file as /etc/init.d/dbora then:
# chgrp dba /etc/init.d/dbora
# chmod 750 /etc/init.d/dbora
# 3. Create links
# ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
# ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
# ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
#ORA_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1
#ORA_HOME=/u01/app/oracle/product/19.3.0.0.0/dbhome_1
ORA_HOME=/u01/app/oracle/product/21.3.0.0.0/dbhome_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
touch /var/lock/subsys/dbora
;;
'stop')
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
rm -f /var/lock/subsys/dbora
;;
esac
Cheat Sheet Cmds To Enable
chgrp dba /etc/init.d/dbora; chmod 750 /etc/init.d/dbora; ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora; ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora