当我启动 Oracle 实例时,sqlplus
数据文件的路径存储在控制文件中,控制文件名存储在control_files
初始化参数中。初始化参数是从默认位置上找到的文件 ( init.ora
, spfile.ora
) 中读取的,或者它们的位置可以在启动时传递到数据库实例(启动脚本中的参数)sqlplus startup pfile=filename
。spfile
因此数据库所需的所有文件都可以位于任意位置,并且这些位置可以在启动时与数据库实例通信。但是密码文件呢?从文档中我们知道Linux中密码文件的默认位置是$ORACLE_HOME/dbs/orapw${ORACLE_SID}
. 如果是集群,我们可以通过以下方式告诉集群软件我们存储密码文件的位置srvctl modify database -db <db_unique_name> -pwfile <password_file_path>
。但本例中密码文件的名称可以是任意的。
- 我可以将密码文件放置在任意位置,并在使用 启动实例时将此位置传递给数据库吗
sqlplus
? sqlplus
那么Oracle如何知道在哪里可以找到密码文件,特别是如果使用或rman
而不是通过集群软件启动数据库呢?- 我可以查询数据库来找出密码文件的位置吗?