Oracle 启动时报如下错误:
ORA-03113: end-of-file on communication channel
解决方案如下:
1, 查看 orcle 启动日志, 确定具体是什么原因引起的错误.
cd $ORACLE_HOME/diag/rdbms / 实例名 / 实例名 / trace/
ls -alcr | grep alert (c 时间排序, r 倒序) 定位启动日志.
2.tail -f -n 500 alert_ncdbemu.log 然后重启运行 startup 命令: 得到 oracle 提示如下:
- You have following choices to free up space from recovery area:
- 1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
- then consider changing RMAN ARCHIVELOG DELETION POLICY.
- 2. Back up files to tertiary device such as tape using RMAN
- BACKUP RECOVERY AREA command.
- 3. Add disk space and increase db_recovery_file_dest_size parameter to
- reflect the new space.
- 4. Delete unnecessary files using RMAN DELETE command. If an operating
- system command was used to delete files, then use RMAN CROSSCHECK and
- DELETE EXPIRED commands.
选择: 清理归档日志文件方法:
双实例的 oracle 启动 --- 注意: 首先要 export ORACLE_SID = 要操作的实例名 保证自己操作的实例是需要删除归档日志文件的实例, 然后进行删除步骤:
1. 启动到 mount 状态下:
- su - oracle
- sqlplus /nolog:
进入到 sql 命令窗口下:
- conn /as sysdba
- startup mount;
2. 查看恢复区 (闪回区) 位置及大小:
SQL> show parameter db_recovery;
3. 查询当前的使用状态
select file_type,PERCENT_SPACE_USED,NUMBER_OF_FILES from v$flash_recovery_area_usage;
4. 物理清除归档路径下的日志文件:
退出 sql 命令窗口:
cd /u01/flash_recovery_area/DMDEV/archivelog--- 进入到对应的归档实例日志目录
清理不需要的归档日志 --- 清理前请对需要的日子做好备份潮州:
rm -rf 不需要的日子文件目录
物理日志文件清理后, 还需要在 ramn 管理中清理一次, 不然还是显示的空间没有释放
5. 进入 rman 命令行: 通过 rman 管理工具清理.
连接上数据库实例: rman----> connect target sys/sys_passwd
- crosscheck backup;
- delete obsolete;
- delete expired backup;
- crosscheck archivelog all;
- delete expired archivelog all;
此步会有提示, 输入 YES 回车
退出 rman 删除完成, 重新连接数据库
6. 删除完毕后查看结果:
- sqlplus /nolog
- SQL> connect /as sysdba
- SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
7. 重新启动数据库 ok.
来源: http://www.linuxidc.com/Linux/2018-04/151667.htm