Вернуться

Скрипт 2. Создание shell-скрипта для запуска через вызов sqlplus скрипта protect_rbs.sql


set define :
set verify off
set recsep off
set heading off
set feedback off
set termout off
set trimspool on

spool prevent_1555.sh
prompt rm -f prevent_1555.sh
select
  'sqlplus / @protect_rbs ' || segment_name || ' :1 > /dev/null & echo $!'
from
  sys.dba_rollback_segs
where
  status = 'ONLINE' and
  segment_name != 'SYSTEM'
/
spool off
exit

Строка запуска sqlplus -s / @prevent_1555 , где  время работы блокирующей транзакции. После генерации скрипта prevent_1555.sh, его можно запустить как:

rbs_protectors=$(sh prevent_1555.sh)

Запущенные процессы sqlplus будут работать как фоновые задачи в  течение времени, указанного в параметре  или их можно завершить выполнив:

kill $rbs_protectors


Вернуться