昨天刚刚装完系统(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./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 数据库装载完毕。 数据库已经打开。
|