Документ создан: 11.02.2010

Ротация alert.log в Oracle для Windows

27.05.2009 г.

Oracle очень мощная СУБД, но, видимо, из-за первоначальной ориентации на unix, нет в ней средств ротации alert.log. Если в unix-системах эта проблема решается средствами стандартного logrotate, то, для "убогой" в этом отношении Windows, я приемлемого средства не нашёл. А мне очень хотелось собрать все alert.log в одном месте, чтобы не тратить полдня на блуждание по серверам и просмотры логов, но на одном из серверов файл вырос до приличных размеров и тянуть его из удалённного офиса было долго. В конце концов мне это надоело и я написал млюсенький "наколенник" – скрипт на perl, который производит ротацию alert.log от alert.log до alert.log.10

Сам скрипт можно взять здесь, perl есть на всех Oracle-серверах, например, в "%ORACLE_HOME%\perl\5.8.3\bin\MSWin32-x86-multi-thread". Но, если, по какой-то причине, Вы не нашли его там, можно взять здесь для Windows 32bit, а здесь – для Windows 64bit.

Создаём, к примеру, папку C:\logrotate, выкладываем туда скрипт и распаковываем perl (два файла: perl.exe и perl58.dll). Затем создаём стандартными средствами Windows расписание, в котором прописываем вызов perl, на вход которому подаём имя скрипта с параметрами. Скрипт принимает два параметра:

  1. каталог размещения alert.log (можно получить из sqlplus таким запросом "select value from v$parameter where name='background_dump_dest';")
  2. имя alert.log (oбычно вида alert_%ORACLE_SID%.log)
  3. длина последовательности файлов (параметр необязательный, по-умолчанию – 10)

Например, "C:\logrotate\perl.exe C:\logrotate\alert_rotate.pl D:\ORACLE\PRODUCT\10.2.0\ADMIN\DB01\BDUMP alert_db01.log"

После этого, каждый вызов скрипта по расписанию будет "сдвигать" файлы: alert_DB01.log.10 – удалить, alert_DB01.log.9 – в alert_DB01.log.10, alert_DB01.log.8 – в alert_DB01.log.9,…, alert_DB01.log – в alert_DB01.log.1, alert_DB01.log – пустой.

Вот мы и получили ротацию alert.log. У меня вызывается этот скрипт раз в сутки, в связи с чем имеются файлы за одиннадцать дней.

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate