oracle启动dbstart出错或无反应的解决办法及自启动(Linux平台)

问题一:

启动dbstart 报错 Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr

     linux成功安装Oracle10G后切换到Oracle用户后,直接使用”dbstart”($ORACLE_HOME/bin中)启动oracle数据库报错“Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr“。原因是dbstart调用的tnslsnr脚本位置有错。解决办法:

打开该脚本:vim $ORACLE_HOME/bin/dbstart,

查找“ORACLE_HOME_LISTENER”变量的定义处,

修改“ORACLE_HOME_LISTENER=/ade/vikrkuma_new/oracle”--〉“ORACLE_HOME_LISTENER=$ORACLE_HOME”

问题二:

启动dbstart 没有反应,即不报错也不显示启动信息

      原因是oracle的配置需要修改才能使用dbstart启动对应的数据实例。解决办法:

su - root
vim /etc/oratab
将类似“orcl:/opt/oracle/product/9.2.0.4:N”-->“orcl:/opt/oracle/product/9.2.0.4:Y”即“N”改为“Y”

问题三

>dbstart

Can't find init file for Database "orcl".

 

Database "orcl" NOT started.

原因就是没有找到init文件 我的数据库实例是orcl

这个文件在$ORACLE_HOME/dbs/目录下
>cd $ORACLE_HOME/dbs

解决办法就是建立一个initorcl.ora的软连接就可以了
> ln -s spfileego.ora initorcl.ora

问题四:自启动

Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从1到6,具有不同的功能。这些级别在/etc/inittab中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。

文件以S开头,代表start(启动),后面的数字是启动顺序;文件以K开头,代表kill(结束),同样,后面的数字代表结束顺序。

例如/etc/rc2.d/S10network代表它与运行级别2有关,10就是他的启动顺序。

目录介绍:

init.d

    这个目录中存放了一些服务启动脚本,系统安装时的多个rpm包,这些脚本在执行时可以用来启动,停止和重启这些服务。

rcx.d(x为0~6)

    这个目录是启动级别的执行程序链接目录,里面的文件都是指向init.d目录中文件的一些软连接。

配置步骤:

1、修改dbstart和dbshut脚本:dbstart和dbshut两个shell脚本,在oracle11g下,我们需要手动修改一下这两个个脚本,将ORACLE_HOME_LISTNER=$1这行修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME,保存退出

2、修改/etc/oratab:

orcl:$ORACLE_HOME:N修改为orcl:$ORACLE_HOME:Y

将N修改为Y,表示可以在操作系统启动阶段运行oracle数据库

3、vi /etc/rc.d/init.d/oracle,编辑如下信息:

#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle

case "$1" in
    start)
        # starts oracle listener and instance
        echo "Starting Oracle Database:"
        su oracle -lc "lsnrctl start"
        su oracle -lc dbstart
        ;;
    stop)
        # shutdown oracle listner and instance
        echo "Shuting down Oracle Database:"
        su oracle -lc "lsnrctl stop"
        su oracle -lc dbshut
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: {start|stop|reload|restart}"
        exit 1
esac
exit 0

 

编辑完成后,保存退出

4、检查一下脚本能否正确执行:

cd /etc/rc.d/init.d

./oracle start

./oracle stop

5、执行如下命令:

chmod 750 /etc/rc.d/init.d/oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

chkconfig –-level 234 oracle on

chkconfig –-add oracle

关于chkconfig,执行chkconfig时,需要在脚本中添加至少两行注释行,第一行告诉chkconfig该服务的运行级别;第二行添加关于服务的一些说明

5、最后重启动一下linux操作系统,检查oracle是否自动启动成功

重新启动后,oracle启动成功,可以在系统启动界面看到相关信息。

 

 

 

转自:https://www.cnblogs.com/gaojun/archive/2012/12/10/2811443.html

----------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------

补充开机自启的新点子:

================================================我是小分段=====================================

Oracle 开机自动启动设置

步骤:

1:查看ORACLE_HOME是否设置

$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/dbhome_1

 

2:执行dbstart 数据库自带启动脚本

复制代码

[oracle@njdzjkdb ~]$ cd $ORACLE_HOME
[oracle@njdzjkdb dbhome_1]$ cd bin/
[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 没有设置

[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

编辑 dbstart,将ORACLE_HOME_LISTNER=$1修改成 ORACLE_HOME_LISTNER=$ORACLE_HOME 前提是$ORACLE_HOME环境设置正确

[oracle@njdzjkdb bin]$ vi dbstart 

ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0/dbhome_1

复制代码

 

3:编辑/etc/oratab文件

dbca建库时都会自动创建/etc/oratab文件
将orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N
修改成 orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

 

4:编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart

复制代码

[root@njdzjkdb ~]# vi /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
su oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart

复制代码

 

5:重启主机,查看数据库和监听是自启动

 

6:查看数据库是否处于open状态

select status from v$instance

 

 

 

 

 

 

 

 

 

 

 

 

 

 

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