Quando eu inicio uma instância Oracle com sqlplus
os caminhos para os arquivos de dados armazenados nos arquivos de controle, o nome do arquivo de controle é armazenado no control_files
parâmetro de inicialização. Os parâmetros de inicialização são lidos de um arquivo ( init.ora
, spfile.ora
) encontrado em um local padrão ou sua localização pode ser passada para a instância do banco de dados na inicialização ( sqlplus startup pfile=filename
, spfile
parâmetro no script de inicialização). Assim, todos os arquivos necessários ao banco de dados podem ser localizados em posições arbitrárias e essas posições podem ser comunicadas à instância do banco de dados na inicialização. Mas e o arquivo de senha? Pela documentação sabemos que o local padrão para o arquivo de senha no Linux é $ORACLE_HOME/dbs/orapw${ORACLE_SID}
. Se for um cluster, podemos informar ao software do cluster onde armazenamos o arquivo de senha,srvctl modify database -db <db_unique_name> -pwfile <password_file_path>
. Mas o nome do arquivo de senha, neste caso, pode ser arbitrário.
- posso colocar o arquivo de senha em um local arbitrário e comunicar esse local ao banco de dados quando iniciar a instância com
sqlplus
. - Então, como a Oracle sabe onde encontrar o arquivo de senha, especialmente se alguém inicia o banco de dados com
sqlplus
ourman
não pelo software de cluster? - Posso consultar o banco de dados para descobrir a localização do arquivo de senha.