Oracle集群ORA-03113:end-of-file on communication channel

一、问题场景描述

今天Oracle集群要更新各数据库的数据,折腾的启动不了了:

--》数据量比较大,数据泵方式导出的dmp文件 准备导入集群

--》由于之前的生产数据库数据比较少,需要增大表空间。

--》于是在sqlplus命令窗口,写了一个增加表空间的语句,但后来太慢 整个都卡了,取消了

--》有点心急,同时准备删除原用户重新建一个空用户进行导入

--》drop用户时提示有连接无法删除,v$session 查看连接太多,懒得kill了

--》😅想着数据库没其他的,重启一下也不要紧。结果shutdown immediate 写成shutdown

--》手一抖,回车 结果太慢,取消 再次shutdown immediate 不行了,改为shutdown abort

--》关是关了:startup 完了,报错了,启动到mounted 就提示报错了,如下:

用startup force 也不管用

😱 反复尝试,shutdown abort ;startup 都不管用~~~~

(注意:startup force 是shutdown abort+startup的组合,强制关闭数据库+正确启动,强制关闭可能会有数据丢失)

二、网上的资料:

前两种尝试了,失败告终。第三种 需要看日志,而且机器没有开rman,着急就忽略了。

反正机器上没什么重要的数据库,于是😅出现如下mount:甚至recover都不行。

启动到mount,再open 也不行。(注意:除非还原操作,resetlogs 要谨慎)

再次强调:open resetlog 操作比较危险的 容易丢数

三、解决办法--同事沟通、师傅指导

思路:找最新的alert日志,查找问题根源。

(1)查看日志

A.准备看一下日志的路径参数,结果报错。

sqlplus 进去 show parameter dump ,结果报错:

B.切换oracle用户,cd $ORACLE_BASE,一层层进目录,看结果。

su - oracle

cd $ORACLE_BASE

$ORACLE_BASE/diag/rdbms/orcl/orcl1/trace

trace下面 alert_x.日志:

终于看到结果了,归档日志空间不足。

C.看是否有进程在,查看数据库状态

ps -ef|grep ASM

ps -ef|grep smon

sqlplus "/as sysdba"

select instance_name,status from gv$instance;

ora_smon_orcl1 哪里来的?

查看集群数据库状态:

sqlplus "/as sysdba"

select instance_name,status from gv$instance;

结果:

echo $ORACLE_SID

疑问:

ps -ef|grep LOCAL=NO|wc -l

ps -ef|grep LOCAL=NO

tail -f al*

shutdown abort

startup

查看最新日志

D.进入集群,查看数据

查看共享存储的大小:

su - grid

asmcmd

lsdg

结果: free_MB 太小了,512G的共享存储基本满了

archive log list

无法查看:

F.处理

pwd

cd data

du

ls

cd archivelog

rm -rf 2022*

然后,再执行shutdown immediate ->>startup ,ok 成功启动

(2)备选方案(以上已ok,以下没有尝试)

如果执行上面仍不可以,则执行以下:

select instance_name,status from gv$instance;

---recover database until cancel;

四、总结 及后续探讨

总结:

show parameter dump

$ORACLE_BASE/diag/rdbms/orcl/orcl1/trace

su - grid

asmcmd lsdg

cd data/archivelog/2024_04_05

rm -rf 2022*

shutdown immediate

startup

后续探讨的问题:如何快速删除原用户的所有元数据,表、过程、包、视图、索引?

如何导入时把过程、视图、包,直接覆盖?

如果有实际使用过的,好的解决办法:欢迎探讨。

相关推荐
睡觉的时候不会困4 小时前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
程序员的世界你不懂5 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
自学也学好编程5 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
JAVA不会写6 小时前
在Mybatis plus中如何使用自定义Sql
数据库·sql
IT 小阿姨(数据库)6 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
ChinaRainbowSea6 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
小马学嵌入式~8 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
Java小白程序员8 小时前
MyBatis基础到高级实践:全方位指南(中)
数据库·mybatis
Monly218 小时前
人大金仓:merge sql error, dbType null, druid-1.2.20
数据库·sql
不宕机的小马达8 小时前
【Mysql|第一篇】Mysql的安装与卸载、Navicat工具的使用
数据库·mysql