在通过 PLSQL 连接 Oracle 数据库时,如果提示如下错误:
ORA-01034:ORACLE not available
ORA-27101:shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
有的说吧 Oracle 监听服务重启,试了下不好用!!!还有一种解决方式,可以一试~
第一步,命令行模式下分别输入以下命令
sqlplus /nolog
conn / as sysdba
startup
结果如图:
再次用 PLSQL 连接数据库。
第二步,如果还是无法连接,可以执行以下命令
show parameter background_dump_dest;
获取跟踪日志路径,查看日志信息,如:C:\app\Administrator\diag\rdbms\orcl\orcl\trace。
可以看到这里原因是归档日志空间已满,如图:
解决办法一:扩展空间大小
select * from v$recovery_file_dest;
--修改空间大小,这里是改为10G。
alter system set db_recovery_file_dest_size=10737418240
alter database open
exit
解决办法二:删除过期归档日志
--进入rman工具窗口
rman target /
--运行这个命令可以把无效的的archivelog标出来
RMAN>crosscheck archivelog all;
--直接全部删除过期的归档日志
RMAN>delete expired archivelog all;
--或者直接用一个指定的日期来删除
RMAN>delete noprompt archivelog until time "sysdate -3";
空间大小问题解决后,需要再次执行第一步进行重新装载数据库操作,然后再尝试连接数据库即可。