zoukankan      html  css  js  c++  java
  • 登录 oracle 时 ORA01034 和 ORA27101 的解决办法

    .

    .

    .

    .

    .

          昨天刚刚装完系统(Win7 32位旗舰版),重装了一下Oracle 10g 数据库。由于原来数据库中的数据没有备份,所以新建了一个与原来相同SID的数据库。然后停止oracle服务,把新建的数据库删除,再把原来的数据库复制到新建的数据库的路径下,数据库搬家就算完成了,数据库服务启动成功就没有太在意其它的事情。

          今天启动服务也没有异常,可是使用 PL/SQL Developer 登录 Oracle 的时候发现报异常:

    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist

          于是乎开始请教Google老师,网上说是数据库实例没有启动,于是手动启动数据库实例:

    C:\Users\bx>sqlplus /nolog

    SQL*Plus: Release 10.2.0.3.0 - Production on 星期日 8月 5 13:57:27 2012

    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

    SQL> conn /as sysdba
    已连接到空闲例程。

    SQL> startup

          可是紧接着又报错了,继续请教Google老师。找了很多帖子都没有办法解决问题,后来碰到了一篇博文跟我的问题差不多,死马当活马医就照着试了一下,居然真成功了,于是记录下来,分享给大家。参考地址是:http://haojiejie.iteye.com/blog/1466347

    ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated

    ORA-01263: Name given for file destination directory is invalid
    OSD-04018: ??????????????????????????
    O/S-Error: (OS 2) ??????????????????????

          其实是sPfile文件中一个路径db_recovery_file_dest找不到导致的。于是找到这个 sPfile 文件看看它里面是怎么写的。我的文件路径是:D:\Oracle\product\10.2.0\db_1\database\SPFILEORCL.ORA

          用记事本打开发现是个二进制文件,不过还好路径还是可以看到的。

    orcl.__db_cache_size=411041792
    orcl.__java_pool_size=16777216
    orcl.__large_pool_size=4194304
    orcl.__shared_pool_size=163577856
    orcl.__streams_pool_size=0
    *.audit_file_dest='D:\oracle\product\10.2.0\admin\orcl\adump'
    *.background_dump_dest='D:\oracle\product\10.2.0\admin\orcl\bdump'
    *.compatible='10.2.0.3.0'
    *.control_files='D:\oracle\product\10.2.0\oradata\orcl\control01.ctl','D:\oracle\product\10.2.0\oradata\orcl\control02.ctl','D:\oracle\product\10.2.0\oradata\orcl\control03.ctl'
    *.core_dump_dest='D:\oracle\product\10.2.0\admin\orcl\cdump'
    *.db_block_size=8192
    *.db_domain=''
    *.db_file_multiblock_read_count=16
    *.db_name='orcl'
    *.db_recovery_file_dest='D:\oracle\product\10.2.0\flash_recovery_area'
    *.db_recovery_file_dest_size=2147483648
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
    *.job_queue_processes=10
    *.open_cursors=300
    *.pga_aggregate_target=200278016
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=600834048
    *.undo_management='AUTO'
    *.undo_tablespace='UNDOTBS1'
    *.user_dump_dest='D:\oracle\product\10.2.0\admin\orcl\udump'

          很显然是找不到D:\oracle\product\10.2.0\flash_recovery_area,于是我打开资源管理器一看,flash_recovery_area 这个目录果然不存在,新建了一个flash_recovery_area文件夹后再启动数据库实例就没问题了。

    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area 603979776 bytes
    Fixed Size 1291988 bytes
    Variable Size 184551724 bytes
    Database Buffers 411041792 bytes
    Redo Buffers 7094272 bytes
    数据库装载完毕。
    数据库已经打开。

     

          OK, 纠结了两个半小时的问题终于搞定了。

  • 相关阅读:
    @RequestParam注解使用:Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
    cglib动态代理导致注解丢失问题及如何修改注解允许被继承
    springboot Autowired BeanNotOfRequiredTypeException
    git根据用户过滤提交记录
    不同包下,相同数据结构的两个类进行转换
    How to use Jackson to deserialise an array of objects
    jooq实践
    java如何寻找main函数对应的类
    Python--matplotlib
    Python 和 Scikit-Learn
  • 原文地址:https://www.cnblogs.com/0xcafebabe/p/2623834.html
Copyright © 2011-2022 走看看