Home > Database > Mysql Tutorial > body text

RHEL5开启和关闭Oracle实例以及自启动

WBOY
Release: 2016-06-07 17:17:46
Original
942 people have browsed it

RHEL5开启和关闭Oracle数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。返回结果中发现有$ORACLE_HOME_LISTNE

RHEL5开启和关闭Oracle数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。

一、如何启动数据库实例

1.进入到sqlplus启动实例
[oracle@RedHat ~]$ su - oracle                                 --“切换到oracle用户”
Password:
[oracle@redhat ~]$ lsnrctl start                               --“打开监听”
[oracle@redhat ~]$ sqlplus /nolog                                --“进入到sqlplus”
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 14 19:06:45 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba                                              --“连接到sysdba”
Connected to an idle instance.
SQL> startup                                                     --“启动数据库实例
SQL> shutdown immediate                                         --“关闭数据库实例”

[oracle@redhat ~]$ lsnrctl stop                                 --“关闭监听”

2.用dbstart和dbshut启动和关闭数据库实例
先启动监听 lsnrctl start
启动实例   dbstart
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
看起来貌似是监听没有起来,可是实际上,监听可以成功启动。
我们来看一下dbstart脚本,该脚本放在$ORACLE_HOME/bin下面。
搜索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=/ade/vikrkuma_new/oracle中,指定的路径不对,,需要对这一行重新编辑,使其路径制定到$ORACLE_HOME

用vi编辑dbstart,将ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle更改为
export ORACLE_HOME_LISTNER=$ORACLE_HOME
然后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
此时的原因是在/etc/oratab的设置问题,我们cat一下,发现
zgz:/home/oracle/product/10g:N
最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
以上的工作做好之后,dbstart就可以正常使用了:
[oracle@redhat bin]$ lsnrctl start                                  --“启动监听”
[oracle@redhat bin]$ dbstart                                   --“启动数据库实例”
[oracle@redhat bin]$ dbshut                                    --“关闭数据库实例”
[oracle@redhat bin]$ lsnrctl stop                              --“关闭监听”

二、如何使数据库实例和linux系统一起启动
在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:
su - oracle -c "lsnrctl start"

linux

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template