Для цикла для состояния процесса оракула - PullRequest
0 голосов
/ 16 ноября 2018

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

[oracle@ip-xx-xx-xx-xxx~]$ ps -ef|grep smon oracle 15093 1 0 Nov08 ? 00:00:30 ora_smon_orcl oracle 15486 1 0 Nov08 ? 00:00:30 ora_smon_orcltest

Теперь пытаемся получить каждый экземпляр, который работает ..ie только имя db_sid, опуская ora_smon_ и получая только имя для ora_smon_orcl ==> orcl для ora_smon_orcltest ==> orcltest

for db_sid in `ps -ef | grep smon | grep -v grep | awk '{ print $8 }' | cut -d '_' -f3` ; do
echo $db_sid
db_sid_pro="ora_smon_$db_sid"
echo $db_sid_pro
source /home/oracle/$db_sid
ora_home=$ORACLE_HOME
echo $ORACLE_HOME
case "$db_sid" in
"$db_sid_pro")
echo "hi"
tag="true"
echo $tag
msg="$db_sid database instance is running"
echo "$db_sid_pro database process is running"
;;
*)
if [ -e $ora_home/dbs/spfile$db_sid.ora ];then
msg="database is down"
echo "database is down"
tag="false"
else
tag="false"
msg="Incorrect database SID - $db_sid. Please provide the correct database SID"
echo "Incorrect database SID - $db_sid. Please provide the correct database SID"
fi
;;
esac

вывод, отображаемый на терминале:ниже: но вручную я проверил, что база данных работает, и слушатель также работает .. Может быть, я пропускаю что-то в логике программирования, здесь не проблема с базой данных.

orcl
ora_smon_orcl
/dbusr/app/oracle/product/12102
database is down
Oracle listener is down please make it up
database is down
Oracle listener is down please make it up
orcltest
ora_smon_orcltest
/dbusr/app/oracle/product/12102
database is down
Oracle listener is down please make it up
database is down
Oracle listener is down please make it u

Однако, как я обнаружил, ниже это вызывает проблемы .. потому что когдаЯ поставил некоторый отладочный эхо, оно не отображает "привет"

case "$db_sid" in
"$db_sid_pro")
echo "hi"
tag="true"
echo $tage

, а также я вручную проверил наличие строки ниже ... файлы действительно существуют в соответствии с условиями ниже

if [ -e $ora_home/dbs/spfile$db_sid.ora ];then

Любое предложениеили исправьте пожалуйста.

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...