ORACLE RAC 磁盘空间满后导致无法连接/登陆/使用

      事情很突然,临放假了,突然合作单位发来消息说数据库无法访问,远程一试,果然。连忙找之前的安装工程师,表示暂时无法处理,经多方联系之后,依然确定现在找不到人了,需要等过完国庆节之后,可是实时数据的写入、合作方的读取等,怎能等待?于是,实属无奈,决定试试。

      1、登陆服务器后连接oracle数据库时,提示磁盘空间不足,导致sqlplus登陆失败。提示:ORA-09817:Write to audit file failed.

Linux-x86_64 Error:28:No space left on device.

通过在root用户下,使用命令 df -h 查看磁盘空间,发现/dev/mapper/centos-root 空间使用100%,由于对linux上的RAC不熟悉,也不敢轻易删除文件,通过命令 du -h --max-depth=1  查看目录大小,发现空间里有镜像文件、源文件压缩包等占据较大空间,决定删除部分源文件,rm -rf +文件夹,删除了部分数据库源文件,通过检查空间使用率降到80%。

      2、再次连接数据库提示:ORA-12542 TNS 地址已被占用。于是一通百度,发现【oracle数据库管理-ORA-12542 TNS地址已被占用】里面说了客户端访问会存在TCP连接数过多,被迫分配完临时端口的问题,在一台客户端上通过 netstat -n 列出绑定到客户端计算机的 TCP/IP 地址以及 TCP/IP 地址与远程服务器通信所使用的端口,发现列出了3000个左右的端口,则当即关掉此客户端上的数据库访问程序,要求相关人员检查程序。

    3、在oracle服务器上oracle用户下执行 netstat -an |grep 1521 查看端口相关的TCP/IP地址的情况,发现出现了大量的连接,出自另外一台客户端,则要求客户端使用的相关人员停止数据库访问,整改程序。

    4、数据库依然访问不到。在oracle 用户下执行 lsnrctl status,提示无监听,用 lsnrctl stop命令提示:无监听错误。后来想到是不是应该看集群的状态,于是在oracle 用户下,通过srvctl status database -d 实例名  查看数据库集群的状态,提示错误如下:

PRCD-1027 : Failed to retrieve database orajq
PRCR-1070 : Failed to check if resource ora.orajq.db is registered
CRS-0184 : Cannot communicate with the CRS daemon.

然后切换到grid账户下,通过命令 crs_stat -t 查看集群状态,提示:

CRS-0184: Cannot communicate with the CRS daemon.

通过命令 crsctl check crs ,提示:

CRS-4638: Oracle High Availability Servicesis online

CRS-4535: Cannot communicate with ClusterReady Services

CRS-4529: Cluster Synchronization Servicesis online

CRS-4533: Event Manager is online

    5、CRS-4535: Cannot

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值