### Linux 下配置 Oracle 10g 自动启动的详细步骤 #### 一、概述 本文档将详细介绍如何在Linux环境下实现Oracle 10g数据库服务的自动启动。通过以下步骤,用户可以在系统启动时自动运行Oracle 10g的相关服务,从而避免手动启动带来的不便。 #### 二、准备工作 确保已经安装好Oracle 10g,并且能够正常启动数据库服务。此外,还需要具备root权限以及Oracle用户的登录权限。 #### 三、修改 `/etc/oratab` 文件 1. **使用root用户编辑 `/etc/oratab` 文件**: ```bash $ gedit /etc/oratab ``` 2. **查找并修改Oracle实例条目**: 将原有条目 ``` orcl:/ORACLE/app/product/10.2.0/db_1:N ``` 修改为 ``` orcl:/ORACLE/app/product/10.2.0/db_1:Y ``` 这里的“Y”表示该Oracle实例在系统启动时会自动启动。 #### 四、配置 `$ORACLE_HOME/bin/dbstart` 文件 1. **切换到Oracle用户并进入 `$ORACLE_HOME/bin` 目录**: ```bash # su - oracle $ cd $ORACLE_HOME/bin ``` 2. **使用文本编辑器打开 `dbstart` 文件**: ```bash $ gedit dbstart ``` 3. **修改 `$ORACLE_HOME_LISTNER` 变量**: 将其设置为正确的Oracle监听器路径: ``` ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1 ``` 确保路径正确无误。 #### 五、调整权限与日志文件 为了使Oracle服务能够正常启动,需要对相关文件进行权限设置以及创建必要的日志文件。 1. **调整权限**: ```bash # su - root # cd $ORACLE_HOME # chown oracle:oinstall startup.log # chown oracle:oinstall shutdown.log ``` 2. **执行启动脚本**: ```bash # su - oracle $ cd $ORACLE_HOME/bin $ ./dbstart ``` 也可以执行关闭脚本 `dbshut`。 3. **检查监听器状态**: ```bash $ lsnrctl status ``` #### 六、编写 `/etc/rc.d/init.d/oradbstart` 脚本 1. **使用root用户编辑 `oradbstart` 文件**: ```bash # gedit /etc/rc.d/init.d/oradbstart ``` 2. **编写脚本内容**: ```bash #!/bin/bash # chkconfig: 345 99 10 # description: Startup script for Oracle Databases # export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin ORA_OWNR="oracle" if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]; then echo "Oracle startup: cannot start" exit 1 fi case "$1" in start) echo -n "Starting Oracle: " su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart" touch /var/lock/oracle su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplus ctrl start" echo "OK" ;; stop) echo -n "Shutdown Oracle: " su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplus ctrl stop" su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut" su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" rm -f /var/lock/oracle echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` {start|stop|restart}" exit 1 ;; esac ``` 3. **设置脚本执行权限**: ```bash # chmod +x /etc/rc.d/init.d/oradbstart ``` 4. **注册服务**: 使用 `chkconfig` 命令注册服务,以便在系统启动时自动运行。 ```bash # chkconfig --add oradbstart ``` #### 七、验证启动脚本 1. **手动测试启动脚本**: ```bash # service oradbstart start ``` 2. **手动测试停止脚本**: ```bash # service oradbstart stop ``` 3. **查看监听器状态**: ```bash $ lsnrctl status ``` 4. **重新启动系统**: 重启系统后,检查Oracle服务是否已自动启动。 #### 八、常见问题与解决方法 1. **如果启动时出现错误**: - 检查环境变量是否正确设置。 - 检查 `$ORACLE_HOME` 和 `$ORACLE_SID` 的值是否正确。 - 查看日志文件 `/u01/app/oracle/product/10.2.0/db_1/log` 中是否有错误信息。 2. **如果服务没有自动启动**: - 检查 `/etc/rc.d/init.d/oradbstart` 脚本中的路径和变量是否正确。 - 确认服务是否已经通过 `chkconfig` 注册。 #### 九、总结 通过以上步骤,您可以在Linux环境下成功配置Oracle 10g数据库服务的自动启动功能。这不仅可以简化日常管理流程,还能提高系统的稳定性和可用性。在实际操作过程中,请根据具体情况进行适当调整。
$ gedit /etc/oratab
orcl:/ORACLE/app/product/10.2.0/db_1:N
改为:
orcl:/ORACLE/app/product/10.2.0/db_1:Y
也就是将最后的N改为Y
二、使用ORACLE用户修改$ORACLE_HOME/bin/dbstart文件:
# su - ORACLE
$ cd $ORACLE_HOME/bin
$ gedit dbstart
找到 ORACLE_HOME_LISTNER=.....这行, 修改成
ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
或者直接修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
注意:是修改,不是增加,可是使用gedit的查找功能查找:
ORACLE_HOME_LISTNER,然后进行修改,修改后保存
三、测试运行 dbshut, dbstart 看能否启动ORACLE 服务及listener服务:
1.修改dbstart和dbshut的日志文件的权限:
$su - root
#cd $ORACLE_HOME
#chown oracle:oinstall startup.log
#chown oracle:oinstall shutdown.log
2.执行相应的脚本进行测试
#su - oracle
$cd $ORACLE_HOME/bin
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助