oracle报错解决

本文介绍了如何解决Oracle数据库遇到的ORA-00257(归档日志过多)和ORA-03113(通信通道结束)错误。针对ORA-00257,解决方案包括删除归档日志或增加存储空间,文中详细展示了使用RMAN清除归档日志的步骤。对于ORA-03113,错误源于未一致关闭数据库,解决方法涉及设置隐藏参数并进行数据库恢复。文章提供了详细的SQL和RMAN命令来指导修复过程。

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

ORA-00257

问题描述

登陆oracle,提示错误信息ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.

原因分析

这是归档日志积存过多,占用了磁盘空间导致的问题。

解决方案

通过删除归档日志或者增加存储空间方式可解决该问题,本文中选择通过rman清除归档日志

root@18b9d420d2d4# rman target sys/xxxx  #使用有dba权限的账户和密码

#检查控制文件和实际物理文件的差别

RMAN> crosscheck archivelog all;

#删除过期文件(过期文件指的是存储在rman资料库中的记录,但实际上记录对应的归档日志已经被清除了)

RMAN> delete expired archivelog all;

#删除7天前的归档日志

RMAN> delete archivelog until time 'sysdate-7'

注:请勿手动删除归档日志,手动删除,空间是不会得到释放的。
————————————————
版权声明:本文为优快云博主「不会画画的画师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/Loiterer_Y/article/details/119945385

ORA-03113

问题描述

登录oracle执行sql语句报错

ORA-03113: end-of-file on communication channel

startup
ORACLE instance started.

Total System Global Area 1.0066E+10 bytes
Fixed Size           12342064 bytes
Variable Size         2248150224 bytes
Database Buffers     7784628224 bytes
Redo Buffers           21209088 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 12631
Session ID: 977 Serial number: 51747

原因分析

以上错误是因为,没有一致性关库造成的

–使用隐藏参数忽略一致性验证:

conn / as sysdba
startup mount
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
startup force mount;        --将数据库启动到 mount
alter database open resetlogs;    --使用 resetlogs 打开数据库
--此时再报 ORA-01139 错误
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery

解决方案

recover database until cancel;
Media recovery complete.

alter database open resetlogs;

Database altered.

SQL> select status from v$instance;

STATUS
------------
OPEN

取消隐藏参数后,可以正常启动数据库:

alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';

然后重新启动,可以正常启动

startup force

ORA-00257

1、在shell命令下切换到sqlplus命令

sqlplus / as sysdba;

2、查看归档日志占比

select * from v$flash_recovery_area_usage;

在这里插入图片描述
查看归档日志大小

select * from v$recovery_file_dest;

注意:这里的单位为字节(B)。
在这里插入图片描述
其他输出略。

3、对于此问题解决很简单:一是增加空间大小,二是删除归档日志。
1)增加空间大小:

alter system set db_recovery_file_dest_size=50G scope=both;

修改完成后查看是否修改成功

show parameter db_recover;

在这里插入图片描述

查看修改后空间大小

select * from v$recovery_file_dest;

注意:这里的单位为字节(B)。
在这里插入图片描述

2)删除归档日志
在dos窗口切换rman命令:$ rman target /
切换到rman命令后检查归档日志是否失效:crosscheck archivelog all;
删除失效归档日志,即删除物理文件已丢失但记录在rman中的归档日志:

delete expired archivelog all;

删除所有归档日志(慎用):

delete archivelog all;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值