Como você determina o proprietário de um banco de dados Oracle?

6

Quando você instala um banco de dados Oracle em um servidor Unix, o ID do usuário Unix usado para a instalação se torna o OWNER do banco de dados. Qual é a maneira mais confiável e geral de determinar em um script de shell qual usuário Unix é o proprietário de uma instalação do Oracle? Quer dizer, você pode executar um grep em um arquivo criado pela instalação para encontrar essa informação ou devo recorrer ao uso do comando ls em um arquivo específico em um diretório específico. Se o nome do arquivo a ser verificado também for variável, eu precisaria ter uma maneira de determinar o nome e o caminho para o arquivo.

    
por Kwang Mark Eleven 22.04.2010 / 18:03

3 respostas

2

Procure o arquivo chamado "oratab", normalmente encontrado em / etc ou / var / opt / oracle. Lá você encontrará para cada banco de dados o nome do diretório inicial desse banco de dados. O proprietário desse diretório deve ser o proprietário da instalação e de todos os bancos de dados que estão sendo executados em casa.

Isso pode ser útil, supondo que o arquivo oratab esteja em / var / opt / oracle:

ls -ld 'grep 'your_db_name' /var/opt/oracle/oratab|cut -d":" -f2'|cut -d" " -f4

As outras soluções oferecidas aqui que examinam o proprietário do processo também devem funcionar, mas exigem que o banco de dados esteja em execução. Essa solução oferece a vantagem de não exigir que a instância esteja ativa.

    
por 22.04.2010 / 20:29
1

Eu não sou um profissional DBA Oracle, mas minha experiência é que o proprietário do banco de dados é o proprietário dos processos do Oracle. Um processo confiável para checar provavelmente seria ora_pmon.

    
por 22.04.2010 / 18:06
1
ps -ef | grep <process name or id> | awk '{print $1}'

isso deve dar a você o nome do processo do usuário que está sendo executado.

    
por 22.04.2010 / 19:29

Tags