centos 6.5 oracle开机自启动的环境配置详解
环境:centos 6.5 + oracle 11g
自启动之前问题
虚拟机里的oracle环境,每次重启完系统,用plsql developer连接,先是报错:
无tns监听程序
解决方法是切换到系统的oracle用户,执行lsnrctl start,但是执行之前,因为oracle_home环境变量没有生效,还要是环境变量文件生效,步骤如下:
1
2
3
4
5
6
|
[oracle@localhost ~]$ source .bash_profile [oracle@localhost ~]$ echo $oracle_home /home/oracle/app/oracle/product/11 .2.0 /dbhome_1 [oracle@localhost ~]$ lsnrctl start |
启动完成后,再次连接,又报错:
oracle没有启动。启动步骤如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[oracle@localhost ~]$ sqlplus /nolog sql*plus: release 11.2.0.1.0 production on wed oct 19 14:29:10 2016 copyright (c) 1982, 2009, oracle. all rights reserved. sql> conn / as sysdba connected to an idle instance. sql> startup oracle instance started. total system global area 776646656 bytes fixed size 2217384 bytes variable size 490736216 bytes database buffers 281018368 bytes redo buffers 2674688 bytes database mounted. database opened. |
配置自启动
下面把上述过程都配置成开机启动。
环境变量生效
可能是因为我的oracle用户不是桌面登录的,是从终端su切换过来的,.bash_profile文件没有运行。我把文件里的内容写入.bashrc文件后,重启就可以了。
tns监听以及oracle服务自启动
编辑: /etc/oratab文件,把最后一行的n改成y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# this file is used by oracle utilities. it is created by root.sh # and updated by the database configuration assistant when creating # a database. # a colon, ':', is used as the field terminator. a new line terminates # the entry. lines beginning with a pound sign, '#', are comments. # # entries are of the form: # $oracle_sid:$oracle_home:<n|y>: # # the first and second fields are the system identifier and home # directory of the database respectively. the third filed indicates # to the dbstart utility that the database should , "y", or should not, # "n", be brought up at system boot time. # # multiple entries with the same $oracle_sid are not allowed. # # orcl: /home/oracle/app/product/11 .2.0 /dbhome_1 :y |
路径可能不同
编辑 /etc/rc.local 文件,增加 最后两行:
1
2
3
4
5
6
7
8
9
10
11
|
#!/bin/sh # # this script will be executed *after* all the other init scripts. # you can put your own initialization stuff in here if you don't # want to do the full sys v style init stuff. touch /var/lock/subsys/local service smb restart su - oracle -c 'lsnrctl start' su - oracle -c 'dbstart' su - oracle -c 'emctl start dbconsole' |
dbstart是数据库自带的启动脚本,我们只要加到rc.local中让它开机调用就可以了。但是还需要编辑一下它。修改dbstart的oracle_home_listner,使其指向$oracle_home:
1
2
|
# first argument is used to bring up oraclenet listener oracle_home_listner=$oracle_home |
重启虚拟机,发现plsql developer可以直接连接上了。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/pony_maggie/article/details/52874667