• 登录 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, 纠结了两个半小时的问题终于搞定了。

  • 相关阅读:
    Redis-10 Bitmap位图基本操作
    Redis学习-09 hyperloglog基本操作
    Redis学习-08 Geospatial地理位置详解
    Redis学习-07 Zset有序集合
    Redis学习-06 Hash哈希基本操作
    部分知识路径
    Docker 容器中安装vi、ifconfig、ping命令
    Java new一个对象的过程超级详解
    SVN
    创建ssm项目
  • 原文地址:https://www.cnblogs.com/0xcafebabe/p/2623834.html
Copyright © 2020-2023  润新知