Welcome 微信登录

首页 / 数据库 / MySQL / 解决执行Oracle控制脚本时遇到的 “cat: /etc/oratab: 没有那个文件或目录”的问题

1问题描述:
近日根据网上别人的相应脚本,在虚拟机上测试设置Oracle控制脚本的时候遇到如下问题:在创建了Oracle控制脚本后,执行如下启动命令时报错:# services oracle9i stop错误信息如下:cat: /etc/oratab: 没有那个文件或目录2错误分析
不使用创建的服务控制脚本执行Oracle数据库的停止命令,而是直接使用Oracle的相关指令直接执行,进行逐条检查。1) 关闭Oracle监听# su - oracle -c "/opt/ora9/product/9.2/bin/lsnrctl stop"执行没问题,正常通过。2) 关闭Oracle数据库#su - oracle -c "/opt/ora9/product/9.2/bin/dbshut"执行这条语句的时候出现上述错误,即“cat: /etc/oratab: 没有那个文件或目录”进而,确定是执行指令dbshut 时引起错误。3) 打开dbshut 指令查看,发现了引起错误的语句::## $Header: dbshut.sh.pp 03-apr-2001.13:38:20 jboyce Exp $ dbshut.sh.pp Copyr (c) 1991 Oracle###################################### usage: dbshut## This script is used to shutdown ORACLE from /etc/rc(.local).# It should ONLY be executed as part of the system boot procedure.######################################ORATAB=/etc/oratab4) 查看相应的文件# find /etc/oratabfind: /etc/oratab: 没有那个文件或目录这个文件居然不存在,确定是由于该文件的丢失引起的原因。5) 通过如下指令查看该文件是否在系统其它地方# find / -name “oratab”结果居然没找到。估计是当初安装Oracle的遗留问题。3 解决方案
由于该文件已经丢失,所以到另外一台安装了同样版本的Oracle的服务器上查询相应的文件,果然找到了相应的文件,内容如下:## 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::## 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.### *:/opt/ora9/product/9.2:N# *:/opt/ora9/product/9.2:N*:/opt/ora9/product/9.2:Noracle:/opt/ora9/product/9.2:Ndemo:/opt/ora9/product/9.2:N下面的操作就简单了,拷贝该服务器上的文件到相应的目录即可。注意:拷贝完以后一定记得要修改相应的内容。P.S.
对于oratab文件的说明:
1.只在Linux环境中存在
2.设置格式::: 示例:oracle:/opt/ora9/product/9.2:N
3.可以为不同的数据库设置相应的选项
4.如果想用$ORACLE_HOME/bin/dbstart脚本来启动数据库,则需要将/etc/oratab文件中相应的数据库的项置为Y,
简单的说即dbstart脚本根据oratab文件中的配置决定启动哪几个数据库。
5.如果不使用dbstart脚本启动数据库,而是用自己的脚本来启动,那么根本不用关心oratab文件。MySQL的myisam解决并发读写解决方法truncate操作导致DATA_OBJECT_ID改变相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数