.
.
.
.
.
昨天剛剛裝完系統(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, 糾結了兩個半小時的問題終於搞定了。
