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

当遇到Oracle RAC磁盘空间满导致无法连接数据库时,可以按照以下步骤解决:1) 查看并清理磁盘空间,如删除无用文件;2) 解决TCP连接数过多问题;3) 检查并处理数据库连接错误;4) 检查并修复CRS服务问题;5) 确保ASM、CRS、数据库实例状态正常;6) 对于12c,检查PDB状态并进行必要的操作。通过这些步骤,成功解决了数据库无法访问的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

      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

### Oracle RAC 中 ORA-00257 错误解决方法 #### 背景介绍 在Oracle Real Application Clusters (RAC)环境中,当遇到ORA-00257错误时,这通常意味着归档日志空间不足。该问题可能导致数据库性能下降甚至无法正常工作。 #### 归档目的地配置检查 为了确认当前的归档文件存储位置以及可用空间情况,可以执行以下SQL命令来查看`db_recovery_file_dest`参数设置: ```sql SHOW PARAMETER db_recovery_file_dest; ``` 如果发现指定路径的空间已,则需要考虑清理旧的日志文件或将归档目标迁移到具有更多可用磁盘空间的位置[^5]。 #### 清理过期归档日志 通过连接至目标实例并启动恢复管理器(RMAN),可删除不再需要的历史数据以释放空间: ```bash rman target / DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE - 7'; EXIT; ``` 上述脚本会移除一周前已完成备份的所有归档日志条目。请注意调整时间范围以适应实际需求[^4]。 #### 修改归档模式或增加存储容量 对于长期存在的空间紧张状况,建议评估是否应更改归档策略(例如切换到NOARCHIVELOG模式),或者为现有卷组扩展额外物理硬盘资源以便容纳更多的归档记录。 #### 自动化监控与预警机制建立 为了避免未来再次发生此类事件,在日常运维过程中应当建立健全针对关键指标如剩余磁盘百分比等项目的实时监测体系,并设定合理的阈值触发告警通知给管理员团队及时采取措施预防潜在风险的发生[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值