解决Oracle在Linux下Listener起不来,error 111错误

近来发生一个问题有点头疼,在linux上的Oracle数据库突然无法访问

主要报错如下:

基于本人的走歪路经验,分享一下我的解决思路:

首先,最直观的一点,监听器起不来,是不是数据库本身就没起来

select status from v$instance;

这个语句可以查看数据库的状态,启动的话应该是open

当然,也可以使用如下语句来查看oracle进程,在linux用户下

ps -ef|grep oracle

如果数据库没起来的话↓↓↓↓↓↓↓↓

以下为linux启动oracle的一些小步骤:

1、root用户或有相应权限用户登录linux服务器,登录oracle用户

su -oracle  这里有个-,不加的话可能会登不上

2、以不登陆数据库方式使用sqlplus

sqlplus /nolog

3、以dba方式登录

conn /as sysdba

4、启动

startup

稍等之后正常情况数据库就起来了

然后就是启动监听了

 

在oracle用户下

lsnrctl start

之后可以使用

lsnrctl status

查看监听器状态

lsnrctl reload 重启监听

 

如果以上方式不奏效的话,可以考虑是不是更改了/etc/hosts文件

如果以下一行没有的话,建议恢复

127.0.0.1               localhost.localdomain localhost

然后重启数据库、监听等。。。

以上是我所知道确认的两个原因,有更多的原因欢迎交流分享

 

以下是一些oracle的启动关闭等指令

@Rick Sun 借鉴这位博主的经验

startup参数
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!
谢谢!不准确的地方请指教!

shutdown

shutdown的参数
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。

 

posted @ 2017-03-29 22:33  点墨花花  阅读(...)  评论(...编辑  收藏