- 最后登录
- 2023-8-16
- 在线时间
- 1686 小时
- 威望
- 2135
- 金钱
- 50532
- 注册时间
- 2011-10-12
- 阅读权限
- 200
- 帖子
- 5207
- 精华
- 39
- 积分
- 2135
- UID
- 2
|
4#
发表于 2012-5-21 14:53:50
ODM DATA:
DBCA Fails With PRKC-1055 While Adding a New Instance to an Existing RAC Database
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 10.2.0.1 - Release: 10.1 to 10.2
Information in this document applies to any platform.
Symptoms
o existing RAC database
o trying to add a new instance via DBCA fails with error
Failed to create directory "" on "<new_node>", "PRKC-1055 : Directory name passed was null".
The DBCA log $ORACLE_HOME/cfgtoollogs/dbca/trace.log shows the following messages:
[AWT-EventQueue-0] [21:49:28:560] [ClusterUtils.areSharedPaths:545] 1. path=/u01/app/oracle/product/10.2.0/db_1/dbs
[AWT-EventQueue-0] [21:49:28:560] [ClusterUtils.areSharedPaths:566] 2. path=/u01/app/oracle/product/10.2.0/db_1/dbs
[AWT-EventQueue-0] [21:49:29:204] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/arch1
[AWT-EventQueue-0] [21:49:29:205] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/arch1
[AWT-EventQueue-0] [21:49:29:800] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/arch2
[AWT-EventQueue-0] [21:49:29:801] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/arch2
[AWT-EventQueue-0] [21:49:30:372] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/dfs
[AWT-EventQueue-0] [21:49:30:372] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/dfs
[AWT-EventQueue-0] [21:49:30:942] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/flash
[AWT-EventQueue-0] [21:49:30:943] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/flash
[AWT-EventQueue-0] [21:49:31:522] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/rdlcf1
[AWT-EventQueue-0] [21:49:31:523] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/rdlcf1
[AWT-EventQueue-0] [21:49:32:127] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/rdlcf2
[AWT-EventQueue-0] [21:49:32:127] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/rdlcf2
[AWT-EventQueue-0] [21:49:32:743] [ClusterUtils.areSharedPaths:545] 1. path=/u03/eplse_prod/rdlcf3
[AWT-EventQueue-0] [21:49:32:743] [ClusterUtils.areSharedPaths:566] 2. path=/u03/eplse_prod/rdlcf3
[TaskScheduler timer] [21:49:35:298] [ClusterUtils.areSharedPaths:545] 1. path=
[TaskScheduler timer] [21:49:35:299] [ClusterUtils.areSharedPaths:566] 2. path=
Please note the last two lines which are empty after 'path='.
Cause
This is caused by plsql_native_library_dir is set to an empty string on existing instance:
plsql_native_library_dir=''
hence the value returned for select value from v$parameter where name='plsql_native_library_dir';
is a null string and consequently above error is reported.
While preparing the new instance DBCA connects to the existing instance (on the node on which dbca was invoked) in order to verify that all directories specified in startup parameters exist on the node and/or are shareable.
DBCA retrieves all non-default parameters using the following query:
select name from v$parameter where isdefault='FALSE'
union
select name from v$system_parameter where ismodified='MODIFIED'
;
and then queries the value for each individual parameter. If the parameter refers to a directory, DBCA will test if the directory exists on all nodes and will attempt to verify that it is accessible by each instance.
Solution
Connect to the existing instance and query all non-default parameters - e.g.:
col name format a40
col val format a35
select name,''''||value||'''' val from v$parameter where isdefault='FALSE'
union
select name,''''||value||'''' val from v$system_parameter where ismodified='MODIFIED'
order by 1,2;
Check the query output for parameters that refer to directories/files and make sure they do not have a NULL string as value.
In the current case setting
plsql_native_library_dir = '/tmp'
on the existing instance allowed DBCA to successfully add the new instance.
Please note that setting a string parameter to the null string ('') does not remove it from an SPFILE, this can only be achieved using the 'alter system reset' command e.g.:
alter system reset plsql_native_library_dir scope=spfile;
or by re-creating the SPFILE from a PFILE. |
|