记一次解决Oracle数据库连接失败

问题背景:使用PL/SQL Developer连接本地虚拟机(RedHat6.7)中的Oracle服务,报错如下:

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: 248258503
Process ID: 0
Session ID: 0 Serial number: 0

解决过程:先利用XShell 连接本地RedHat,尝试利用sqlplus连接Oracle看是否能够连接,结果报错如下:

[oracle@Simon ~]$ sqlplus sys as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Mar 16 19:45:44 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password: 
ERROR:
ORA-09817: Write to audit file failed.
Linux-x86_64 Error: 28: No space left on device
Additional information: 12
ORA-09945: Unable to initialize the audit trail file
Linux-x86_64 Error: 28: No space left on device

看到提示报错是No space left on device 后,利用df -m 查看磁盘空间无剩余:

[root@Simon ~]# df -m
Filesystem                   1M-blocks  Used Available Use% Mounted on
/dev/mapper/vg_simon-lv_root     26718 25351        11 100% /
tmpfs                             1910     0      1910   0% /dev/shm
/dev/sda1                          485    40       421   9% /boot

迅速确定问题所在,临时解决办法为删除 /var/lib/mlocate/ 目录下的 mlocate.db 文件释放磁盘空间:

[root@Simon ~]# cd /var/lib/mlocate/
[root@Simon mlocate]# ls
mlocate.db
[root@Simon mlocate]# rm -rf mlocate.db 

释放完毕后,再次连接sqlplus,启动数据库,外部连接恢复正常。后更改虚拟机磁盘大小,问题消失。
知识点:locate 是在 linux 下实现快速查找文件的命令,而 mlocate.db 是存放文件位置信息的文件,此文件的更新通过crontab自动完成的。整个locate工作其实是由四部分组成的:

  1. /usr/bin/updatedb 主要用来更新数据库,通过crontab自动完成的
  2. /usr/bin/locate 查询文件位置
  3. /etc/updatedb.conf updatedb的配置文件
  4. /var/lib/mlocate/mlocate.db 存放文件信息的文件

详细用法请百度linux locate命令

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值