zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle单实例开机自启动

Oracle实例 开机 自启动
2023-09-11 14:21:21 时间

前言

环境:Centos 7.9 Oracle 11.2.0.4

修改dbstart文件

dbstart文件就是Oracle自带的自启动配置文件,这里我们需要稍微修改一下这个文件,文件位于$ORACLE_HMOME/bin/下,如下所示:

[root@Oracle11g ~]$ su - oracle
[oracle@Oracle11g ~]$ vim $ORACLE_HMOME/bin/dbstart				#/u01/app/oracle/product/11.2.0.4/db_1/bin/dbstart
#把ORACLE_HOME_LISTNER=$1修改成 ORACLE_HOME_LISTNER=$ORACLE_HOME即可保持退出,前提必须是$ORACLE_HOME环境设置正确

修改/etc/oratab文件

[oracle@Oracle11g ~]$ vim /etc/oratab
orcl:/u01/app/oracle/product/11.2.0.4/db_1:Y							#找到这行并将最后的N改为Y即可保存退出

编写start_orcl.sh自启动脚本

[oracle@Oracle11g ~]$ vim start_orcl.sh
#!/bin/bash
su - oracle
export ORACLE_SID=orcl
sqlplus / as sysdba <<EOF
startup;
quit;
EOF

编辑好之后保存并授权,chmod 755 start_orcl.sh

修改rc.local

[oracle@Oracle11g ~]$ vim /etc/rc.d/rc.local
#添加下面3句
su  oracle -lc "/u01/app/oracle/product/11.2.0.4/db_1/bin/lsnrctl start"
su  oracle -lc  /u01/app/oracle/product/11.2.0.4/db_1/bin/dbstart
bash /u01/start_orcl.sh &>>/u01/start_orcl.log
[oracle@Oracle11g ~]$ chmod +x /etc/rc.d/rc.local							#授权

验证

重启Linux查看监听状态,如下:

[oracle@Oracle11g ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-AUG-2021 08:27:28

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                10-AUG-2021 08:25:15
Uptime                    0 days 0 hr. 2 min. 19 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/Oracle11g/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Oracle11g.localdomain)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@Oracle11g ~]$ 

发现监听正常,并且正在监听orcl数据库,则说明orcl数据库也自起成功。

总结

1、将/u01/app/oracle/product/11.2.0.4/db_1/bin/dbstart文件中的ORACLE_HOME_LISTNER=$1修改成ORACLE_HOME_LISTNER=$ORACLE_HOME,前提必须是$ORACLE_HOME环境设置正确
2、修改/etc/oratab文件
 vim /etc/oratab
orcl:/u01/app/oracle/product/11.2.0.4/db_1:Y				#找到这行并将最后的N改为Y即可报存退出
3、在/etc/rc.d/rc.local文件添加两条语句(路径要正确):
	su  oracle -lc "/u01/app/oracle/product/11.2.0.4/db_1/bin/lsnrctl start"
	su  oracle -lc  /u01/app/oracle/product/11.2.0.4/db_1/bin/dbstart
4、chmod +x /etc/rc.d/rc.local	
5、重启Linux,执行命令lsnrctl status查看监听状态,如果数据库正在被监听则说明以上设置成功,Oracle自启动成功