Oracle 最简单的随系统自动启动,oracle随系统自动
Oracle 最简单的随系统自动启动
俗话说用户是上帝,他们有时候提出一个问题非常的简单,就只需要一句话,一分钟就完事了,但是拿到我们DBA来说,可能至少得半个小时甚至半个月才能满足他的一句话,有没有更好更快的办法呢,我告诉大家这是有的;
我就拿一个例子来说,用户通常都会为了维护简单,需要数据库自动随系统启动,一句非常简单的话,但是拿给DBA来说至少得多花半个小时的时间来配置实现这个功能。那么今天你看完这篇文档之后,可以在他的话还没有说完就可以完成自启动的配置,非常简单。
一、配置自动
1、添加启动项 [root@db01 ~]# cat >> /etc/rc.d/rc.local <<EOF su - oracle -c "lsnrctl start" su - oracle -c "sqlplus sys/oracle as sysdba @/home/oracle/.script/.startup" su - oracle -c "emctl start dbconsole" EOF 2、创建并编辑启动文件 [root@db01 ~]#su - oracle [root@db01 ~]#mkdir -p /home/oracle/.script/ [root@db01 ~]# cat > /home/oracle/.script/.startup <<EOF startup; alter system register; exit 0 EOF
二、重启验证:

三、确定数据库和EM以及监听是否都已经起来
###监听状态 [oracle@db01 ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 03-OCT-2014 07:26:22 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production Start Date 03-OCT-2014 07:13:54 Uptime 0 days 0 hr. 12 min. 28 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /DBSoft/Product/11.2.3/db_1/network/admin/listener.ora Listener Log File /DBSoft/diag/tnslsnr/db01/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521))) Services Summary... Service "woo" has 1 instance(s). Instance "woo", status READY, has 1 handler(s) for this service... Service "wooXDB" has 1 instance(s). Instance "woo", status READY, has 1 handler(s) for this service... The command completed successfully ###数据库状态 SQL> select instance_name,host_name,status from v$instance; INSTANCE_N HOST_NAME STATUS ---------- ---------- ------------ woo db01 OPEN ###EM状态 [oracle@db01 ~]$ emctl status dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0 Copyright (c) 1996, 2011 Oracle Corporation. All rights reserved. https://db01:1158/em/console/aboutApplication Oracle Enterprise Manager 11g is running. ------------------------------------------------------------------ Logs are generated in directory /DBSoft/Product/11.2.3/db_1/db01_woo/sysman/log
至此我们已经确定,这样也可以将数据库配置为自动启动,且比Oralce推荐的老方法更为简单,老方法见如下链接:
Linux
下 Oracle随系统自动启动和关闭(老方法)
首先打开服务,在控制面板的管理工具中,看看
OracleOraDb10g_home1iSQL*Plus
OracleOraDb10g_home1TNSListener
OracleServiceORACLE(这里要改成:OracleService加上你的数据库名称 ,我的数据库就叫ORACLE,所以是OracleServiceORACLE )几个进程是自动还是其他的,自动的就不用管他了,这时候如果启动计算机的时候数据库启动不了就有可能是你的系统问题或者oracle没有装好,如果是手动的,解决方法如下:
net start OracleOraDb10g_home1iSQL*Plus
net start OracleOraDb10g_home1TNSListener
net start OracleServiceORACLE(这里要改成:OracleService加上你的数据库名称 ,我的数据库就叫ORACLE,所以是OracleServiceORACLE ) 我给你这段脚本,你把它放在.bat文件中,再把这个bat文件放在“开始菜单--所有程序--启动 ”中这样开机的时候就会启动了
这是我当初在RHEL5上安装oracle11gR2时找到的资料,按照步骤是配置成功的:
首先,要在RHEL中设置允许ORACLE系统自动启动,因为默认情况下是设置为不允许的。操作如下:
在root账户下修改/etc/oratab 文件:
# vi /etc/oratab
找到orcl=/db/app/oracle/product/11.1.0/db_1 :N这一行
改为:
orcl=/db/app/oracle/product/11.1.0/db_1 :Y
也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。
然后,是修改ORACLE自带的启动与关闭脚本,分别是dbstart和dbshut。执行这两个脚本就可以实现ORACLE脚本的启动与关闭。
在oracle账户下修改$ORACLE_HOME/bin/dbstart文件:
复制代码 代码如下:
# su - ORACLE
$ cd $ORACLE_HOME/bin
$ vi dbstart
找到 ORACLE_HOME_LISTNER=$1这一行
改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
之所以做这一步,是因为在这个脚本自动生成的时候,也就是ORACLE被安装进RHEL的时候,这个脚本并不知道你的
ORACLE_HOME_LISTNER是什么,现在要将这个参数显示的写明,这样就不会在执行这个脚本的时候报
ORACLE_HOME_LISTNER没有被指定的错误了。注意:dbstart和dbshut脚本在10g之后就已经将监听器的启动与关闭合并进数
据库实例的启动与关闭脚本里面了。而不再是单独分开的了。
同样的方式,我们也要修改dbshut的这个参数。这里就不再详细写出了,他们在同一个目录下。
再次,就是写一个脚本,把它注册为一个系统服务,让它在开机与关机的时候运行。它的作用就是调用并执行dbstart和dbshut。这样不
就实现了数据库启动与关闭了吗?!这个脚本被放在/etc/init.d目录中,脚本的名字是oracle11
脚本如下:
复制代码
代码如下:
#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup
Script for oracle Databases
# /etc/rc.d/init.d/oradbstart
export
ORACLE_BASE=/db/app/oracle/
export
ORACLE_HOME=/db/app/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
echo
"-----startup oracle-----" >> /var/log/oracle11log
su oracle -c
$ORACLE_HO......余下全文>>