Fedora 15 上的 Oracle 11g 数据库启动自动化

Fedora 15 上的 Oracle 11g 数据库启动自动化

我使用以下命令在 Fedora 15 系统上成功安装了 Oracle 11g指导。不幸的是,与我使用 Windows 时不同,每次重新启动计算机(它是开发计算机,而不是服务器)时,我似乎都需要重新启动数据库。

我不确定这是预期的行为,还是我在安装数据库时搞砸了某些事情。

不管怎样,每次我重新启动机器时我都需要:

  • 用于su将当前用户更改为oracle用户。
  • 用于sqplus启动数据库。

像这样:

(oracle@machine)$ sqplus / as sysdba
SQL> startup
SQL> (Ctrl+D)
  • 然后我需要使用启动监听器lsnrctl

再一次:

(oracle@machine)$ lsnrctl start 
  • 现在企业管理器也应该启动了。

至少:

(oracle@machine)$ emctl start dbconsole

我已从以下位置获取了这些说明这里

如果这很菜鸟,我很抱歉,我通常有一个 DBA 或系统管理员来为我设置一个环境,但我是在家里做这件事,在那里我没有任何帮助(也许我作为一个开发人员被宠坏了:) )。

我想知道是否可以使用 shell 脚本在 Fedora 15 上自动执行此操作。自动化之后,我想将其挂接到 init 系统上,这样每次启动机器时都会执行它。

答案1

我找到了答案有关如何在 CentOS 5.3 上安装 Oracle 11g 的指南。我对初始化脚本做了一些小的调整。为了完整起见,我将在此处添加步骤:

  • 编辑并将配置文件中的/etc/oratab最后一个更改为.NY

像这样:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N

对此:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
  • 创建脚本/etc/init.d/dbora

它应该有这样的内容:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
        echo "Oracle startup: cannot start"
        exit
fi

case "$1" in

'start')

# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
;;

'stop')

# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
;;

esac
  • 然后更改脚本权限。

像这样:

chmod 750 /etc/init.d/dbora
  • 将其添加到 chkconfig

像这样:

chkconfig --level 345 dbora on

/etc/init.d/dbora start用和进行测试/etc/init.d/dbora stop。确保dbora脚本上的路径正确。

答案2

我认为lsnrctl start已经包含在dbstart脚本中了。

相关内容