Oracle 11g:使用由 SPFILE 創建的 PFILE 時,LRM-00109 後跟 ORA-01078
我知道這很長,但請耐心等待 - 我認為背景資訊可能很重要。
作業系統:Windows Server 2008 R2 64 位
數據庫:Oracle 11g 64 位企業版
昨天晚上,我們不得不重新啟動主機作業系統才能完成 Windows 組件的安裝。重新啟動後,我注意到當 Oracle 偵聽器重新啟動時,數據庫實例沒有 - 這很不尋常,因為它被設置為自動並且只有一個實例。
所以,我想肯定是有什麼東西干擾了這家初創公司,我去了:
C:\Users\digitalnoise>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 16 12:14:29 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated ORA-01263: Name given for file destination directory is invalid OSD-04018: Unable to access the specified directory or device. O/S-Error: (OS 2) The system cannot find the file specified. SQL>
並且立即警鐘開始響起,因為
db_recovery_file_dest
被配置為指向作為 iSCSI 驅動器安裝在 SAN 上的 SANF:\
。所以我跳進了 Windows 資源管理器,我想我會發現驅動器失去了——它不是,但是一切都不對。F:\
現在顯示的是一組完全不同的文件 - 在我們開始將其用於 FlashRecovery 之前應該以某種格式刪除的文件 - 而不是 FlashRecovery 目錄和相關文件。我真的開始感到胃灼熱,並向我們的伺服器 IT 人員發送了一封電子郵件,他們此時當然不在大樓內。今天早上我收到回复說他們認為該驅動器上的 MBR 已損壞,因此該驅動器現在將舊的 MBR 交給作業系統,真的把事情搞砸了。他們將不得不手動覆蓋 MBR 並慢速格式化驅動器。謝天謝地,這個數據庫還沒有投入生產,所以日誌文件的失去不是一個大問題,但接下來會發生.
由於我無法在掛載模式下啟動數據庫:
SQL> startup mount ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated ORA-01263: Name given for file destination directory is invalid OSD-04018: Unable to access the specified directory or device. O/S-Error: (OS 2) The system cannot find the file specified.
我認為我需要從創建一個
pfile
並spfile
更改db_recovery_file_dest
參數並使用pfile
啟動數據庫實例,所以:SQL> create pfile='myinit.ora' from spfile; File created.
我去尋找
pfile
那個被創造出來的東西,打開它,心裡想:“自己,這看起來有點奇怪,但是……”:atsm.__db_cache_size=7918845952 atsm.__java_pool_size=33554432 atsm.__large_pool_size=67108864 atsm.__oracle_base='E:\app\<user who installed oracle>'#ORACLE_BASE set from environment atsm.__pga_aggregate_target=5905580032 atsm.__sga_target=9563013120 atsm.__shared_io_pool_size=0 atsm.__shared_pool_size=1409286144 atsm.__streams_pool_size=33554432 *.audit_file_dest='E:\app\<user who installed oracle>\admin\ATSM\adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='E:\oracle\oradata\ATSM\ATSM\control01.ctl','F:\FlashRecoveryArea\ATSM\control02.ctl' *.db_block_size=8192 *.db_domain='<domain.com>' *.db_name='ATSM' *.db_recovery_file_dest='F:\FlashRecoveryArea' *.db_recovery_file_dest_size=5242880000 *.diagnostic_dest='E:\app\<user who installed oracle>' *.dispatchers='(protocol=TCP)' *.memory_target=15457058816 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.shared_servers=1 *.undo_tablespace='UNDOTBS1'
我從參數中刪除了該
*.db_recovery_file_dest='F:\FlashRecoveryArea'
行,因為它還指向失去的路徑/文件,保存我的文件,然後執行:,'F:\FlashRecoveryArea\ATSM\control02.ctl'``*.control_files
SQL> startup pfile='myinit.ora'; LRM-00109: could not open parameter file 'myinit.ora' ORA-01078: failure in processing system parameters SQL>
並同時獲得
LRM-00109
和ORA-01078
。所以我想也許 - 只是也許 - 我把編輯搞砸了pfile
- 所以我會嘗試導出它,然後使用它 - 如果導出沒有問題,那麼我應該得到關於能夠找到的錯誤路徑,對吧?錯誤的:SQL> create pfile from spfile; File created.
我檢查了一下,它使用的預設文件名是
INITatsm.ORA
,所以:SQL> startup pfile='INITatsm.ORA'; LRM-00109: could not open parameter file 'INITatsm.ORA' ORA-01078: failure in processing system parameters SQL>
所以甲骨文正在
pfile
從它那裡導出一個spfile
無效的。這就是我所在的地方。我確實找到了我認為是
pfile
安裝數據庫時創建的“預設”,我複制了它並嘗試在startup pfile=
命令中使用它,但我得到了完全相同的 Oracle 錯誤。有沒有人遇到過這個?你有什麼建議嗎?我們真的不想放棄整個安裝 - 這可能有點極端 - 因為設置它的顧問不再與我們在一起,我們目前無法獲得資金聘請另一個人。
**編輯添加:**我忘了提到我確實嘗試提供
pfile
我想要使用的完整路徑,但正如你所看到的,我得到了完全相同的錯誤消息:SQL> startup pfile='E:\app\<UID_W_INST_ORCL>\product\11.2.0\dbhome_1\database\INITatsm.ORA'; LRM-00109: could not open parameter file 'E:\app\<UID_W_INST_ORCL>\product\11.2.0\dbhome_1\database\INITatsm.ORA' ORA-01078: failure in processing system parameters
所以災難已經避免。
%ORACLE_HOME%\database
當您嘗試使用目錄中存在的 pfile 時,該問題是一個明顯的“錯誤” - 因為我沒有其他詞 - 對於 Oracle 。即使您提供完整的路徑和文件名,
pfile
Oracle 11gR2 顯然也不會正確載入與 .spfile
相反,我必須創建
pfile
fromspfile
並提供完全不同的路徑,一旦我這樣做了,然後編輯該文件並將其提供給startup
命令,我就能夠安裝實例並更改配置並成功打開數據庫.