ORA-03113:通信通道的文件结尾
--以sysdba身份连接数据库
SQL>sqlplus / as sysdba
--关闭数据库实例
SQL>shutdown abort
--装载数据库
startup mount
--查询归档日志
select * from v$recovery_file_dest;
--设置归档日志大小
查看db_recovery_file_dest_size参数的值
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
db_recovery_file_dest_size big integer 2G
通过设置db_recovery_file_dest_size参数,增大了flash recovery area来解决这个问题。
SQL> alter system set db_recovery_file_dest_size=4G scope=both;
在RMAN中通过删除flash recovery area中不必要的的备份来释放缓冲区的空间
--进入RMAN工具窗口
rman target /
找出状态为expired的归档日志
RMAN>crosscheck archivelog all;
RMAN> delete expired archivelog all;
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=152 devtype=DISK
说明与恢复目录中的任何存档日志均不匹配
删除所有的过期的归档文件报上面的错,就执行下面语句释放空间,删除3天的前归档的文件
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=152 devtype=DISK
打开数据库
RMAN> alter database open;
数据库已打开
评论
有用 4
完美的回答,关库,mount模式,增大归档空间,删归档,启动数据库
评论
有用 3还有可能是db_recovery_file_dest_size 占满,但当前数据库归档日志已经关闭,且查看错误日志未发现什么明显错误,最后分析可能是数据文件(索引等)迁移过程中损坏,再添加了新的一条索引后,原来无法查询成功的sql语句可以正确执行。
遇到这种情况,还可以查看当前表的索引是否有问题,同时尝试把当前索引清空重建或者新加一条索引以刷新当前索引文件。
评论
有用 0
墨值悬赏

