惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
T
Tailwind CSS Blog
博客园_首页
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
J
Java Code Geeks
量子位
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
C
Check Point Blog
V
Visual Studio Blog
H
Help Net Security
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta

博客园 - 冯东

Oracle问题诊断过程常用SQL Cognos10 RedHat5.4 X64 安装记录 不用JavaScript实现列表排序(利用钻取实现) 从命令行启动Cognos的方法 如何让列表实现任意字段类型的排序 如何使导出的excel和报表分页设置不一样 基于Oracle触发器的报表版本保存工具 Cognos重建CSK JS屏蔽Cognos报表右键菜单 - 冯东 - 博客园 利用JS重写Cognos右键菜单 Cognos亲和力解释 Java中Split函数的问题 - 冯东 - 博客园 修改Oracle数据库的字符集 Oracle锁定选出的结果集 面试题 北漂,真的来了 通过修改Linux服务自动启动指定应用程序 由于系统时间修改导致Oracle启动失败 - 冯东 - 博客园 Oracle中删除包含物化视图的表空间的方法
Oracle自动启动(解决了Failed to auto-start Oracle Net Lis...
冯东 · 2008-07-24 · via 博客园 - 冯东

前两天在linux里成功的安装了Oracle10G,每次启动oracle数据库都是用oracle用户登陆然后执行dbstart启动数据库。每次启动时都会报错
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
看来是listener服务没有起来,但是执行lsnrctl start却能启动listener服务。
搜索dbstart文件中的tnslsnr字符串

grep tnslsnr dbstart

返回结果:

  if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
    echo "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"

看来可能是ORACLE_HOME_LISTNER环境变量引起的,查找 ORACLE_HOME_LISTNER

grep ORACLE_HOME_LISTNER dbstart

返回结果

# 3) Set ORACLE_HOME_LISTNER
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
if [ ! $ORACLE_HOME_LISTNER ] ; then
  echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
  LOG=$ORACLE_HOME_LISTNER/listener.log
  if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
    $ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &
    export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`
    echo "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"
        $LOGMSG "Restart Oracle Net Listener using an alternate ORACLE_HOME_LISTNER: lsnrctl start"

其中有一段给ORACLE_HOME_LISTNER环境变量赋值,但是这个路径是不对的,编辑dbstart文件
vi dbstar
将该行改为export ORACLE_HOME_LISTNER=$ORACLE_HOME
保存退出,然后执行dbstart就没问题了。呵呵

想系统启动是自动启动数据库可以通过修改/etc/rc.d/rc.local文件
一开始我写的命令是
su oracle -c ora_App/product/10.2.0/db_1/bin/lsnrctl start
su oracle -c ora_App/product/10.2.0/db_1/bin/dbstart
但是su oracle -c ora_App/product/10.2.0/db_1/bin/lsnrctl start是参数start不起作用,它进入了lsnrctl命令提示符,并没有启动,后来把命令用双引号引起来就可以了如下:
su oracle -c "ora_App/product/10.2.0/db_1/bin/lsnrctl start"
是可以启动了,但是启动时报错如下:
Message 1053 not found; No message file for product=network, facility=TNSTNS-12541: Message 12541 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
但是如果我用oracle用户登陆执行lsnrctl start就不报错,看来是在root用户中执行su oracle -c "ora_App/product/10.2.0/db_1/bin/lsnrctl start"有些Oracle环境变量没有设置。查了一下su 命令的参数,其中有个-l参数
 -.-l或--login  改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。  
加上参数

su oracle -lc "ora_App/product/10.2.0/db_1/bin/lsnrctl start"
正常了!呵呵,终于弄完了。总算是一晚上没白费。