问题描述:
登录oracle时出现错误:“ORA-01034:ORACLE not available,ORA-27101:shared memory realm does not exist“导致问题的操作:
1. 之前连接oracle一切正常;
2. 在oracle运行的时候,我修改了“C:\oracle\product\10.1.0\admin\myoracle\pfile\init.ora.68200991151”文件中的open_cursors=300为open_cursors=400
3. 重启oracle服务,出现上述错误。查看了C:\oracle\product\10.1.0\admin\myoracle\bdump\alertmyoracle.log文件,发现数据库启动不成功,具体日志信息没有了,因为我在网上找原因时,说可能是磁盘空间不足,我查看了我的oracle安装盘正好只有几十M的空间,我就删除bdmup下面的日志文件。找了好久都解决不了,所以来发贴请大家帮忙!万分感谢!

解决方案 »

  1.   

    这个是实例在nomount的时候都出错了。这里还没有到mount和open状态,多半是spfile文件的问题。有没有修改过你的spfile文件,你修改C:\oracle\product\10.1.0\admin\myoracle\pfile\init.ora.68200991151后
    是怎样启动数据库的,是从pfile么,用命令行的方式试试把这个文件修改的open_cursors=400改回来,然后
    sqlplus "/ as sysdba"
    SQL>startup nomount pfile='C:\oracle\product\10.1.0\admin\myoracle\pfile\init.ora.68200991151';
    看看能不能启动
      

  2.   

    我找了oracle目录下只有“C:\oracle\product\10.1.0\Db_1\database\SPFILEMYORACLE.ORA”这个文件,是不是你说的spfile文件?
    我也将这个文件中的*.open_cursors=300改为*.open_cursors=400了,但是我马上又改回来了。我是在管理目录下重启oracle服务的,然后用plsql登录。
    我试了:出现以下结果:
    ORACLE instance started.Total System Global Area 171966464 bytes
    Fixed Size                  787988 bytes
    Variable Size            145750508 bytes
    Database Buffers          25165824 bytes
    Redo Buffers                262144 bytes这个时候使用PLSQL重新登录,出现另一个错误:
    “ORA-01033: ORACLE initilization or shutdown in progress”.
      

  3.   

    你说的spfile文件是不是“C:\oracle\product\10.1.0\Db_1\database\SPFILEMYORACLE.ORA”这个文件,对于这个文件我也只是将*.open_cursors=300改为*.open_cursors=400,但马上我又改回来了。我是直接在管理目录下的服务器重启数据库服务的。我试了,出现以下结果:
    ORACLE instance started.Total System Global Area   171966464 bytes
    Fixed Size                    787988 bytes
    Variable Size              145750508 bytes
    Database Buffers            25165824 bytes
    Redo Buffers                  262144 bytes
    在“C:\oracle\product\10.1.0\admin\myoracle\bdump”目录下生成了日志文件alert_myoracle.log,全部内容如下:
    Dump file c:\oracle\product\10.1.0\admin\myoracle\bdump\alert_myoracle.log
    Fri Aug 14 12:35:19 2009
    ORACLE V10.1.0.2.0 - Production vsnsta=0
    vsnsql=13 vsnxtr=3
    Windows XP Version V5.1 Service Pack 2
    CPU             : 1 - type 586
    Process Affinity: 0x00000000
    Memory (A/P)    : PH:442M/765M, PG:1535M/1876M, VA:1952M/2047M
    Fri Aug 14 12:35:19 2009
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    KCCDEBUG_LEVEL = 0
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on. 
    Dynamic strands is set to TRUE
    Running with 1 shared and 18 private strand(s). Zero-copy redo is FALSE
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 10.1.0.2.0.
    System parameters with non-default values:
      processes                = 150
      shared_pool_size         = 83886080
      large_pool_size          = 8388608
      java_pool_size           = 50331648
      control_files            = C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL01.CTL, C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL02.CTL, C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL03.CTL
      db_block_size            = 8192
      db_cache_size            = 25165824
      compatible               = 10.1.0.2.0
      db_file_multiblock_read_count= 16
      db_recovery_file_dest    = C:\oracle\product\10.1.0\flash_recovery_area
      db_recovery_file_dest_size= 2147483648
      undo_management          = AUTO
      undo_tablespace          = UNDOTBS1
      remote_login_passwordfile= EXCLUSIVE
      db_domain                = 
      dispatchers              = (PROTOCOL=TCP) (SERVICE=myoracleXDB)
      job_queue_processes      = 10
      background_dump_dest     = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\BDUMP
      user_dump_dest           = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\UDUMP
      core_dump_dest           = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\CDUMP
      sort_area_size           = 65536
      db_name                  = myoracle
      open_cursors             = 300
      pga_aggregate_target     = 25165824
    PMON started with pid=2, OS id=2708
    RECO started with pid=8, OS id=2280
    MMAN started with pid=3, OS id=4060
    DBW0 started with pid=4, OS id=2228
    LGWR started with pid=5, OS id=3700
    CKPT started with pid=6, OS id=3656
    SMON started with pid=7, OS id=1820
    Fri Aug 14 12:35:21 2009
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    CJQ0 started with pid=9, OS id=3884
    Fri Aug 14 12:35:21 2009
    starting up 1 shared server(s) ...
    Fri Aug 14 12:43:00 2009
    Shutting down instance: further logons disabled
    Fri Aug 14 12:43:00 2009
    Stopping background process CJQ0
    Fri Aug 14 12:43:00 2009
    Shutting down instance (immediate)
    License high water  = 2
    Fri Aug 14 12:43:00 2009
    Stopping Job queue slave processes
    Fri Aug 14 12:43:00 2009
    Job queue slave processes stopped
    Waiting for dispatcher 'D000' to shutdown
    Waiting for shared server 'S000' to die
    All dispatchers and shared servers shutdown
    Fri Aug 14 12:43:08 2009
    alter database close normal
    ORA-1507 signalled during: alter database close normal...
    Dump file c:\oracle\product\10.1.0\admin\myoracle\bdump\alert_myoracle.log
    Fri Aug 14 12:44:17 2009
    ORACLE V10.1.0.2.0 - Production vsnsta=0
    vsnsql=13 vsnxtr=3
    Windows XP Version V5.1 Service Pack 2
    CPU             : 1 - type 586
    Process Affinity: 0x00000000
    Memory (A/P)    : PH:437M/765M, PG:1524M/1876M, VA:1953M/2047M
    Fri Aug 14 12:44:17 2009
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    KCCDEBUG_LEVEL = 0
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on. 
    Dynamic strands is set to TRUE
    Running with 1 shared and 18 private strand(s). Zero-copy redo is FALSE
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 10.1.0.2.0.
    System parameters with non-default values:
      processes                = 150
      shared_pool_size         = 83886080
      large_pool_size          = 8388608
      java_pool_size           = 50331648
      control_files            = C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL01.CTL, C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL02.CTL, C:\ORACLE\PRODUCT\10.1.0\ORADATA\MYORACLE\CONTROL03.CTL
      db_block_size            = 8192
      db_cache_size            = 25165824
      compatible               = 10.1.0.2.0
      db_file_multiblock_read_count= 16
      db_recovery_file_dest    = C:\oracle\product\10.1.0\flash_recovery_area
      db_recovery_file_dest_size= 2147483648
      undo_management          = AUTO
      undo_tablespace          = UNDOTBS1
      remote_login_passwordfile= EXCLUSIVE
      db_domain                = 
      dispatchers              = (PROTOCOL=TCP) (SERVICE=myoracleXDB)
      job_queue_processes      = 10
      background_dump_dest     = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\BDUMP
      user_dump_dest           = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\UDUMP
      core_dump_dest           = C:\ORACLE\PRODUCT\10.1.0\ADMIN\MYORACLE\CDUMP
      sort_area_size           = 65536
      db_name                  = myoracle
      open_cursors             = 300
      pga_aggregate_target     = 25165824
    PMON started with pid=2, OS id=4028
    MMAN started with pid=3, OS id=3740
    DBW0 started with pid=4, OS id=1160
    LGWR started with pid=5, OS id=1752
    CKPT started with pid=6, OS id=1712
    SMON started with pid=7, OS id=1376
    RECO started with pid=8, OS id=1404
    Fri Aug 14 12:44:18 2009
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    CJQ0 started with pid=9, OS id=3736
    Fri Aug 14 12:44:18 2009
    starting up 1 shared server(s) ...
    这时我再用plsql Developer登录,却出现另一个错误:
    ORA-01033: ORACLE initialization or shutdown in progress.
      

  4.   


    对这个spfile就是spfile文件,这个文件不是文本形式的,是一个二进制形式的文件,所以现在你用文本修改已经破坏掉她了。你先在$ORACLE_BASE/admin/<SID>/pfile下找找看有没有类似pfile这样的文件,如果有的话,就用这个文件试着启动一下,命令和上面一样的,不过就是路径换成他,如果可以成功启动的话,用这个pfile做一个spfile出来就可以了。命令create spfile from pfile='路径';
      

  5.   

    'C:\oracle\product\10.1.0\admin\myoracle\pfile\init.ora.68200991151',我就是用这个pfile文件创建了一个spfile文件,重启服务后,已经可以了~