`
LJ你是唯一LT
  • 浏览: 244061 次
社区版块
存档分类
最新评论

oracle数据库实现自动启动

阅读更多
oracle数据库实现自动启动:

1)使用自带的dbstart命令实现自启动

1.环境变量检查:
[oracle@oratest ~]$ echo $ORACLE_HOME
/u01/oracle

如果没有设置或设置与实际不符,到oracle家目录下的.bash_profile中添加
export ORACLE_BASE=/u01
export ORACLE_HOME=/u01/oracle
export SID=tinadb
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$ORALCE_HOME/lib:/usr/lib

2.命令dbstart所在位置
[oracle@oratest bin]$ cd /u01/oracle/bin
[oracle@oratest bin]$ ll |grep dbs
-rwxr-x---. 1 oracle oinstall      6030 Jan  1  2000 dbshut
-rwxr-x---. 1 oracle oinstall     13797 Jan  1  2000 dbstart

[oracle@oratest bin]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/oracle/bin/dbstart ORACLE_HOME
Processing Database instance "tinadb": log file /u01/oracle/startup.log

3.修改文件/etc/oratab内容
   su - oracle
   vi /etc/oratab
   修改这些句话的最后的字母N为Y。
     tinadb:/u01/oracle:N
改成 tinadb:/u01/oracle:Y

4.修改文件/etc/rc.d/rc.local内容
    su - root
    vi /etc/rc.d/rc.local
    添加:
    su - oracle  -c '$ORACLE_HOME/bin/lsnrctl start tinadb'
    sleep 2s
    su - oracle  -c '$ORACLE_HOME/bin/dbstart'
---这里不带tinadb就会默认启动LISTENER的监听名,dbstart有启动监听的命令,这行可以不要

5.修改dbstart
   vi /u01/oracle/bin/dbstart
   ORACLE_HOME_LISTNER=$1
   改成下面的:
   ORACLE_HOME_LISTNER=$ORACLE_HOME
  
   $ORACLE_HOME_LISTNER/bin/lsnrctl start>> $LOG 2>&1 &
   改成自己的监听名:
   $ORACLE_HOME_LISTNER/bin/lsnrctl start tinadb>> $LOG 2>&1 & --相应修改

6.手动执行试试能否成功
[oracle@oratest bin]$ dbstart           ---已经改成既可以启动监听,也可以启动库
Processing Database instance "tinadb": log file /u01/oracle/startup.log

[oracle@oratest bin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 15-DEC-2015 10:55:29

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     tinadb
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                15-DEC-2015 10:54:52
Uptime                    0 days 0 hr. 0 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/oracle/network/admin/listener.ora
Listener Log File         /u01/diag/tnslsnr/oratest/tinadb/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.253)(PORT=1521)))
Services Summary...
Service "tinadb" has 2 instance(s).
  Instance "tinadb", status UNKNOWN, has 1 handler(s) for this service...
  Instance "tinadb", status READY, has 1 handler(s) for this service...
Service "tinadbXDB" has 1 instance(s).
  Instance "tinadb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oratest bin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 15 10:55:37 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
tinadb OPEN

ok!!

7.关闭主机,看db和监听是否都正常自动启动
[root@oratest ~]# reboot
启动后:
[root@oratest ~]# su - oracle
[oracle@oratest ~]$ lsnrctl status   --监听正常

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 15-DEC-2015 11:19:04

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     tinadb
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                15-DEC-2015 11:18:07
Uptime                    0 days 0 hr. 0 min. 57 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/oracle/network/admin/listener.ora
Listener Log File         /u01/diag/tnslsnr/oratest/tinadb/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.253)(PORT=1521)))
Services Summary...
Service "tinadb" has 2 instance(s).
  Instance "tinadb", status UNKNOWN, has 1 handler(s) for this service...
  Instance "tinadb", status READY, has 1 handler(s) for this service...
Service "tinadbXDB" has 1 instance(s).
  Instance "tinadb", status READY, has 1 handler(s) for this service...
The command completed successfully

[oracle@oratest ~]$ sqlplus / as sysdba  --数据库正常

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 15 11:19:22 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
tinadb OPEN

db和监听运行正常的状态下,手动执行dbstart也不会报错。会重启一次


2)使用自制脚本实现自启动
注意dbshut也要去修改ORACLE_HOME_LISTNER=$1--->$ORACLE_HOME

1.脚本要存放在/etc/init.d/目录下,命名可以自定义
[root@oratest ~]# cd /etc/init.d
[root@oratest init.d]# vi oracle11g    ---还是用oracle命名比较方便!
#!/bin/bash
#chkconfig: - 20 80
#description: Oracle auto start-stop script.
export ORACLE_HOME=/u01/oracle
export ORACLE_BASE=/u01/
export ORACLE_SID=tinadb
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNER=oracle
LOGFILE=/var/log/oracle11g.log

echo "#################################" >>${LOGFILE}
date +"%Y-%m-%d %H:%M:%S: Run Oracle" >>${LOGFILE}
if [ ! -f ${ORACLE_HOME}/bin/dbstart ] || [ ! -f ${ORACLE_HOME}/bin/dbshut ]; then
    echo "Error: Missing the script file ${ORACLE_HOME}/bin/dbstart or ${ORACLE_HOME}/bin/dbshut!" >>${LOGFILE}
exit
fi

start(){
# Start the Oracle databases:
su - $ORA_OWNER -c '$ORACLE_HOME/bin/dbstart'
su - $ORA_OWNER -c '$ORACLE_HOME/bin/lsnrctl start tinadb'
}

stop(){
# Stop the Oracle databases:
su - $ORA_OWNER -c '$ORACLE_HOME/bin/lsnrctl stop'
su - $ORA_OWNER -c '$ORACLE_HOME/bin/dbshut'  
}

case "$1" in
    'start')
        start >> ${LOGFILE}
;;
    'stop')
        stop >> ${LOGFILE}
;;
    'restart')
        stop >> ${LOGFILE}
        start >> ${LOGFILE}
esac
date +"%Y-%m-%d %H:%M:%S: Finished." >>${LOGFILE}
echo "#################################" >>${LOGFILE}


2.赋予执行权限
chmod a+x /etc/init.d/oracle11g

3.手动执行命令
/etc/init.d/oracle start #启动oracle(包括数据库实例、监听器、EM)
/etc/init.d/oracle stop #关闭oracle
/etc/init.d/oracle restart #重启oracle

---生成的日志内容如下:
#################################
2015-12-15 14:20:26: Run Oracle
Processing Database instance "tinadb": log file /u01/oracle/startup.log

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 15-DEC-2015 14:20:35

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

TNS-01106: Listener using listener name tinadb has already been started
2015-12-15 14:20:35: Finished.
#################################
#################################
2015-12-15 14:21:39: Run Oracle

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 15-DEC-2015 14:21:39

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfully
Processing Database instance "tinadb": log file /u01/oracle/shutdown.log
2015-12-15 14:21:47: Finished.
#################################


4.将 oracle 添加到 chkconfig中:
报错:
[root@oracle9i mysql]# chkconfig --add oracle
service oracle does not support chkconfig

补充说明1:
vi /etc/init.d/oracle11g
# chkconfig: 2345 10 90
# description: ....
其中2345是默认启动级别,级别有0-6共7个级别。

  等级0表示:表示关机   

  等级1表示:单用户模式   

  等级2表示:无网络连接的多用户命令行模式   

  等级3表示:有网络连接的多用户命令行模式   

  等级4表示:不可用   

  等级5表示:带图形界面的多用户模式   

  等级6表示:重新启动

10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。

补充说明2:可使用如下命令查看和设置oracle服务的开机启动级别:
chkconfig | grep oracle11g  #查看oracle服务的开机启动级别
chkconfig --level 24 oracle11g off #修改oracle服务的开机启动级别
chkconfig --level 35 oracle11g on

5.至此可使用如下命令对oracle的启动或关闭进行管理
service oracle11g start #启动
service oracle11g stop #关闭
service oracle11g restart #重启

6.建立连接:
ln -s /etc/init.d/oracle11g  /etc/rc0.d/K80oracle11g   #关机执行
ln -s /etc/init.d/oracle11g  /etc/rc6.d/K80oracle11g   #重启执行

去目录下发现已经有这两个软链接存在:
lrwxrwxrwx. 1 root root 19 Dec 15 14:30 K80oracle11g -> ../init.d/oracle11g
lrwxrwxrwx. 1 root root 19 Dec 15 14:30 K80oracle11g -> ../init.d/oracle11g

以后就可以使用service来启动oracle数据库了~~~

0
0
分享到:
评论

相关推荐

    Oracle数据库异地自动备份.pdf

    本文将结合实践经验,讨论UNIX环境下Oracle数据库的自动备份实现方法。 一、数据库export备份 数据库export备份是将Oracle数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库...

    Windows 下 oracle 服务自动启动设置

    在 Windows 操作系统中,设置 Oracle 服务自动启动可以确保数据库服务在需要时自动开启,而不需要每次手动启动实例。这篇文章将详细介绍如何设置 Oracle 服务自动启动,以提高数据库服务的可用性和效率。 为什么...

    oracle数据库自动备份系统

    本系统基于HIS系统开发,已在多家大医院运行....六、支持多个Oracle数据库版本:ORACLE8i、9i、 10g(已经有多个客户使用案例) 七、系统为托盘程序,启动后缩到右下角,管理方便、直观 八、可合作推广

    自动安装Oracle数据库

    本教程将深入讲解如何利用提供的自动安装脚本来实现Oracle数据库的快速部署。 标题中的"自动安装Oracle数据库"指的是通过预先编写好的自动化脚本来完成Oracle数据库的安装过程。这种方法相比传统的手动安装,更加...

    Linux Oracle数据库设置自动归档

    设置Oracle数据库自动归档的步骤如下: 1. **登录Oracle用户**:首先,你需要切换到Oracle用户,通常是通过`su oracle`命令来实现。 2. **连接数据库以管理员身份**:使用sqlplus工具连接到数据库,使用`/as ...

    如何备份还原oracle数据库

    4. **自动化管理**:通过脚本或工具实现备份过程的自动化管理,减少人工干预。 综上所述,备份与恢复Oracle数据库是一项复杂但极其重要的任务。通过理解不同的备份类型、使用正确的工具以及遵循良好的实践指南,...

    oracle数据库日志查看方法

    ### Oracle数据库日志查看方法详解 #### 一、概述 Oracle数据库是企业级应用中广泛使用的数据库管理系统之一,为了确保数据库系统的稳定运行和快速定位问题,掌握Oracle数据库日志查看方法至关重要。本文将详细...

    Oracle数据库文件自动备份代码

    总的来说,"Oracle数据库文件自动备份代码"提供了一种自动化的方式来保护Oracle数据库,免去了手动备份的繁琐工作。正确地配置和使用这个工具,可以极大地提高数据安全性,降低因数据丢失带来的业务风险。

    如何连接oracle数据库及故障解决办法

    如果你已经安装了 Oracle 数据库,那么你不需要在单独的机器上安装 Oracle 客户端,因为安装 Oracle 数据库的时候会自动安装 Oracle 客户端。 在安装了 Oracle 客户端软件之后,需要正确配置 sqlnet.ora 文件和 ...

    设置oracle10g自动启动

    在Redhat Linux环境中设置Oracle 10g数据库自动启动是一项重要的系统管理任务,这确保了在服务器重启后,Oracle数据库能够自动恢复并提供服务。Oracle 10g是一款广泛使用的数据库管理系统,尤其在企业级应用中,其...

    Oracle数据库课程大作业.pdf

    在Oracle数据库课程中,学生们通常会被要求掌握一系列基础知识,包括数据库的逻辑存储结构、服务端口设置、实例启动过程、数据库操作以及索引的优缺点等。 1. Oracle的逻辑存储结构主要包括表空间(Tablespaces)、...

    如何查看、启动或关闭oracle数据库的归档模式

    ### 如何查看、启动或关闭Oracle数据库的归档模式 #### 归档模式概述 在Oracle数据库中,归档模式(Archivelog Mode)是一种重要的数据保护机制,它允许数据库在发生故障时进行完整的恢复。当数据库处于归档模式时...

    oracle数据库的启动和关闭

    Oracle数据库的启动和关闭是数据库管理员(DBA)日常维护工作的重要部分,这些操作对于数据库的性能优化和问题排查至关重要。下面将详细讲解这个过程中的关键步骤和注意事项。 首先,关闭数据库时,如果用户已登录...

    Oracle数据库试题100题(附答案)

    首先,在Oracle数据库的启动过程中,三个必须的文件是数据文件、控制文件和日志文件。归档日志文件不是启动时必须的,但是它在恢复过程中是必须的。控制文件记录了数据库的物理结构信息,例如数据文件和日志文件的...

    linux下oracle服务监听开始自动启动

    本文将详细解析如何在Linux环境下实现Oracle服务和监听器的自动启动,并对提供的脚本代码进行逐行解读。 #### 一、概述 在Linux系统中,可以通过编写和修改`/etc/init.d/`目录下的脚本来实现服务的自动启动。对于...

    windows上oracle数据库rman自动备份策略

    总结,通过RMAN和Windows任务计划程序的结合,企业可以在Windows环境下实现Oracle数据库的自动备份策略,确保数据安全的同时,降低管理复杂性。了解并熟练掌握这些知识,对于数据库管理员来说至关重要,因为这直接...

    手工创建oracle数据库

    PFILE(Parameter File),即参数文件,是Oracle数据库在启动时读取的配置文件,用于设定数据库的各种运行参数。在手工创建数据库的过程中,PFILE的准备尤为关键,它决定了数据库的初始配置,包括数据块大小、控制...

    Oracle数据库异地自动备份的实现.pdf

    Oracle数据库异地自动备份的实现是企业确保数据安全和业务连续性的重要策略。本文主要探讨了在Windows环境下,如何结合任务计划和Oracle数据库的导出功能,实现周期性的异地自动备份。 首先,文章强调了自然灾害和...

    Unix和Linux下的Oracle数据库管理

    在IT领域,Unix和Linux操作系统是企业级Oracle数据库服务器的常用平台。Oracle数据库管理系统是全球最广泛使用的数据库系统之一,尤其在大型企业和金融机构中。本文将深入探讨在Unix和Linux环境下如何有效地管理和...

Global site tag (gtag.js) - Google Analytics