在CentOS上启动Oracle数据库服务是一个涉及多个步骤的过程,包括环境准备、配置修改、脚本编写以及权限设置等,以下是一个详细的指南,帮助你在CentOS上成功启动Oracle数据库服务:
一、准备工作
1、安装Oracle数据库:确保Oracle数据库已经正确安装在centos系统上,如果尚未安装,请先按照官方文档进行安装。

2、设置环境变量:根据Oracle的安装路径,配置好环境变量,如ORACLE_BASE、ORACLE_HOME等。
3、确认用户权限:确保操作用户(通常是Oracle用户)具有足够的权限来执行后续步骤。
二、配置步骤
1、修改/etc/oratab文件:编辑/etc/oratab文件,添加或修改Oracle实例的配置项,将最后的N改为Y,表示该实例应该在启动时自动运行。
- xdjadb:/u01/app/oracle/product/12.2.0/dbhome_1:Y
2、创建Oracle服务启动脚本:编辑或创建/etc/init.d/oracle脚本,用于管理Oracle实例和服务的启动和停止,脚本内容如下:
- #!/bin/bash
- chkconfig: 345 85 15
- description: Oracle 12c R2 Auto Run Service
- /etc/init.d/oracle
- Runlevel Startup script for the Oracle Instance, Listener, and Web Interface
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
- export ORACLE_SID=xdjadb
- export PATH=$PATH:$ORACLE_HOME/bin
- ORA_OWNER="oracle"
- If the executables do not exist display error
- if [ ! f $ORACLE_HOME/bin/dbstart ] || [ ! d $ORACLE_HOME ]; then
- echo "Oracle startup: cannot start"
- exit 1
- fi
- Depending on parameter startup, shutdown, restart # of the instance and listener or usage display case "$1" in
- start)
- # Oracle listener and instance startup
- su $ORA_OWNER c "$ORACLE_HOME/bin/lsnrctl start"
- echo "Oracle Start Successful! OK."
- ;;
- stop)
- # Oracle listener and instance shutdown
- su $ORA_OWNER c "$ORACLE_HOME/bin/lsnrctl stop"
- echo "Oracle Stop Successful! OK."
- ;;
- reload|restart)
- $0 stop
- $0 start
- ;;
- *)
- echo $"Usage:basename $0 {start|stop|reload|restart}"
- exit 1
- esac
- exit 0
3、设置启动脚本权限:为了确保该脚本能被执行,需要设置其执行权限:
- cd /etc/rc.d/init.d
- chmod +x oracle
4、添加到自启动服务:使用以下命令将Oracle服务添加到自启动列表中:

- chkconfig add oracle
5、检查自启动服务状态:检查Oracle服务是否已成功添加到自启动列表:
- chkconfig –list oracle
如果一切正常,你应该能看到类似下面的输出:
- oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这表明Oracle服务已经在启动级别2到5之间被设置为自动启动。
三、手动启动与关闭Oracle数据库
除了配置自启动外,你还可以使用命令行工具手动启动和关闭Oracle数据库,以下是一些常用的命令:
1、启动监听器:
- lsnrctl start
2、**登录到SQL*Plus并启动数据库实例**:

- sqlplus / as sysdba
- startup
3、查看数据库状态:
- lsnrctl status
- sqlplus / as sysdba
- select instance_name from v$instance;
4、关闭数据库:
- shutdown immediate;
四、常见问题解答(FAQs)
Q1:为什么在启动Oracle数据库前需要切换到Oracle用户?
A1:切换到Oracle用户是为了加载该用户的环境变量,这些环境变量包含了Oracle运行所需的各种路径和设置,如ORACLE_HOME、PATH等,如果不切换到Oracle用户,系统可能无法正确找到Oracle的相关程序和库文件,从而导致启动失败。
Q2:如何检查Oracle数据库是否已经成功启动?
A2:要检查Oracle数据库是否已经成功启动,可以使用以下几种方法:
使用sqlplus
命令登录到数据库,如果能成功登录,则说明数据库已经启动。
使用lsnrctl status
命令查看监听器状态,如果监听器处于活跃状态(ACTIVE),则通常意味着数据库也已经启动。
在Oracle企业管理器(OEM)或云控制台中查看数据库状态,如果显示为“打开”(OPEN),则说明数据库已经成功启动。