`

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中加入如下语句即可实现同系统启动实例:

echo "su - oracle -c 'lsnrctl start'" >> /etc/rc.local

echo "su - oracle -c 'dbstart'" >> /etc/rc.local

 

实际操作中可能会出现不能自动启动oracle数据库的情况!

三、配置Oracle的自动启动脚本动

首先在/etc/rc.d/init.d/目录下配置Oracle的服务文件

#touch /etc/rc.d/init.d/oracle
#cd /etc/rc.d/init.d
#chmod a+x oracle


然后vi编辑oracle文件,将一下脚本输入到oracle中

#!/bin/sh
#
# /etc/rc.d/init.d/oracle
# whoami
# root
# chkconfig: 345 99 10
# /etc/init.d/oracle
# description: starts the oracle dabase deamons
#


case "$1" in
start)
        echo -n "Starting Oracle Databases: "
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        su - oracle -c dbstart >> /var/log/oracle
        echo "Done."
        echo -n "Starting Oracle Listeners: "
        su - oracle -c "lsnrctl start" >> /var/log/oracle
        echo "Done."
        echo ""
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Finished." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        touch /var/lock/subsys/oracle
        ;;
stop)
        echo -n "Shutting Down Oracle Listeners: "
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        su - oracle -c "lsnrctl stop" >> /var/log/oracle
        echo "Done."
        rm -f /var/lock/subsys/oracle
        echo -n "Shutting Down Oracle Databases: "
        su - oracle -c dbshut >> /var/log/oracle
        echo "Done."
        echo ""
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Finished." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        ;;
restart)
        echo -n "Restarting Oracle Databases: "
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        su - oracle -c dbstop >> /var/log/oracle
        su - oracle -c dbstart >> /var/log/oracle
        echo "Done."
        echo -n "Restarting Oracle Listeners: "
        su - oracle -c "lsnrctl stop" >> /var/log/oracle
        su - oracle -c "lsnrctl start" >> /var/log/oracle
        echo "Done."
        echo ""
        echo "----------------------------------------------------" >> /var/log/oracle
        date +"! %T %a %D : Finished." >> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log/oracle
        touch /var/lock/subsys/oracle
        ;;
*)
        echo "Usage: oracle {start|stop|restart}"
        exit 1
esac


保存文件,退出以后,添加并启动察看服务。

#chkconfig --add oracle
#chkconfig --list oracle

chkconfig --list oracle的运行结果:

oracle     0:off   1:off   2:off   3:on    4:off   5:on    6:off

根据上面的运行结果,当相应的运行级别为on时(例如:5:on),在对应的/etc/rc.d/rcN.d(例如:和5:on对应的是:/etc/rc.d/rc5.d)下面会生成一个文件:S99oracle,使用vi S99oracle打开该文件,可以看到该文件的内容和/etc/rc.d/init.d/oracle内容相同,表示配置成功,其实,S99oracle是一个到/etc/rc.d/init.d/oracle的链接,我们可以使用file命令来查看:

$file /etc/rc.d/rc5.d/S99oracle

S99oracle:symbolic link to '../init.d/oracle

说明一点:

脚本文件中的:# chkconfig: 345 99 10

指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oracle,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)K10oracle

重启系统,就可以在启动的过程中看到 Starting oracle,因为我们设置的优先级为99,一般是最后启动。[OK]以后就可以了。因为要启动emctl,可能有点慢,等待的时间要稍微长一点。

启动以后可以以root执行oracle start或者oracle stop来启动或停止服务。

注意:

这样的脚本启动一般不会启动实例,如果想让实例也随脚本一起启动的话,就需要修改文件:/etc/oratab
如果这个文件不存在,那么就得运行脚本文件产生它sh /u01/app/oracle/product/10.2.0/root.sh

改/etc/oratab 最后一行
sid:/oracle/product/10.2.0.1:N
=>
sid:/oracle/product/10.2.0.1:Y(其中sid为想要启动的database)

只要在这里设置好后,在配合上面的脚本,即可实现开机自动启动oracle以及实例了.

分享到:
评论

相关推荐

    rhel5_oracle11g开机启动脚本

    ### RHEL5与Oracle11g开机启动脚本详解 #### 概述 在RHEL5(Red Hat Enterprise Linux 5)系统上部署Oracle 11g数据库时,确保数据库能够在系统启动时自动运行是非常重要的。这不仅能提高系统的可用性和响应时间,...

    在RHEL_CentOS 5上配置Oracle 10g

    该脚本将包含启动和停止Oracle服务的命令,并设置环境变量以确保脚本能正确地引用Oracle实例的信息。 ##### 创建脚本内容: ```bash #!/bin/bash # oracledb This Starts/Stops the Oracle Server # # chkconfig: ...

    oracle开机自启脚本

    - `dbshut`:关闭Oracle实例和服务。 - **修改步骤**: - 使用文本编辑器打开`dbstart`和`dbshut`脚本。 - 将其中的`ORACLE_HOME_LISTNER=$1`修改为`ORACLE_HOME_LISTNER=$ORACLE_HOME`。 - 保存并退出。 #### ...

    设置ORACLE自启动

    ### 设置Oracle自启动详解 ...通过以上步骤,我们可以在RHEL 5系统中实现Oracle数据库的自启动功能,从而提高了系统的可靠性和自动化管理水平。需要注意的是,在实际部署过程中可能还需要根据具体情况进行适当的调整。

    Oracle 11gR2 RAC(ASM) on RHEL6.4安装流程

    接下来的步骤包括但不限于安装 Oracle Grid Infrastructure、配置集群软件、创建 ASM 实例以及安装 Oracle 数据库实例等。每个步骤都需按照Oracle官方文档的指导进行,以确保系统的稳定性和可靠性。

    ORACLE11g随RHEL5系统自动启动与关闭的设置方法

    Oracle 11g在Red Hat Enterprise Linux 5 (RHEL5)系统中配置为自动启动和关闭是一项重要的系统管理任务,确保数据库在系统启动时自动运行,并在关机时安全关闭,以保护数据的完整性和一致性。以下是对该设置过程的...

    rhel6或rhel7安装oracle11g2r缺少包pdksh-5.2.14

    5. **创建Oracle用户和组**:为了遵循最佳实践,Oracle数据库应该在非root用户下运行。创建一个新用户(如`oracle`)和一个组(如`dba`),并分配适当的权限。 6. **设置环境变量**:配置`ORACLE_HOME`、`ORACLE_...

    RedHat E. Linux5 安装Oracle 9i

    在Red Hat Enterprise Linux (RHEL) 5操作系统上安装Oracle 9i是一项技术性很强的任务,需要对Linux系统管理以及数据库安装有深入的理解。Oracle 9i是Oracle公司推出的一款数据库管理系统,它提供了高性能、高可用性...

    JamesQiao_RHEL5 Oracle10g 安装

    在本教程中,我们将深入探讨如何在Red Hat Enterprise Linux 5 (RHEL5) 上安装Oracle 10g数据库。Oracle 10g是Oracle公司的一款企业级数据库管理系统,广泛应用于各种规模的企业中,用于存储、管理和处理大量数据。...

    RHEL5_Oracle_RAC_安装_Linux裸设备

    以上步骤只是RHEL5上Oracle RAC安装的简要概述,实际操作中可能还需要处理更多细节问题,例如网络负载均衡、OCR和Voting Disks的初始化、Grid Infrastructure的安装、数据库实例的创建以及 CRS(Cluster Ready ...

    deploying-oracle-11gr2-rac-on-rhel6_1

    - 测试数据库实例的启动和关闭操作。 - 测试故障转移功能,验证自动恢复机制的有效性。 #### 最佳实践 1. **使用 ASM 存储**: - 采用 ASM 提供的自动存储管理功能可以简化数据文件和日志文件的管理。 - 通过...

    虚拟RHEL5上安装oracle rac 11g

    在本篇文章中,我们将详细介绍如何在虚拟化的RHEL5(Red Hat Enterprise Linux 5)环境中部署Oracle RAC 11g。Oracle Real Application Clusters (RAC) 是一种集群数据库解决方案,可提供高可用性和可扩展性。通过...

    实战管理Oracle 12c数据库实例

    Oracle 12c数据库实例管理是 DBA 的核心工作之一,本文将从数据库版本号、参数对比、安装环境、启动数据库阶段等方面详细介绍实战管理Oracle 12c数据库实例的知识点。 1. 数据库版本号 Oracle数据库版本号由五个...

    Redhat Enterprise 5(RHEL5.5)上安装ORACLE 10G Release 2(10.2.0.1) 64位版本 .doc

    在Redhat Enterprise 5 (RHEL5.5)上安装Oracle 10G Release 2 (10.2.0.1) 64位版本是一个复杂的过程,涉及到多个步骤和注意事项。以下是对这个主题的详细说明: 1. **硬件需求**: - 对于64位版本的Oracle 10g,您...

    oracle11g rac+redhat5.5集群配置

    - 启动所有节点上的Oracle实例,并进行实例间的手动切换,以验证集群功能。 - 执行健康检查和性能测试,确保所有组件正常运行。 7. **CRS(Cluster Resource Scheduler)和OCR维护**: - 配置CRS以管理数据库...

    在 RHEL3 上将单一实例数据库转换为 Oracle RAC 10g.doc

    本文将指导用户将单一实例数据库转换为 Oracle RAC 10g,在 RHEL3 上实现高可用性和高性能的数据库集群。Oracle RAC(Real Application Clusters)是一种高可用性解决方案,能够提供高性能、可靠性和安全性的数据库...

    RHEL3上ORACLE9I备份与迁移

    本文将详细讲解如何在RHEL3环境下设置Oracle 9i的归档模式,以及如何利用RMAN(恢复管理器)进行备份和迁移。 首先,确认数据库是否处于归档模式。在SQL*Plus中,以SYSDBA身份登录,执行`archive log list`命令。...

Global site tag (gtag.js) - Google Analytics