ORA-01034和ORA-27101的解决办法

 http://www.cnblogs.com/chuyuhuashi/archive/2012/05/06/2485831.html

       昨天刚刚装完系统(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, 纠结了两个半小时的问题终于搞定了。

猜你喜欢

转载自lixg425.iteye.com/blog/2171040
今日推荐