...
Чтобы настроить контроль выполнения заданий
| ais_name |
|---|
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
. /etc/profile
rval=0
ORA_USER="AIS_NET"
ORA_PASS="mypass"
SQLPLUS_PATH="$ORACLE_HOME/bin/sqlplus"
if [ -n "$3" ]; then
ORA_SID="$3"
export ORACLE_SID=$ORA_SID
fi
sql=""
case $1 in
'job_state')
if [ -n "$2" ]; then
echo "
SELECT to_char(N_JOB_STATE_ID, 'FM99999999999999990') FROM SS_V_JOBS WHERE N_JOB_ID=$2;
" | ${SQLPLUS_PATH} -s ${ORA_USER}/${ORA_PASS}@${ORACLE_SID} |
awk '{ if ($1 == 2034) print "Running"
else if($1 == 1034) print "Waiting"
else if($1 == 3034) print "StartingTo Start"
else if($1 == 4034) print "Locked"
else if($1 == 5034) print "Deleted"
else if($1 == 6034) print "Error"
else if($1 == 7034) print "Cant Start"
}'
else
rval=1
echo "No JOB_ID" >&2
fi
;;
'job_last_start')
if [ -n "$2" ]; then
sql="
SELECT to_char((sysdate - D_LAST_START) * (86400), 'FM99999999999999990') FROM SS_V_JOBS WHERE N_JOB_ID=$2;
"
else
rval=1
echo "No JOB_ID" >&2
fi
;;
*)
echo "Hydra monitoring tool"
echo "usage:"
echo " $0 job_state <JOB_ID> [SID] -- Check job status."
echo " $0 job_last_start <JOB_ID> [SID] -- Check job last start date/time."
rval=1
exit $rval
;;
esac
if [ -n "$sql" ]; then
echo "$sql" | ${SQLPLUS_PATH} -s ${ORA_USER}/${ORA_PASS}@${ORACLE_SID}
fi
rval=$?
exit $rval
|
Различаются В версиях до 6.0 включительно различаются 7 состояний:
| Код | Состояние | Норма |
|---|---|---|
| 1034 | В ожидании | Д |
| 2034 | Выполняется | Д |
| 3034 | К запуску | Д |
| 4034 | Блокировано | Н |
| 5034 | Удалено | Н |
| 6034 | Ошибка запуска | Н |
| 7034 | Не запущено | Д |
Не нормальными являются состояния, помеченные буквой Н. Исключение: задание, заблокированное принудительно.
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
. /etc/profile
rval=0
ORA_USER="AIS_NET"
ORA_PASS="mypass"
SQLPLUS_PATH="$ORACLE_HOME/bin/sqlplus"
if [ -n "$3" ]; then
ORA_SID="$3"
export ORACLE_SID=$ORA_SID
fi
sql=""
case $1 in
'job_state')
if [ -n "$2" ]; then
echo "
SELECT to_char(N_JOB_STATE_ID, 'FM99999999999999990') FROM SS_V_JOBS WHERE N_JOB_ID=$2;
" | ${SQLPLUS_PATH} -s ${ORA_USER}/${ORA_PASS}@${ORACLE_SID} |
awk '{ if ($1 == 2034) print "Running"
else if($1 == 1034) print "Waiting"
else if($1 == 3034) print "Pending"
else if($1 == 4034) print "Disabled Manually"
else if($1 == 5034) print "Deleted"
else if($1 == 6034) print "Error"
else if($1 == 7034) print "Failed To Start"
else if($1 == 8034) print "Broken"
}'
else
rval=1
echo "No JOB_ID" >&2
fi
;;
'job_last_start')
if [ -n "$2" ]; then
sql="
SELECT to_char((sysdate - D_LAST_START) * (86400), 'FM99999999999999990') FROM SS_V_JOBS WHERE N_JOB_ID=$2;
"
else
rval=1
echo "No JOB_ID" >&2
fi
;;
*)
echo "Hydra monitoring tool"
echo "usage:"
echo " $0 job_state <JOB_ID> [SID] -- Check job status."
echo " $0 job_last_start <JOB_ID> [SID] -- Check job last start date/time."
rval=1
exit $rval
;;
esac
if [ -n "$sql" ]; then
echo "$sql" | ${SQLPLUS_PATH} -s ${ORA_USER}/${ORA_PASS}@${ORACLE_SID}
fi
rval=$?
exit $rval
|
В версиях 6.2 и новее различаются 8 состояний:
| Код | Состояние | Тип |
|---|---|---|
| 1034 | В ожидании | Норма, |
| 2034 | Выполняется | Норма |
| 3034 | Готово к запуску | Норма |
| 4034 | Отключено вручную | Норма |
| 5034 | Удалено | Норма |
| 6034 | Выполнено с ошибкой | Предупреждение |
| 7034 | Не удалось запустить | Предупреждение |
| 8034 | Заблокировано автоматически | Проблема |
Перечень заданий и их идентификаторы следует брать со страницы АСР Администрирование -> Задания - Назначенные задания.
Контроль рекомендуется вести по всем заданиям системы.
...