⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oracle-howto-6.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 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:Y
leaveup:/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 1
esac
</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 + -