📄 oracle-howto-6.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7"> <TITLE>Oracle Database HOWTO: 自动启动及停止</TITLE> <LINK HREF="Oracle-HOWTO-7.html" REL=next> <LINK HREF="Oracle-HOWTO-5.html" REL=previous> <LINK HREF="Oracle-HOWTO.html#toc6" REL=contents></HEAD><BODY><A HREF="Oracle-HOWTO-7.html">Next</A><A HREF="Oracle-HOWTO-5.html">Previous</A><A HREF="Oracle-HOWTO.html#toc6">Contents</A><HR><H2><A NAME="s6">6. 自动启动及停止</A></H2><H2><A NAME="ss6.1">6.1 <CODE>dbstart</CODE> 及 <CODE>dbstop</CODE></A></H2><P>Oracle 资料库的自动启动及停止可籍 Oracle 提供的 <CODE>dbstart</CODE> 及 <CODE>dbshut</CODE> 档达成 (在 7.3.3.0.0 中)。这些档案又耍依靠 <CODE>/etc/oratab</CODE> 存在才能使用(虽然更改 <CODE>dbshut</CODE> 和 <CODE>dbstart</CODE> 档可使解除这限制。)<P><CODE>/etc/oratab</CODE> 档格式如下:<BLOCKQUOTE><CODE><HR><PRE>SID:ORACLE_HOME:AUTO</PRE><HR></CODE></BLOCKQUOTE><P>例如<BLOCKQUOTE><CODE><HR><PRE>orcl:/home/oracle/7.3.3.0.0:Yleaveup:/home/oracle/7.3.2.1.0:N</PRE><HR></CODE></BLOCKQUOTE><H2><A NAME="ss6.2">6.2 <CODE>init.d</CODE> 及 <CODE>rc.d</CODE></A></H2><P>要在开机关机时自动启动和结□资料库的话,你需要修改 Linux 的启动命令稿。这并不困难,不过,我需要指出这些改动因应不同的 Linux 发行版本(slackware, debian, redhat 等)而有所不同。我这些例子适用於 Redhat 5.0。要为你所用的 Linux 作出修改,请先参考你手头上的 Linux 文件。(虽然这实际上应该适用於所有 Sys V UNIX。)<P>首先,我们要建立会执行 <CODE>/etc/rc.d/init.d</CODE> 目录中 <CODE>dbshut</CODE> 及 <CODE>dbstart</CODE> 的命令稿。把以下档案命名为 <CODE>/etc/rc.d/init.d/oracle</CODE>:<BLOCKQUOTE><CODE><HR><PRE>#!/bin/sh## /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 1esac</PRE><HR></CODE></BLOCKQUOTE><P>不要吝啬於检查这个档案到底有没有真的正确地启动和停止系统中的资料库。请检查记录档(log file),看看有没有错误讯息。<P>弄妥这命令稿後,我们要在正确的执行等级目录 (runlevel directories) <CODE>/etc/rc.d/rcX.d</CODE> 中建立及删除符号连结 (symbolic links)。<P>以下指令确保在执行等级 2, 3 及 4 下会叫出资料库∶<BLOCKQUOTE><CODE><HR><PRE>$ 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</PRE><HR></CODE></BLOCKQUOTE><P>要在重新启动时停止资料库,我们需要以下连结∶<BLOCKQUOTE><CODE><HR><PRE>$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动</PRE><HR></CODE></BLOCKQUOTE><HR><A HREF="Oracle-HOWTO-7.html">Next</A><A HREF="Oracle-HOWTO-5.html">Previous</A><A HREF="Oracle-HOWTO.html#toc6">Contents</A></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -