第一种方法:(将自启动脚本加入/etc/rc.d/rc.local)
1、修改oracle自启动脚本/u01/app/oracle/product/12.2.0.1/dbhome_1/bin/dbstart
找到ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
2、修改/etc/oratab选线
vi /etc/oratab
orcl:/u01/app/oracle/product/12.2.0.1/dbhome_1:Y (即可)
3、将oracle自带的dbstart启动脚本加入到/etc/rc.d/rc.local
vi /etc/rc.d/rc.local
su oracle -lc "/u01/app/oracle/product/12.2.0.1/dbhome_1/bin/dbstart"
4、修改权限
chmod 755 /etc/rc.d/rc.local
第二种方法:(通过一体化脚本)
1.第一种方法中的1,2都要保留
2.脚本/etc/init.d/oracle
#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup Script for oracle Databases
# /etc/rc.d/init.d/oracle
export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
echo " " >> /home/oracle/oraclelog
echo `date +'%Y-%m-%d %H:%M:%S'` >> /home/oracle/oraclelog
case "$1" in
start)
echo "-----startup oracle-----" >> /home/oracle/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /home/oracle/oraclelog
echo "-----startup oracle successful-----" >> /home/oracle/oraclelog
echo "OK"
;;
stop)
echo "-----shutdown oracle-----" >> /home/oracle/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /home/oracle/oraclelog
echo "-----shutdown oracle successful-----" >> /home/oracle/oraclelog
echo "OK"
;;
restart)
echo "-----shutdown oracle-----" >> /home/oracle/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /home/oracle/oraclelog
echo "-----shutdown oracle successful-----" >> /home/oracle/oraclelog
echo "-----startup oracle-----" >> /home/oracle/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /home/oracle/oraclelog
echo "-----startup oracle successful-----" >> /home/oracle/oraclelog
echo "OK"
;;
*)
#echo "Usage: 'basename $0' start|stop|restart"
exit 1
esac
exit 0
权限 chmod 755 /etc/init.d/oracle
加入启动项 chkconfig oracle on
注:在oracle 12c中以上方法只能启动CDB库,不能启动内部的pdb库,可以写一个触发器如下:
create trigger open_dev
after startup on database
begin
execute immediate 'alter pluggable database pdb01,pdb02,pdb03 open';
end;
/