Loading...

1. 前置条件

1.1 修改oratab

 [oracle@orclasm ~]$ cat /etc/oratab  orcl:/u01/app/oracle/product/12.1.0/dbhome_1:Y# 将N改成Y  # oratab由root.sh脚本创建,在DBCA创建实例时也会更新这个文件  # 这里的参数(Y/N)是个开关作用,不会真正启动或关闭,具体开关由&ORACLE_HOME/bin/dbstart和dbshut实现,执行时会先检查oratab的参数,为Y时才会继续执行.

1.2 修改启动和关闭脚本

 [oracle@orclasm ~]$ cat $ORACLE_HOME/bin/dbstart  ORACLE_HOME_LISTNER=$ORACLE_HOME# 将$1改成$ORACLE_HOME  [oracle@orclasm ~]$ cat $ORACLE_HOME/bin/dbshut  ORACLE_HOME_LISTNER=$ORACLE_HOME# 将$1改成$ORACLE_HOME

2. 方式一:配置Oracle服务

2.1 编辑启动脚本

[root@orclasm ~]\# cat /etc/rc.d/init.d/oracle  #!/bin/bash  # chkconfig: 345 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.1.0/dbhome_1  export ORACLE_SID=orcl  export PATH=$PATH:$ORACLE_HOME/bin  ORA_OWNR="oracle"  # if the executables do not exist -- display error  if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]  then  echo "Oracle startup: cannot start"  exit 1  fi  # depending on parameter -- startup, shutdown, restart  # of the instance and listener or usage display  case "$1" in  start)  # Oracle listener and instance startup  echo -n "Starting Oracle: "  su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"  su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"  touch /var/lock/Oracle  su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"  #su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctrl start"  echo "OK"  ;;  stop)  # Oracle listener and instance shutdown  echo -n "Shutdown Oracle: "  su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"  #su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctrl stop"  su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"  su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"  rm -f /var/lock/Oracle  echo "OK"  ;;  reload|restart)  $0 stop  $0 start  ;;  *)  echo "Usage: `basename $0` start|stop|restart|reload"  exit 1  esac  exit 0  #

2.2 脚本授权

 chown oracle /etc/init.d/oracle  chmod 775 /etc/init.d/oracle  chkconfig --add /etc/init.d/oracle

2.3 创建服务

 chkconfig --add oracle  chkconfig oracle on# 或 chkconfig --level 2345 oracle on  # 检查服务状态  chkconfig --list oracle  Oracle0:off1:off2:on3:on4:on5:off6:off  # 测试正常service oracle stop/start/restart  # 重启OS查看是否正常启动

3. 方式二:配置rc.local文件(推荐)

3.1 编辑rc.local文件

 # 增加一行  [root@orclasm ~]\# Vi /etc/rc.d/rc.local  su - oracle -c 'dbstart $ORACLE_HOME'  # 也可以写成 su - oracle -c $ORACLE_HOME/bin/dbstart  # 或者  export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1  su - oracle -c $ORACLE_HOME/bin/dbstart  export ORACLE_UNQNAME=orcl  su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"  # 说明:  #1)、/etc/rc.local是/etc/rc.d/rc.local的软连接  #2)、由于dbstart脚本中已包含了启动listener监听服务,所以此处不需要添加lsnrctl start命令行:  #su - oracle -lc "/u01/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"  #3)、由于dbstart($ORACLE_HOME/bin/dbstart)脚本中将ORACLE_HOME_LISTNER=$1,所以dbstart后要增加$ORACLE_HOME,即将$ORACLE_HOME作为参数传递给$1;  #4)、如果将dbstart中的$1修改为$ORACLE_HOME,那么此行的$ORACLE_HOME就不再需要,即新增加的一行为  #su - oracle -c 'dbstart'即可  #5)、若环境中没有EM,可以不用配置UNQNAME和启动emctl这两行

3.2 脚本授权

 [root@orclasm ~]\# chmod +x /etc/rc.d/rc.local  # 监测是否生效  [root@orclasm ~]\# export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1  [root@orclasm ~]\# su - oracle -c $ORACLE_HOME/bin/dbstart  # 再重启OS验证

4. 小结

 如果多个实例,oratab的参数都是Y,那么都会开机自启  监听也会开机自启(dbstart脚本包含监听自启)  启动和关闭日志:$ORALCE_HOME下的startup.log和shutdown.log
最后修改:2022 年 04 月 07 日
如果觉得我的文章对你有用,请随意赞赏