[ОТВЕТИТЬ]
Опции темы
11.05.2012 16:44  
OlegON
Код:
declare
  status varchar(30);
  lim    number := 50;
begin
  for i in (select *
              from v$logfile
             where type = 'ONLINE'
               and group# in
                   (select group# from v$log where bytes / 1024 / 1024 < lim)) loop
    select status into status from v$log where group# = i.group#;
    while status != 'INACTIVE' loop
      execute immediate 'alter system switch logfile';
      execute immediate 'alter system checkpoint';
      select status into status from v$log where group# = i.group#;
    end loop;
    execute immediate 'alter database drop logfile group ' || i.group#;
    execute immediate 'alter database add logfile group ' || i.group# ||
                      ' (''' || i.member || ''') size '||lim||'M reuse';
  end loop;
end;
собственно, lim - минимальный размер файла в Мб. Все файлы пересоздаются на месте старых. Скрипт нормально обрабатывает standby-логи, но убивает всех мемберов, кроме первого попавшегося, если их больше одного.
 
13.05.2012 20:37  
OlegON
Из нюансов - учтите, что если работали с OMF, то обломитесь на создании файла с таким же именем.
 
 
Опции темы



Часовой пояс GMT +3, время: 07:47.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.