免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: noise
打印 上一主题 下一主题

如何使Oracle10g在HPUX11下开机自动启动关机自动关闭?! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-09-15 09:43 |只看该作者
原帖由 doni 于 2006-9-15 08:39 发表
HP-UX没用过,就SOLARIS下的情况而言,有这样几点
首先,应该注意你的.profile,而不是.dtprofile
其次,自动启动和关闭的脚本可以写成这样
su - oracle -c "dbstart; lsnrctl start"
还有就是,启动脚本 ...


oracle的.dtprofile文件内容:

# ##########################################################################
# #
# #  .dtprofile
# #
# #  user personal environment variables
# #
# #  Common Desktop Environment (CDE)
# #
# #  (c) Copyright 1996 Digital Equipment Corporation.
# #  (c) Copyright 1993,1994,1996 Hewlett-Packard Company.
# #  (c) Copyright 1993,1994,1996 International Business Machines Corp.
# #  (c) Copyright 1993,1994,1996 Sun Microsystems, Inc.
# #  (c) Copyright 1993,1994,1996 Novell, Inc.
# #  (c) Copyright 1996 FUJITSU LIMITED.
# #  (c) Copyright 1996 Hitachi.
# #
# #
# #  $XConsortium: dtprofile.src /main/4 1996/04/21 19:31:50 drk $
# #
# ##########################################################################


# ##########################################################################
# #
# #  Your $HOME/.dtprofile is read each time you login to the Common Desktop
# #  Environment (CDE) and is the place to set or override desktop
# #  environment variables for your session. Environment variables set in
# #  $HOME/.dtprofile are made available to all applications on the desktop.
# #  The desktop will accept either sh or ksh syntax for the commands in
# #  $HOME/.dtprofile.
# #
# ##########################################################################


# ##########################################################################
# #
# #  Random stdout and stderr output from apps started by Session Mgr or
# #  by actions via front panel or workspace menu can be directed into
# #  the user's $HOME/.dt/sessionlogs directory.  By default this output
# #  is not recorded.  Instead it is sent off to /dev/null (Unix's "nothing"
# #  device).
# #
# #  If this random application output is wanted (usually only wanted for
# #  debugging purposes), commenting out following "dtstart_sessionlogfile"
# #  lines will send output to your $HOME/.dt/sessionlogs directory.
# #
# #  Alternatively, can change "/dev/null" to "/dev/console" to see this
# #  debugging output on your console device.  Can start a console via the
# #  Workspace programs menu or via Application Mgr's Desktop Tools
# #  "Terminal Console" icon.
# #
# ##########################################################################

echo "This session log file is currently disabled."  >  $dtstart_sessionlogfile
echo "To enable logging, edit $HOME/.dtprofile and"  >> $dtstart_sessionlogfile
echo "remove dtstart_sessionlogfile=/dev/null line." >> $dtstart_sessionlogfile

export dtstart_sessionlogfile="/dev/null"


# ##########################################################################
# #
# #  By default, the desktop does not read your standard $HOME/.profile
# #  or $HOME/.login files. This can be changed by uncommenting the
# #  DTSOURCEPROFILE variable assignment at the end of this file. The
# #  desktop reads .profile if your $SHELL is "sh" or "ksh", or .login
# #  if your $SHELL is "csh".
# #
# #  The desktop reads the .dtprofile and .profile/.login without an
# #  associated terminal emulator such as xterm or dtterm. This means
# #  there is no available command line for interaction with the user.
# #  This being the case, these scripts must avoid using commands that
# #  depend on having an associated terminal emulator or that interact
# #  with the user. Any messages printed in these scripts will not be
# #  seen when you log in and any prompts such as by the 'read' command
# #  will return an empty string to the script. Commands that set a
# #  terminal state, such as "tset" or "stty" should be avoided.
# #
# #  With minor editing, it is possible to adapt your .profile or .login
# #  for use both with and without the desktop.  Group the statements not
# #  appropriate for your desktop session into one section and enclose them
# #  with an "if" statement that checks for the setting of the "DT"
# #  environment variable. When the desktop reads your .profile or .login
# #  file, it will set "DT" to a non-empty value for which your .profile or
# #  .login can test.
# #
# #  example for sh/ksh
# #
# #    if [ ! "$DT" ]; then
# #      #
# #      # commands and environment variables not appropriate for desktop
# #      #
# #      stty ...
# #   tset ...
# #   DISPLAY=mydisplay:0
# #   ...
# #    fi
# #
# #    #
# #    # environment variables common to both desktop and non-desktop
# #    #
# #    PATH=$HOME/bin:$PATH
# #    MYVAR=value
# #    export MYVAR
# #    ...
# #
# #  example for csh
# #
# #    if ( ! ${?DT} ) then
# #      #
# #      # commands and environment variables not appropriate for desktop
# #      #
# #      stty ...
# #      tset ...
# #      setenv DISPLAY mydisplay:0
# #      ...
# #    endif
# #
# #    #
# #    # environment variables common to both desktop and non-desktop
# #    #
# #    setenv PATH $HOME/bin:$PATH
# #    setenv MYVAR value
# #    ...
# #
# #  Errors in .dtprofile or .profile (.login) may prevent a successful
# #  login. If after you login, your session startup terminates and you
# #  are presented with the login screen, this might be the cause. If this
# #  happens, select the Options->Sessions->Failsafe Session item on the
# #  login screen, login and correct the error. The $HOME/.dt/startlog and
# #  $HOME/.dt/errorlog files may be helpful in identifying errors.
# #
# ##########################################################################

