Linux

ORA-48108 / ORA-48140 / ORA-48187 - 診斷目標值錯誤 - 初始化文件/控製文件

  • March 7, 2019

這都是測試/培訓 - 這些都與生產環境無關

在 VM 上使用 ORACLE DB 12c + UNIX/LINUX 64 位。

.

嗨,大家好!我在以下錯誤中執行並且似乎無法解決它。你能幫忙嗎?

SQL> STARTUP NOMOUNT; 
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter 
ORA-48140: the specified ADR Base directory does not exist [/u01/app/oracle/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>] 
ORA-48187: specified directory does not exist Linux-x86_64 Error: 2: No such file or directory Additional information: 1

數據庫詳細資訊:

[oracle@ol12c dbs]$ echo $ORACLE_BASE
/u01/app/oracle

echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

[oracle@ol12c dbs]$ ls -a
.   hc_cdb1.dat   init.ora       lkCDB1     spfilecdb1.ora   STARTUP
..  hc_pridb.dat  initpridb.ora  orapwcdb1  spfilepridb.ora
[oracle@ol12c dbs]$ pwd
/u01/app/oracle/product/12.1.0.2/db_1/dbs

[oracle@ol12c dbs]$ echo $DB_NAME
pridb

[oracle@ol12c dbs]$ env | grep ORA
ORACLE_UNQNAME=cdb1
ORACLE_SID=pridb
ORACLE_BASE=/u01/app/oracle
ORACLE_HOSTNAME=ol12c.localdomain
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1

init.ora 包含: diagnostic_dest='<ORACLE_BASE>'

initpridb.ora 包含: diagnostic_dest='u01/app/oracle'

** 我已經將值更改為'<ORACLE_BASE>'// '/u01/app/oracle'/ '/u01/app/oracle/product/12.1.0.2/db_1''|ORACLE_BASE|'沒有運氣 - 都是一樣的錯誤。

根據我之前的研究:

當我嘗試像下面這樣啟動時:

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;

我收到相同的錯誤,見下文:

ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux-x86_64 Error: 2: No such file or directory

我注意到無論我將 diagnostic_dest 值更改為什麼,它都會使用該值 + ORACLE_BASE 進行搜尋。如果我翻轉它們('<ORACLE_BASE>/product/12.1.0.2/db_1/dbs'),它將最終搜尋'<ORACLE_BASE>/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>'

我對數據庫非常陌生,正在同一主機上創建一個新數據庫。創建此數據庫後,我將使用 Oracle Data Guard 創建另一個用作物理備用數據庫。請在提出行動建議時,表現得像在與不知情的人交談!:) :)

先感謝您!

.


.

更新

查看文件的詳細資訊:

[oracle@ol12c dbs]$ cat initpridb.ora
# 
# $Header: rdbms/admin/init.ora /main/24 2012/02/03 08:24:01 ysarig Exp $ 
# 
# Copyright (c) 1991, 1997, 1998 by Oracle Corporation
# NAME
#   init.ora
# FUNCTION
# NOTES
# MODIFIED
#     ysarig     02/01/12  - Renaming flash_recovery_area to
#                            fast_recovery_area
#     ysarig     05/14/09  - Updating compatible to 11.2
#     ysarig     08/13/07  - Fixing the sample for 11g
#     atsukerm   08/06/98 -  fix for 8.1.
#     hpiao      06/05/97 -  fix for 803
#     glavash    05/12/97 -  add oracle_trace_enable comment
#     hpiao      04/22/97 -  remove ifile=, events=, etc.
#     alingelb   09/19/94 -  remove vms-specific stuff
#     dpawson    07/07/93 -  add more comments regarded archive start
#     maporter   10/29/92 -  Add vms_sga_use_gblpagfile=TRUE 
#     jloaiza    03/07/92 -  change ALPHA to BETA 
#     danderso   02/26/92 -  change db_block_cache_protect to _db_block_cache_p
#     ghallmar   02/03/92 -  db_directory -> db_domain 
#     maporter   01/12/92 -  merge changes from branch 1.8.308.1 
#     maporter   12/21/91 -  bug 76493: Add control_files parameter 
#     wbridge    12/03/91 -  use of %c in archive format is discouraged 
#     ghallmar   12/02/91 -  add global_names=true, db_directory=us.acme.com 
#     thayes     11/27/91 -  Change default for cache_clone 
#     jloaiza    08/13/91 -         merge changes from branch 1.7.100.1 
#     jloaiza    07/31/91 -         add debug stuff 
#     rlim       04/29/91 -         removal of char_is_varchar2 
#   Bridge     03/12/91 - log_allocation no longer exists
#   Wijaya     02/05/91 - remove obsolete parameters
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation as a starting point for
# customizing the Oracle Database installation for your site.    
#
# NOTE: The values that are used in this file are example values only.
# You may want to adjust those values for your specific requirements. 
# You might also consider using the Database Configuration Assistant     
# tool (DBCA) to create a server-side initialization parameter file
# and to size your initial set of tablespaces. See the
# Oracle Database 2 Day DBA guide for more information.
###############################################################################

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)

db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'

