用sysdba登录oracle 11g数据库时遇到已连接到空闲例程 ora-013113

网上思路:
1检查你的E:appproduct11.2.0dbhome_1NETWORKADMINlistener.ora目录文件下的SID号是否正确的,就是在装oracle数据库时自己设置的SID号,一般默认为ORCL,
2.检查你的oracle 数据库的两个服务是否是打开的,这两个服务分别为:OracleServiceORCL  和 OracleOraDb11g_home1TNSListener
3.如果以上都正确的话就需要重新装载数据库然后打开,具体的SQL语句为:SQL>startup pfile='D:appFuHadminorclpfileinit.ora.11182017132113'

描述:oracle、plsql正在运行突然失去连接,检查发现归档日志满,然后删除归档日志重启数据库,重启过程中疑似卡住,然后强制关闭命令窗口,接着就启动不了。

中途产生报错:已连接到空闲例程、ora-03113:通信通道的文件结尾、no login、ora-12514:TNS:监听程序当前无法识别连接描述符中请求的服务、ora-24324:未初始化服务句柄、ora-03114:未连接到ORACLE、ora-01034:ORACLE not available、ora-01219:数据库未打开:仅允许在固定表/视图中查询、ora-32001:已请求写入spfile,但是没有正在使用的spfile、

一、解决当前问题
ora-24324:未初始化服务句柄
指定ORACLE_SID

C:useradmin> set ORACLE_SID=ORCL
SQL> sqlplus / as sysdba;
SQL> startup mount;

        相关内容:一个oracle 多个数据库切换
        1、在不退出sqlplus的情况下,直接在命令行输入conn username/password;即可完成切换。
        2、在退出sqlplus的情况下,
        windows下:set ORACLE_SID=db_name;
        linux下:export ORACLE_SID = db_name;
再登录相应的用户即可完成切换。


二、解决alert.log问题
重启还有错误 ora-03113

Oracle出现错误,于是去错误日志里去找问题根源:D:appFuHdiag dbmsorclorcl racealert_orcl.log

有两处错误:ora-19815、ORA-19809: 超出了恢复文件数的限制、db_recovery_file_dest_size也叫归档日志空间不足导致的、又调整归档日志大小
    归档日志删除:  

查询归档日志空间sql> select * from v$recovery_file_dest;
    rman target sys/orcl@orcl;
    手动删除trac文件之前用
    list archivelog all;
    delete archivelog all completed before'sysdate-7';
    手动删除trac文件之后用
    crosscheck archivelog all;
    delete expired archivelog all;

 
    设置非归档方式
    http://blog.csdn.net/fengyifei11228/article/details/6049357     

 1 sql> archive log list;   #查看是否是归档方式 
        2 sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档 
           sql>alter system set log_archive_start=false scope=spfile;  #启用主动归档 
        3 sql> shutdown immediate; 
        4 sql> startup mount;    #打开控制文件,不打开数据文件 
        5 sql> alter database noarchivelog; #将数据库切换为非归档模式 
        6 sql> alter database open;   #将数据文件打开 
        7 sql> archive log list;   #查看此时便处于非归档模式 

又报错,ora-32001:已请求写入spfile,但是没有正在使用的spfile,

SQL> show parameter spfile;

NAME                                TYPE       VALUE
------------------------------------ -----------------------------------------
spfile                              string    
值为空,表示数据库以pfile启动
切换成spfile启动:

sql> create spfile from pfile;

创建后重启数据库 value列有内容,重新更改归档日志大小,更改成功。

   
再次重启,startup成功



    

原文地址:https://www.cnblogs.com/fuhaha/p/8351252.html