#
#  If $HOME/.profile (.login) has been edited as described above, uncomment
#  the following line.
#
# DTSOURCEPROFILE=true
PATH-$PATH: /user/sbin
TEMP=/tmp
TMPDIR=/tmp
export TEMP TMPDIR
ORACLE_BASSE=/opt/oracle
ORACLE_HOME=/opt/oracle
ORACLE_SID=orcl
ORACLE_TERM=xterm
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM
NLS_LANG=american_america.ZHS16GB231280
export NLS_LANG
ORA_LNS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_LNS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:/usr/lib:$ORACLE_HOME/RDBMS/lib:$ORACLE_HOME/lib32
SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32
export SHLIB_PATH LD_LIBRARY_PATH
PATH=/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:$ORACLE_HOME/bin:/usr/contrib/bin:/$PATH
export PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPAHT:$ORACLE_HOME/network/jlib
export CLASSPATH
EDITOR=vi
export EDITOR
unset TNS_ADMIN
umask 022


红色部分是在安装oracle的时候添加的部分。


root的.profile文件内容:

# @(#)B11.23_LR     

# Default (example of) super-user's .profile file


# Do not put "." in PATH; it is a potential security breach.
# Do not put "/usr/local/bin" in PATH; it is a potential security breach.
# Example assumes /home/root exists.
        set +u

        PATH=/usr/sbin:$PATH:/sbin:/home/root:/opt/oracle/bin

# Be sure that VUE does not invoke tty commands

   if [ ! "$VUE" ]; then

   # Set up the terminal:
        if [ "$TERM" = "" ]
        then
                eval ` tset -s -Q -m ':?hp' `
        else
                eval ` tset -s -Q `
        fi
        stty erase "^H" kill "^U" intr "^C" eof "^D"
        stty hupcl ixon ixoff
        tabs

        echo
        echo "Value of TERM has been set to \"$TERM\". "
        export TERM

        EDITOR=vi
        export EDITOR

   fi               # if !VUE


# Set up shell environment:

        set -u                                        # error if undefined variable.
        trap "echo 'logout root'" 0                  # what to do on exit.


# Set up shell variables:

        MAIL=/var/mail/root
        # don't export, so only login shell checks.

        echo "WARNING:  YOU ARE SUPERUSER !!\n"
       
# Set up Oracle

        NLS_LANG=american_america.ZHS16GB231280
        export NLS_LANG
        ORA_LNS33=$ORACLE_HOME/ocommon/nls/admin/data
        export ORA_LNS33
        LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:/usr/lib:$ORACLE_HOME/RDBMS/lib:$ORACLE_HOME/lib32
        SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32
        export SHLIB_PATH LD_LIBRARY_PATH
        PATH=/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:$ORACLE_HOME/bin:/usr/contrib/bin:/$PATH
        export PATH


最后的红色部分是我后加的。


另外,我使用的脚本是oracle自带的启动和关闭脚本,启动启动脚本已经包括了监听启动部分。

[ 本帖最后由 noise 于 2006-9-15 11:16 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2006-09-15 10:00 |只看该作者
你使用了oracle提供的dbstart脚本,  这个脚本会去检测/etc/oratab, 并根据oratab的内容启动相应的oracle数据库实例, 如果以oracle用户登录后运行dbstart, 则不会运行你添加的环境变量的内容, 因为此时$PATH环境变量不为空。

关于监听的问题, 建议用如下脚本启动
ORACLE_HOME=
export ORACLE_HOME
$ORACLE_HOME/bin/lsnrctl start

运行dbstart和dbstop,你的数据库能够正常启动关闭么?

论坛徽章:
0
13 [报告]
发表于 2006-09-15 10:10 |只看该作者
手工运行su - oracle -c "dbstart"和su - oracle -c "dbshut"可以实现数据库的启动和关闭,只是监听不能正常启动,还报错。

论坛徽章:
0
14 [报告]
发表于 2006-09-15 10:28 |只看该作者
查一下监听的配置文件

论坛徽章:
0
15 [报告]
发表于 2006-09-15 10:29 |只看该作者
换一下启动监听的部分, 看看监听能否正常启动。

论坛徽章:
0
16 [报告]
发表于 2006-09-15 10:31 |只看该作者
你说su - oracle不可以做一些事情, 直接用oracle登录可以做一些事情
可不可以给出su - oracle后的环境变量和直接用oracle登录后的环境变量

论坛徽章:
0
17 [报告]
发表于 2006-09-15 10:34 |只看该作者
监听无法启动的原因找到了,是在oracle下少了个.profile。

论坛徽章:
0
18 [报告]
发表于 2006-09-15 11:52 |只看该作者
我现在试过,把脚本放在/sbin/rc2.d、/sbin/rc3.d、/sbin/rc4.d和/etc/rc.config.d中,只有在/etc/rc.config.d中可以在启动时执行脚本,但这样会导致系统启动变得非常慢,这是什么原因?脚本还可以放在什么位置?而且不影响系统的正常启动速度?

论坛徽章:
0
19 [报告]
发表于 2006-09-15 12:48 |只看该作者

论坛徽章:
0
20 [报告]
发表于 2006-09-15 12:54 |只看该作者
HP-UX的默认运行级别是3, 启动过程中将运行/sbin/rc3.d下的所有脚本,不过不是以start作为参数来运行这个脚本(和linux不太一样), 如果init 2然后再init 3则会以start参数来运行所有脚本
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP