方式一:使用集成的脚本dbstart和dbshut
# 切换oracle用户
su - oracle
# 启动数据库(首次使用需要修改ORACLE_HOME/bin/dbstart配置把ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME)
dbstart
# 关闭数据库(首次使用需要修改ORACLE_HOME/bin/dbstart配置把ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME)或dbshut $ORACLE_HOME
dbshut
# 查看oracle进程
ps -ef|grep ora_|grep -v grep
# 查看oracle的监听进程
ps -ef|grep tnslsnr|grep -v grep
# 查看1521端口是否打开
netstat -lntp
方式二:登录管理数据库操作
# 切换oracle用户
su - oracle
# 启动监听
lsnrctl start
# 查看当前实例
echo $ORACLE_SID
# 切换实例,并启动或关闭(多个实例时不同的切换然后执行相同操作)
export ORACLE_SID=XXXXX
sqlplus / as sysdba
startup #启动
shutdown immediate #立即关闭
select instance_name, status from v$instance; -->查看实例状态
quit #退出当前实例
# 停止监听
lsnrctl stop
常见问题:运行oracle的dbstart出错或无反应的解决办法
-
现象一:
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
原因:dbstart脚本中的ORACLE_HOME_LISTNER变量引用错误为$1,如下
解决方法:把ORACLE_HOME_LISTNER=$1
改为ORACLE_HOME_LISTNER= $ORACLE_HOME
,如下:
-
现象二:dbstart无反应,不报错也不成功
解决方法:需要修改/etc/oratab文件添加对应的数据实例,并把N改为Y,如下:
启动成功,使用ps -ef|grep ora_|grep -v grep
查看oracle进程
开机启动oracle设置
修改/etc/oratab文件,找到文件中这行(orcl:/opt/oracle/app/product/12.1.0/dbhome_1:N)并把N替换成Y即可,该行是这样定义的$ORACLE_SID:$ORACLE_HOME:<N|Y>,然后修改/etc/rc.d/rc.local文件添加如下两行才能开机自启动数据库:
su oracle -lc "/opt/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su oracle -lc /opt/oracle/product/11.2.0/dbhome_1/bin/dbstart
su oracle -lc "/opt/oracle/product/11.2.0/dbhome_1/bin/emctl start dbconsole"