在Unix服务器中安装Oracle数据库时,用于安装的Unix用户标识将成为数据库的OWNER。 在shell脚本中确定哪一个Unix用户是Oracle安装的所有者的最可靠和一般的方法是什么? 我的意思是,你可以对由安装创build的文件执行grep来查找这个信息,或者我应该使用ls命令在特定目录的特定文件上。 如果要检查的文件的名称也是可变的,我需要有一种方法来确定文件的名称和path。
查找通常在/ etc或/ var / opt / oracle中find的名为“oratab”的文件。 在那里,你会find每个数据库的数据库的主目录的名称。 该目录的所有者应该是安装的所有者以及从家中运行的所有数据库的所有者。
假设oratab文件在/ var / opt / oracle中,这可能有些用处:
ls -ld `grep 'your_db_name' /var/opt/oracle/oratab|cut -d":" -f2`|cut -d" " -f4
这里提供的其他检查stream程所有者的解决scheme也应该可以工作,但是需要运行数据库。 这个解决scheme提供了不需要实例启动的优点。
我不是专业的Oracle DBA,但是我的经验是,数据库的所有者是Oraclestream程的所有者。 一个可靠的检查过程可能是ora_pmon。
ps -ef | grep <process name or id> | awk '{print $1}'
这应该给你用户进程运行的名称。