Как вы определяете ВЛАДЕЛЬЦА базы данных Oracle

Когда вы устанавливаете базу данных Oracle на сервер Unix, идентификатор пользователя Unix, который вы используете для установки, становится ВЛАДЕЛЕЦОМ базы данных. Какой самый надежный и общий способ определить в сценарии оболочки, какой пользователь Unix является владельцем установки Oracle? Я имею в виду, можете ли вы выполнить grep для файла, созданного установкой, чтобы найти эту информацию, или я прибегну к использованию команды ls для определенного файла в определенном каталоге. Если имя проверяемого файла также является переменным, мне потребуется способ определения имени и пути к файлу.

3 ответа

Решение

Найдите файл с именем "oratab", который обычно находится в / etc или /var/opt/oracle. Там вы найдете для каждой базы данных имя домашнего каталога для этой базы данных. Владелец этого каталога должен быть владельцем установки и всех баз данных, работающих из дома.

Это может быть полезно, если файл oratab находится в / var / opt / oracle:

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

Другие решения, предлагаемые здесь, которые проверяют владельца процесса, должны также работать, но требуют, чтобы база данных работала. Это решение предлагает то преимущество, что оно не требует, чтобы экземпляр работал.

Я не профессиональный администратор базы данных Oracle, но по моему опыту владелец базы данных является владельцем процессов Oracle. Надежным процессом для проверки, вероятно, будет ora_pmon.

ps -ef | grep <process name or id> | awk '{print $1}'

это должно дать вам имя пользовательского процесса, запущенного как.

Другие вопросы по тегам