在Linux系统中,安装好Oracle数据库服务后,并不像在Windows系统下一样,Oracle服务在默认情况下会随系统的启动自动启动。Linux系统中,是需要用户去手动进行设置,才能实现Oracle开机自动启动的。本文将一步一步教你如何进行设置。
安装好Oracle的Linux系统(以Red Hat Enterprise Linux 7.4、Oracle 11g为例)
方法/步骤
1、前提条件:你已经在Linux系统中正确安装好Oracle服务,使用手动方式可以正常启动。
查看ORACLE_HOME是否设置 $ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/dbhome_1
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误: [oracle@njdzjkdb dbhome_1]$ cd bin/ [oracle@njdzjkdb bin]$ ll | grep dbs -rwxr-x---. 1 oracle oinstall 6088 1月 1 2000 dbshut -rwxr-x---. 1 oracle oinstall 13892 12月 11 16:01 dbstart [oracle@njdzjkdb bin]$ dbstart ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener Usage: /u01/app/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME 错误提示:ORACLE_HOME_LISTNER 没有设置
原因: dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,ORACLE_HOME_LISTNER=$1,修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME 前提是$ORACLE_HOME环境设置正确
[oracle@njdzjkdb bin]$ vi dbstart --dbstart为开机自启动脚本,让系统开机就去执行dbstart脚本文件,它会去读oratab文件,读到Y就会把对应的实例开机自启动 --调整或确认监听路径,如ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0/dbhome_1或ORACLE_HOME_LISTNER=$ORACLE_HOME根据设置的监听调整路径
2、使用vi编辑器编辑文件/etc/oratab
dbca建库时都会自动创建/etc/oratab文件
#vi /etc/oratab 将“orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N”, 改为“orcl:/u01/app/oracle/product/12.1.0/dbhome_1:Y”。 修改完成后,保存退出 --<N|Y>选项代表开机是否自启动
**说明:**orcl为实例名;/u01/app/oracle/product/12.1.0/dbhome1为oracle安装目录;会因安装的情况不同而有所不同。
3、编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
#vi /etc/rc.d/rc.local 末尾添加: su oracle -lc "/u01/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbstart
或启动指定实例 su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start ORCL" su - oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
--命令中-c代表执行脚本,脚本dbstart中指定启动的实例,脚本lsnrctl中启动配置的监听
**说明:**/u01/app/oracle/product/12.1.0/dbhome1为oracle的安装目录,要根据实际情况进行修改。
4、修改DB启动配置文件
#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart 找到ORACLE_HOME_LISTNER这行 # First argument is used to bring up Oracle Net Listener ORACLE_HOME_LISTNER=$1
将$1修改为如下(你的路径): ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0/dbhome_1
5、重启主机,查看数据库和监听是自启动
6、开机自启动多个监听及多个实例
#vim /etc/rc.d/rc.local su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start UTF8" su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start GBK" su - oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart 监听写多个启动,实例用一个dbstart命令去启动,它会去读oratab文件,读到Y就会把对应的实例开机自启动
7、小结:
linux下设置实例自启动有关脚本:
oratab:实例是否自启动的注册信息
dbstart:开机启动脚本文件会读取oratab信息
rc.local:开机后立即要做的文件
--“启动监听” lsnrctl start
--“启动数据库实例” dbstart
--“关闭数据库实例” dbshut
--“关闭监听” lsnrctl stop