Ноя 182011
 

В чём состоит разница между командами ALTER SYSTEM SWITCH LOGFILE и ALTER SYSTEM ARCHIVE LOG CURRENT? На первый взгляд, эти команды выполняют одно и то же:

  1. Вызывают событие checkpoint
  2. Процесс LGWR перестаёт писать в текущий лог и начинает писать в следующий
  3. Процесс ARCH архивирует старый лог

но делают они это немного по-разному.

  • ALTER SYSTEM SWITCH LOGFILE
    Работает асинхронно, и возвращает управление вызвавшей сессии до того, как ARCH заархивирует лог. В случае, если используется RAC, переключит лог только на текущем экземпляре.
  • ALTER SYSTEM ARCHIVE LOG CURRENT
    Дожидается завершения архивирования и возвращает управление только когда все 3 пункта выполнены. Если используется RAC, то переключит и заархивирует логи на всех экземплярах.

Основная опасность при использовании ALTER SYSTEM SWITCH LOGFILE в скриптах (в первую очередь это относится к скриптам резервного копирования с помощью RMAN) - вероятность того, что в силу асинхронности этой команды управление будет передано скрипту сразу и скрипт будет выполняться дальше, хотя архивирование ещё не завершено. Таким образом, безопаснее всегда использовать ALTER SYSTEM ARCHIVE LOG CURRENT.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(обязательно)

(обязательно)