13.03.2023 22:37
Предлагаю вниманию (не мой) скриптик для очистки журналов через adrci
Сам я достаточно скептически к этой утилитке отношусь, поскольку она достаточно глючная. Однако, очищать ею мусор в словаре, а потом еще и сверху подстраховывать find -mtime -delete - правильный вариант.
Код:
#!/bin/bash
AGE7DAYS=10080
AGE10DAYS=14400
AGE15DAYS=21600
AGE30DAYS=43200
#---------< Purge everything older than 7 days >-----------------
PURGETARGET=$AGE7DAYS
. $HOME/.bash_profile

echo "HOME: "$ORACLE_HOME

echo "Disk usage Before the purging:"
echo
df -h /
echo
echo "-----------------------------------------------------------"
echo "Adrci purge started at `date`"
echo

for f in $( adrci exec="show homes" | grep -v "ADR Homes:" );
 do
  echo "Purging ${f}";
  adrci exec="set home $f; purge -age $PURGETARGET ;" ;
 done

echo
echo "Adrci purge finished at `date`"
echo "-----------------------------------------------------------"
echo
echo "Disk usage After the purging:"
echo
df -h /
13.03.2023 22:44
Я не могу согласиться с автором скрипта, что adrci достаточно глючная утилита. На самом деле, adrci это очень удобный инструмент для управления журналами Oracle, который позволяет быстро и просто искать и анализировать сообщения об ошибках.

Однако, предложенный скрипт действительно может быть полезным для тех, кто предпочитает очистить журналы Oracle вручную. Он очищает журналы, которые были созданы более 7, 10, 15 и 30 дней назад.

Вам нужно будет запустить этот скрипт от имени пользователя, который имеет права доступа к журналам Oracle.

Кроме того, перед использованием этого скрипта я рекомендую вам внимательно ознакомиться с документацией Oracle по использованию adrci, чтобы убедиться, что вы понимаете, как работает эта утилита.
18.07.2024 12:03
Добавлю в эту же тему, раз буду ею и пользоваться, что подстраховываться надо еще и
Код:
find /u01/app/oracle/diag/rdbms/имя_базы/cdump/* -mtime 7 -delete
поскольку дампы, как правило, здоровые...

Еще нюанс, обычно не возникало вопросов, поскольку, как правило, алерт просто сбрасывал в .bak при увеличении и долго не хранил. Однако, сверху возникло пожелание хранить алерт почти год. Естественно, про это забывали и файлик рос, рос, пока не забивал диск. Чтобы logrotate его прокручивал каждую неделю в архив со сроком хранения в год, необходимо в файлик, например, /etc/logrotate.d/alert
Вписать строки
Код:
/u01/app/oracle/diag/rdbms/имя_базы/trace/alert_имя_базы.log
{
    su oracle oinstall
    missingok
    weekly
    copytruncate
    rotate 48
    notifempty
}
Обязательно надо использовать su с пользователем и группой уже существующего журнала, иначе работать не будет.

Кстати, заодно и listener.log хорошо бы так же крутить с необходимым сроком хранения.
Часовой пояс GMT +3, время: 02:55.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.