Oracle错误:ORA-27101: shared memory realm does not exist

笔者今天维护一台 Windows Server的服务器上的Oracle,想要导出一个数据库文件。

然而,首先试着用sqlplus登录,发现报如下错误:

“ORA-01034 - Oracle not available”
“ORA-27101 - shared memory realm does not exist”。

不能连接到我的Oracle数据库,然后就到网上搜索别人的博客。

发现这篇博客写的比较好:

处理错误:ORA-27101: shared memory realm does not exist记实

首先,找到了数据库安装文件中的ORACLE_BASE\ORACLE_HOME\DATABASE 下面的ORADIM.LOG文件。

发现错误和博客中描述的不太一样,但是还是死马当活马医,试过了博客中的两种方法,但是没什么用。

后来仔细查看上面的ORADIM.LOG文件,发现了一个 

错误:“ORA-03113:通信信道的文件结尾 进程ID:xxxx
然后搜索了这个错误,找到了如下这篇文章:

Oracle错误——ORA-03113:通信通道的文件结尾 解决办法 


按照博客描述,到错误日志里面寻找问题根源:博客中的地址为 e:\app\kang\diag\rdbms\oracle\oracle\trace\文件夹下oracle_ora_6320.trc文件, 主要需要注意的是\diag\rdbms\这个目录,然后根据进程id找到对应的log文件,原博主中的是进程ID是6320. 

原博主的错误日志如下:

Trace filee:\app\kang\diag\rdbms\oracle\oracle\trace\oracle_ora_6320.trc  
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:(sqlplus.exe) 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  
   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  

(这里之所以不用自己的,一方面因为服务器当时是断网状态,不太方便,另一方面,我的log里面中文乱码,不太好说明问题)

我们可以看到:

ORA-19815: 警告:db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%, 尚有 0 字节可用。  

也就是说 db_recovery_file_dest_size 大小不够用了。


解决途径(Oracle错误——ORA-03113:通信通道的文件结尾 解决办法 中博主的解决思路是对的,但是代码有些问题)

通过命令窗口:

————设置归档日志空间大小

sqlplus / as sysdba  
shutdown abort     ----关闭进程  
startup mount       ---- 装载数据库  
select * from v$recovery_file_dest; ---查询归档日志  
alter system set db_recovery_file_dest_size=10737418240; --设置归档日志空间为10G,可以根据实际情况增加  
exit ---到这里空间大小已经设置完成  

设置好重启oracle,使用sqlplus登录已经可以进去了。


想要删除很久之前的归档日志,则使用rman工具,具体命令如下:

————删除归档日志

rman target /   -----进入rman工具窗口  
RMAN>crosscheck archivelog all;  --运行这个命令可以把无效的expired的archivelog标出来。  
RMAN>delete archivelog all completed before 'sysdate -7';  -- -即删除7天前的归档日志


作为一个小菜鸟,跌跌撞撞的成长。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值