Oracle错误——ORA-03113:在通信信道⽂件的末尾解决⽅案起源
今天跟往常⼀样,登陆PL/SQL,确登陆失败,出现⼀个错误“ORA-01034”和“ORA-27101”如图:
然后就就通过命令提⽰符去登陆Oracle,去查看怎么回事,然后问题进⼀步出现。错误“ORA-03113:通信通道的⽂件结尾进程 ID:6320 回话 ID :191 序列号:3”。
问题根源
Oracle出现错误。于是去错误⽇志⾥去问题根源:在 e:\app\kang\diag\rdbms\oracle\oracle\trace\⽬录下到oracle_⽂件。打开显⽰错误⽇志:
Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_
Oracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit Production
With thePartitioning, OLAP, Data Mining and Real Application Testing options
Windows NT VersionV6.1 Service Pack 1
CPU                : 4 - type 8664, 2 PhysicalCores
Process Affinity    : 0x0x0000000000000000
Memory (Avail/Total):Ph:2805M/6087M, Ph+PgF:6761M/12173M
Instance name: oracle
Redo thread mountedby this instance: 1
Oracle processnumber: 19
Windows thread id:6320, image: ORACLE.EXE (SHAD)
*** 2014-08-1608:18:55.461
*** SESSIONID:(191.3) 2014-08-16 08:18:55.461
*** CLIENT ID:()2014-08-16 08:18:55.461
*** SERVICE NAME:()2014-08-16 08:18:55.461
*** MODULENAME:() 2014-08-16 08:18:55.461
*** ACTION NAME:()2014-08-16 08:18:55.461
ORA-19815: 警告:db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使⽤ 100.00%, 尚有 0 字节可⽤。
************************************************************************
You have followingchoices to free up space from recovery area:
1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOGDELETION POLICY.
2. Back up files totertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space andincrease db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessaryfiles using RMAN DELETE command. If an operating
oracle登录命令
system command was used to delete files,then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
ORA-19809:超出了恢复⽂件数的限制
ORA-19804: ⽆法回收33961984 字节磁盘空间 (从 4102029312 限制中)
*** 2014-08-1608:18:55.502 4132 krsh.c
ARCH: Error 19809Creating archive log file to'E:\APP\KANG\FLASH_RECOVERY_AREA\ORACLE\ARCHIVELOG\2014_08_16\O1_MF_1_159_%U_.ARC'
*** 2014-08-1608:18:55.502 2747 krsi.c
krsi_dst_fail: dest:1err:19809 force:0 blast:1
DDE: Problem Key 'ORA312' was flood controlled (0x1) (no incident)
ORA-00312: 联机⽇志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'
ORA-16038: ⽇志 3sequence# 159 ⽆法归档
ORA-19809:超出了恢复⽂件数的限制
ORA-00312: 联机⽇志 3 线程1: 'E:\APP\KANG\ORADATA\ORACLE\REDO03.LOG'
*** 2014-08-1608:18:55.565
USER (ospid: 6320):terminating the instance due to error 16038
从这⾥我们发现了问题的根源:“
ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使⽤100.00%, 尚有 0 字节可⽤。”是db_recovery_file_dest_size也叫归档⽇志空间不⾜导致的。既然到问题的根源,那解决起来也就easy了。
解决途径
空间⼩,那摆在我们⾯前办法就是,⼀个是将空间设置⼤点,还有⼀个就是将多余的⽂件删除掉就可以。那么我们就将这两个办法都使⽤⼀下。
通过命令窗体:
--------设置归档⽇志空间的⼤⼩
sqlplus / as sysdba
shutdown abort    ----关闭进程
startup mount      ---- 装载数据库
select * from v$recovery_file_dest; ---查询归档⽇志
db_recovery_file_dest_size=10737418240; --设置归档⽇志空间为10G
Exit ---到这⾥空间⼤⼩已经设置完毕
--------删除归档⽇志
rmantarget /  -----进⼊rman⼯具窗体
RMAN>crosscheckarchivelog all;  --执⾏这个命令能够把⽆效的expired的archivelog标出来。
RMAN>deletenoprompt archivelog until time "sysdate -3";  -- -即删除3天前的归档⽇志
到这⾥就彻底ok了。
接下来⼜⼀次打开数据库:正常使⽤。
在删除归档⽂件⾥有⼀点要注意,通过命令窗体显⽰显⽰归档⽂件都
在E:\app\kang\flash_recovery_area\oracle\ARCHIVELOG  下。可是我们不能⼿⼯在操作系统中直接把这些⽂件删除掉,这是由于在controlfile中记录着每个archivelog的相关信息,当我们在OS中删除这些⽂件后。我们的controlfile中仍然记录着这些archivelog的信息,因此在Oracle的OEM管理器中还会存在这些⽇志。
由于当我们⼿⼯清除archive⽂件夹下的⽂件后,这些记录并没有被我们从controlfile中清除掉。也就是oracle并不知道这些⽂件已经不存在了。
所以还是要通过命令窗体去运⾏删除这些⽂件的命令。
后记
归档⽇志事实上是为了⽅便我们在恢复数据库当使⽤。但有时这些归档⽇志有时确实给我们的⼩问题⼀点点,因此,这些存档⽇志,或者需要我们注意。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。