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;