Oracle在linux下的开机自启动(详细)转
linux下系统开机oracle自启动(方法一) ---加载为服务自启动、停止
一、dbstart 及 dbshut
1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。
# vi /etc/oratab
orcl:/opt/oracle/102:Y
#Entries are of the form:
#$ORACLE_SID:$ORACLE_HOME:<N|Y>
Oracle数据库的自动启动及停止可籍Oracle提供的dbstart及dbshut。
这些文件又耍依靠 /etc/oratab存在才能使用(虽然更改dbshut和dbstart可解除这限制。)
/etc/oratab格式如下:
--------------------------------------------------------------------------------
SID:ORACLE_HOME:AUTO
--------------------------------------------------------------------------------
例如
--------------------------------------------------------------------------------
*:/opt/oracle9/product/9.2.0.4:N
boss:/opt/oracle9/product/9.2.0.4:Y
--------------------------------------------------------------------------------
二、 init.d 及 rc.d
要在开机关机时自动启动和结束数据库的话,你需要修改 Linux 的启动脚本文件。这并不困难,不过,我需要指出这些改动因应不同的 Linux 发行版本(slackware, debian, redhat 等)而有所不同。
我这些例子适用于 Redhat 5.0。
要为你所用的 Linux 作出修改。
首先,我们要建立会执行 /etc/rc.d/init.d 目录中 dbshut 及 dbstart 的脚本文件。把以下文件命名为 /etc/rc.d/init.d/oracle:
#############################################################
#chkconfig:2345 98 05
#description:Oracle Server
#add for oracle
ORACLE_BASE=/opt/oracle9
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2.0.4
export ORACLE_HOME
ORACLE_SID=BOSS
export ORACLE_SID
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_NLS33
NLS_LANG=american_america.zhs16gbk
export NLS_LANG
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export LD_LIBRARY_PATH
case "$1" in
start)
echo "Starting Oracle..."
su oracle -c "/opt/oracle9/product/9.2.0.4/bin/lsnrctl start"
su oracle -c "/opt/oracle9/product/9.2.0.4/bin/dbstart 1>$ORACLE_HOME/bin/dbstart.log 2>$ORACLE_HOME/bin/dbstart.err"
echo "Started."
exit 0
;;
stop)
echo "Stoping Oracle..."
su oracle -c "/opt/oracle9/product/9.2.0.4/bin/lsnrctl stop"
su oracle -c "/opt/oracle9/product/9.2.0.4/bin/dbshut"
echo "Stoped."
exit 0
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
#############################################################
下面是另一SHELL的
--------------------------------------------------------------------------------
#!/bin/sh
#
#chkconfig:2345 98 05
#description:Oracle Server
#/etc/rc.d/init.d/oracle
#解说∶启动及停止 Oracle 数据库和监听程序
#检查如何执行脚本文件
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
不要吝啬於检查这个文件到底有没有真的正确地启动和停止系统中的数据库。请检查记录档(log file),看看有没有错误讯息。
弄妥这脚本文件後,我们要在正确的执行等级目录 (runlevel directories) /etc/rc.d/rcX.d 中建立及删除符号连结 (symbolic links)。
以下指令确保在执行等级 2, 3 , 4, 5 下会叫出数据库∶
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle
要在重新启动时停止数据库,我们需要以下连结∶
$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc1.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动
========================
把oracle service添加到服务里
# chkconfig –add /etc/rc.d/init.d/oracle
查看自动启动设置是否成功:
# chkconfig –list oracle
oracle 0:关闭 1:关闭 2:关闭 3:开启 4:开启 5:开启 6:关闭
*从上面可以看出level为345的都已经开启了,配置成功!
===============================
linux下系统开机oracle自启动(方法二)
以root身份登录:
$su - root
1、linux下oracle自带的dbstart和dbshut没反应: 修改Oracle系统配置文件/etc/oratab文件: #vi /etc/oratab
/etc/oratab 格式为: SID:ORACLE_HOME:AUTO
把AUTO域设置为Y(大写),我的为:
oradb:/opt/u01/app/oracle/product/9.2.0.4:Y
只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
2、修改/etc/rc.d/rc.local配置文件
在/etc/rc.d/rc.local中加入如下内容: #vi /etc/rc.d/rc.local
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start"
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/dbstart start"
3、重新启动
#reboot
4、连接测试(以oracle身份登录)
$sqlplus "
[email=sys/oracle@oradb]sys/oracle@oradb[/email]
as sysdba"
...
sql>
5、说明自启动成功了
名称:su
使用权限:所有使用者
使用方式:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
说明:变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
参数:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
范例:
su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。
su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell。
su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)。
Oracle在linux下的开机自启动(详细)转的更多相关文章
- Linux下设置开机自启动Tomcat
方法一: linux 下tomcat开机自启动修改Tomcat/bin/startup.sh 为: export JAVA_HOME=/usr/java/j2sdk1..2_08 export CLA ...
- postgresql数据库linux下设置开机自启动
设置PostgreSQL开机自启动PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下cd /opt/soft_bak/postgre ...
- linux下redis开机自启动
将/usr/local/app/redis-4.0.8/redis.conf文件中daemonize no改为daemonize yes 在/etc目录下新建redis目录:mkdir /etc/re ...
- linux下tomcat开机自启动
tomcat自启动配置: 方法一: vi /etc/rc.local 添加如下一行 /opt/apache-tomcat-7.0.29/bin/startup.sh (脚本绝对路径) 注意:要添加在e ...
- Linux下mysql开机自启动
1,cd /etc/init.d/ 2,chmod +x mysql 3,chkconfig add mysql 4,chkconfig --list 显示服务列表 如果看到m ...
- debian linux 下设置开机自启动
懒得写了,一张图简单明了.其实很简单,一开始没有加上nohup有点问题.现在问题已解决.
- Linux下Tomcat开机自动启动
linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式.下面我们分别介绍这两种方法. 1.shell脚本启动 众 ...
- Linux设置程序开机自启动,系统命令chkconfig及linux /etc/rc.d/目录的详解
整理了linux下程序开启几种方式,转载相关博客做统一记录 <linux程序设置开机自启动>转载自:https://www.cnblogs.com/flcz/p/7691532.html ...
- 在linux下安装配置rabbitMQ详细教程
在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...
随机推荐
- l2tp vpn客户端
1. 添加PPA sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp 2. 刷新软件包缓存 sudo apt-get upd ...
- Phantom omini设备开发流程
最近在忙着做毕业设计,我的毕业设计是做力觉临场感的,所以在力反馈设备Phantom Omini,由于整个设备是国外的国内的资料很少,我是14年拿到这个设备的但是真的是在开发是在16年了,中间有很多事没 ...
- Node.js 项目搭建
关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版. ...
- android讯飞语音开发常遇到的问题
场景:android项目中共使用了3个语音组件:在线语音听写.离线语音合成.离线语音识别 11208:遇到这个错误,授权应用失败,先检查装机量(3台测试权限),以及appid的申请时间(35天期限), ...
- 使用sqlserver日期函数获取当前日期
使用sqlserver日期函数中的getdate()可以获取当现的日期,下面就将为您介绍这种使用sqlserver日期函数获取当前日期的方法,供您参考,希望对您学习sqlserver日期函数有所启迪. ...
- 面向对象版js分页
基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...
- Jquery方法的应用
<body> <div id="one"><span>one</span></div><div class=&qu ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- IE 选择文字后 显示小箭头 加速按钮
IE - 工具 - Internet选项 - 高级 - 不选择<在选择是显示加速按钮>选项就可以了.
- android SDK更新
在proxy.ini里的[profile]下加上如下配置即可更新android SDK了 dl-ssl.google.com = nofakehttps Oct 26, 2014 #2 2828qw. ...