[问题] oracle10g企业版的问题

数据库服务和管理,MySQL/PostgreSQL/Oracle/Sybase 等
回复
reinhardcao
帖子: 116
注册时间: 2007-02-22 1:15
送出感谢: 0
接收感谢: 0

[问题] oracle10g企业版的问题

#1

帖子 reinhardcao » 2007-06-03 23:48

我是手动启动oracle,但服务器状态总处于关闭状态,必需到Enterprise Manager里面再启动一次数据库,有没有办法可以自动启动服务器呢 ?

启动命令:
sudo oracledb start

启动script:
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
#export ORACLE_HOME=/opt/oracle/10g/OraHome_1
#export ORACLE_SID=orcl
#export PATH=$PATH:$ORACLE_HOME/bin
#ORA_OWNR="root"

# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
#su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
#su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
#su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole
$ORACLE_HOME/bin/emctl start dbconsole
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
#su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
$ORACLE_HOME/bin/lsnrctl stop
#su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
$ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
#su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole
$ORACLE_HOME/bin/emctl stop dbconsole
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
reinhardcao
帖子: 116
注册时间: 2007-02-22 1:15
送出感谢: 0
接收感谢: 0

#2

帖子 reinhardcao » 2007-06-05 1:12

想到一个办法:
启动脚本startup:
#!/bin/bash
sqlplus sys/密码 as sysdba @$ORACLE_HOME/startup.sql

startup.sql:
startup
exit

而且感觉上面那个oracledb脚本只是用来启动企业管理器,并没有启动数据库。而数据库的启动与em的启动完全没有关系,可以直接调用startup而不必调用oracledb。
reinhardcao
帖子: 116
注册时间: 2007-02-22 1:15
送出感谢: 0
接收感谢: 0

#3

帖子 reinhardcao » 2007-06-05 2:24

原来我搞错了,oracledb里面的dbstart是用来启动数据库的,只不过有一个文件没有建立,所以启动不了。
在/var/opt/oracle下面建立oratab文件,里面按照ORACLE_SID:ORACLE_HOME:Y的格式写入一行文字就可以了,例如:
ORACLE_SID=orcl
ORACLE_HOME=/opt/oracle
那么文字的内容就是
orcl:/opt/oracle:Y

再调用dbstart就可以启动数据库了。

直接调用sqlplus来启动也是可以的,实际上dbstart也是这样做的。
回复

回到 “数据库管理”