[oracle@ol12c dbs]$ cat init.ora
# 
# $Header: rdbms/admin/init.ora /main/24 2012/02/03 08:24:01 ysarig Exp $ 
# 
# Copyright (c) 1991, 1997, 1998 by Oracle Corporation
# NAME
#   init.ora
# FUNCTION
# NOTES
# MODIFIED
#     ysarig     02/01/12  - Renaming flash_recovery_area to
#                            fast_recovery_area
#     ysarig     05/14/09  - Updating compatible to 11.2
#     ysarig     08/13/07  - Fixing the sample for 11g
#     atsukerm   08/06/98 -  fix for 8.1.
#     hpiao      06/05/97 -  fix for 803
#     glavash    05/12/97 -  add oracle_trace_enable comment
#     hpiao      04/22/97 -  remove ifile=, events=, etc.
#     alingelb   09/19/94 -  remove vms-specific stuff
#     dpawson    07/07/93 -  add more comments regarded archive start
#     maporter   10/29/92 -  Add vms_sga_use_gblpagfile=TRUE 
#     jloaiza    03/07/92 -  change ALPHA to BETA 
#     danderso   02/26/92 -  change db_block_cache_protect to _db_block_cache_p
#     ghallmar   02/03/92 -  db_directory -> db_domain 
#     maporter   01/12/92 -  merge changes from branch 1.8.308.1 
#     maporter   12/21/91 -  bug 76493: Add control_files parameter 
#     wbridge    12/03/91 -  use of %c in archive format is discouraged 
#     ghallmar   12/02/91 -  add global_names=true, db_directory=us.acme.com 
#     thayes     11/27/91 -  Change default for cache_clone 
#     jloaiza    08/13/91 -         merge changes from branch 1.7.100.1 
#     jloaiza    07/31/91 -         add debug stuff 
#     rlim       04/29/91 -         removal of char_is_varchar2 
#   Bridge     03/12/91 - log_allocation no longer exists
#   Wijaya     02/05/91 - remove obsolete parameters
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation as a starting point for
# customizing the Oracle Database installation for your site.    
#
# NOTE: The values that are used in this file are example values only.
# You may want to adjust those values for your specific requirements. 
# You might also consider using the Database Configuration Assistant     
# tool (DBCA) to create a server-side initialization parameter file
# and to size your initial set of tablespaces. See the
# Oracle Database 2 Day DBA guide for more information.
###############################################################################

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)

db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'

[oracle@ol12c dbs]$ echo $ORACLE_SID
pridb

[oracle@ol12c dbs]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

[oracle@ol12c dbs]$ echo $ORACLE_BASE
/u01/app/oracle

[oracle@ol12c dbs]$ echo $DB_NAME
pridb

.


.

更新 2

我按照建議更新了初始化文件。更改<ORACLE_BASE>為實際路徑:/u01/app/oracle/

[oracle@ol12c dbs]$ cat initpridb.ora
...
...
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

[oracle@ol12c dbs]$ cat init.ora
...
...
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

不手動選擇 pfile 時出現錯誤:

SQL> STARTUP NOMOUNT;
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter
ORA-48140: the specified ADR Base directory does not exist [/u01/app/oracle/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>]
ORA-48187: specified directory does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

但它有效!:)(我剛剛遇到了一個新問題,但這可能與此無關)

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925

我還注意到兩者的 db_name 都設置為 ORCL。不確定這是否會產生進一步的問題。

.


.

更新 3

為了:ORA-09925: Unable to create audit trail file

我查看了 Oracle 知識庫文件:ORA-09925: Unable To Create Audit Trail File at Startup ( Doc ID 2267223.1 ) 我正在按照解決方案的步驟進行操作。b點的輸出:

[oracle@ol12c ~]$ ps -ef|grep LOCAL
oracle    8211  8172  0 14:06 ?        00:00:00 oraclepridb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    8448  8408  0 14:18 pts/1    00:00:00 grep --color=auto LOCAL

我試過了:

[oracle@ol12c ~]$ strace -frT -o /tmp/strace.1.log -p 8211
Process 8211 attached

但這似乎被卡住/載入,因此 - 我又被卡住了。

.


.

更新 4

都解決了。ORACLE 實例已啟動。

最後一個錯誤 (ORA-09925) 已通過將audit_file_dest參數的原始值從更新到正確的路徑來解決。從audit_file_dest='/u01/app/oracle/admin/orcl/adump'到 >>audit_file_dest='/u01/app/oracle/admin/pridb/adump'

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size          2932632 bytes
Variable Size         671088744 bytes
Database Buffers      394264576 bytes
Redo Buffers            5455872 bytes

.

感謝大家的幫助!

忽略init.ora,不使用。你想要init<SID>.ora。在你的情況下,這似乎是initpridb.ora

您已掌握的此文件中的此評論似乎已被忽略:

更改“<ORACLE_BASE>”以指向 oracle 庫(您在安裝時指定的那個)

你還有:

audit_file_dest='&lt;ORACLE_BASE&gt;/admin/orcl/adump'

將此修改為:

/u01/app/oracle/admin/orcl/adump

然後再試一次。

引用自:https://dba.stackexchange.com/questions/231324