红联Linux门户
Linux帮助

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

发布时间:2017-03-30 10:55:08来源:linux网站作者:点墨花花
近来发生一个问题有点头疼,在linux上的Oracle数据库突然无法访问。
主要报错如下:
解决Oracle在Linux下Listener起不来,error 111错误
 
基于本人的走歪路经验,分享一下我的解决思路:
首先,最直观的一点,监听器起不来,是不是数据库本身就没起来
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 执行强行断开连接并直接关闭数据库。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29597.html