top-shop.ru
Зонт женский Doppler

Oracle: Вывести сообщения об ошибках в "удобочитаемом виде"
Проблема: Журнал событий (Alerts log) содержит многострочные сообщения Oracle об ошибках. Хотелось бы вывести только их, разделив пустыми строками. Утилита UNIX grep для многострочных сообщениях об ошибках не является удобной.
Решение: Использование короткого AWK скрипта
  1. Делаем файлик с текстом AWK скрипта ($ORACLE_HOME/oracle_alerts.awk):
    BEGIN {clipboard = "";}
    /[:][0-9][0-9] [0-9][0-9][0-9][0-9]$/ {
     check = index(clipboard, "ORA-");
     if (check != 0) print clipboard; 
     clipboard="";
    
    }
    { clipboard = sprintf("%s\n%s", clipboard, $0); }
    END {
     check = index(clipboard, "ORA-");
     if (check != 0) print clipboard; 
    }
    
  2. Пишем alias в стартовый файл (зависит от Вашего Shell-а, пример для .login): Только укажите верный путь к файлу событий Oracle:
    alias alerts awk -f $ORACLE_HOME/oracle_alerts.awk /.../alert_SID.log
    
  3. Вуаля! Все - теперь, после входа в систему, Вам достаточно набрать в коммандной строке слово alerts и нажать ввод
Задача: Вывести сообщения об ошибках в "удобочитаемом виде"


содержание