My Oracle database was installed last November and then configured, and then it was normal, no problem, but then I didn't use my local Oracle, and PL/SQL was always a colleague's machine, Then today suddenly want to do some tests on their own machine, PL/SQL Incredibly has been not even, prompted the following error.
提示ORA-03113:通信通道的文件结尾进程 ID :0会话 ID:0 序列号:0
After a series of degrees Niang Google Forum and so on toss, toss a long, after all, is to solve.
Workaround:
The first step:
sqlplus / as sysdbashutdown abortstartup mountSQL> show parameter background_dump_dest;NAME TYPE VALUE------------------------------------ ----------- ------------------------------background_dump_dest string E:\app\Administrator\diag\rdbms\crm\crm\trace
We can see the path above, E:\app\Administrator\diag\rdbms\crm\crm\trace.
The role of this directory:
It specifies the path name (directory or disk) of the trace file that is written to the background process (LGWR,DBW n, and so on) during the Oracle operation. It also defines the location of the database alert files that record important events and messages.
We go to the path (E:\app\Administrator\diag\rdbms\crm\crm\trace), find Alert_oracle.log, use Notepad to open (note: If the log file is larger then the system may be stuck, No response, need to wait a moment) the visible file record error is as follows:
From here we find the root of the problem: "
ORA-19815: Warning: db_recovery_file_dest_size bytes (total 4102029312 bytes) have been used 100% and 0 bytes are available. "Db_recovery_file_dest_size is also called the lack of archive log space, since the root cause of the problem, it is easy to solve."
Solution Path
Small space, that is in front of us means, one is to set the space larger, the other is to remove the redundant files can be, then we will use both methods.
Step Two:
--– through the Command window: Set the size of the archive log space
select * from v$recovery_file_destsystem set db_recovery_file_dest_size=10737418240 ---这里是改为10openexit
Step Three:
--– Deleting archive logs
C:\Users\Administrator>rman target /进入rman工具窗口C:\Users\Administrator>rman target /RMAN>crosscheck archivelog all; -- 运行这个命令可以把无效的expired的archivelog标出来。RMAN>delete-- 直接全部删除过期的归档日志。RMAN>deleteuntiltime"sysdate -3"; -- 也可以直接用一个指定的日期来删除。
It's a complete OK here. Then reopen the database: normal use.
Attention:
One thing to note in deleting an archive is that displaying the archive through the Command window is under E:\app\Administrator\flash_recovery_area\CRM\ARCHIVELOG, However, we can not manually delete these files in the operating system, because each of the Archivelog information is recorded in Controlfile, and when we delete the files in the OS, These archivelog are still recorded in our controlfile, so these logs are also available in Oracle's OEM manager. Because when we manually cleared the files in the archive directory, the records were not erased by us from the controlfile, which means that Oracle did not know that the files were no longer there. Therefore, the command window should be executed to delete these files.
Note:
Archived logs are designed to make it easier for us to recover a database, but sometimes these archive logs do give us a little bit of a hassle, so these archive logs still need to be noticed.
Original address: http://www.2cto.com/database/201308/235338.html
Oracle Error--ORA-03113: End of file for communication channel