УПРАВЛЕНИЕ ОНЛАЙНОВЫМ ЖУРНАЛОМ


ГЛАВА 5

        ----------------------------------------------------------------

        УПРАВЛЕНИЕ ОНЛАЙНОВЫМ ЖУРНАЛОМ



        Эта   глава   объясняет,   как   управлять   онлайновым журналом
        повторения.   Темы  этой  главы  включают  обсуждение  следующих
        вопросов:

            *  политика управления журналом

            *  создание групп и членов журнала

            *  переименование и перемещение членов журнала

            *  удаление групп и членов журнала

            *  форсирование переключения журнала

            *  установка интервалов контрольной точки

            *  получение информации об онлайновом журнале

[Parallel]

        Для   информации   об   управлении   онлайновыми   журналами при
        использовании   параллельного   сервера   ORACLE,   обратитесь к
        документу ORACLE7 Parallel Server Administrator's Guide.
































                                     Управление онлайновым журналом  5-1


----------------

Учреждение политики для онлайнового журнала

        Рассмотрите следующие  вопросы при  конфигурировании онлайнового
        журнала для инстанции базы данных.

Зеркализуйте онлайновый журнал
------------------------------

        Онлайновый журнал  повторения для  инстанции базы  данных должен
        состоять из  зеркальных групп  файлов журнала.   Более того, все
        члены одной группы должны располагаться на разных дисках,  чтобы
        никакой одиночный сбой диска не  привел к сбою LGWR и  инстанции
        базы данных.

[!]     Хотя  сервер  ORACLE  допускает,  чтобы группы журнала содержали
        неодинаковое число  файлов, такое  состояние должно  быть только
        временным,  как  результат   аварийной  ситуации,  приведшей   к
        повреждению члена группы; если какая-нибудь группа состоит  лишь
        из одного члена,  то отказ диска  с этим членом  приведет к сбою
        ORACLE.

        Хотя  зеркальные  группы  занимают  лишнюю дисковую память, цена
        этой памяти  обычно несущественна  по сравнению  с потенциальной
        стоимостью потери данных, если сбой диска приведет к  разрушению
        незеркального журнала.

Правильно размещайте члены онлайнового журнала
----------------------------------------------

        Используя зеркальный журнал,  размещайте члены группы  на разных
        дисках.  В  этом случае  при сбое  одного диска  лишь один  член
        группы  станет  недоступным  процессу  LGWR,  так  что инстанция
        сможет продолжать работать.

        Если вы архивируете журнал, старайтесь избегать соперничества за
        устройства  между  процессами  LGWR  и  ARCH.  Например, если вы
        имеете   две   группы   дуплексированного   онлайнового журнала,
        разместите  все  члены  на  четырех  разных дисках, а назначение
        архива  направьте  на  пятый  диск.   При  таком  способе,  LGWR
        (пишущий в  журнал) и  ARCH (читающий  журнал) никогда  не будут
        мешать друг другу.

        Файлы   данных   и   файлы   онлайнового   журнала  также должны
        размещаться на разных дисках, чтобы уменьшить соперничество  при
        записи блоков данных и записей повторения.

Правильно установите размер членов онлайнового журнала
------------------------------------------------------

        При выборе размера файлов онлайнового журнала рассматривайте два
        вопроса: общий размер онлайновых файлов журнала для инстанции  и
        размер каждого отдельного файла  журнала по сравнению с  другими
        файлами журнала той же инстанции.

        Онлайновые файлы  журнала должны  быть относительно  малы.  Если
        используются  большие   файлы  журнала,   а  контрольные   точки
        происходят  лишь  при  переключениях  журнала, то восстановление
        инстанции требует большого времени, так как приходится применять
        большое  число  записей   повторения.   В  большинстве   случаев


5-2  Руководство администратора


        умалчиваемый  размер   онлайнового  файла   журнала  оказывается
        удовлетворительным.    Этот   умалчиваемый   размер   зависит от
        операционной системы; см. ваше руководство по инсталляции [IUG].

        При выборе размера файлов онлайнового журнала учитывайте  также,
        будете ли вы архивировать  журнал.  Размер файла журнала  должен
        быть таким, чтобы заполненную группу можно было архивировать  на
        единицу  офлайнового  носителя  (ленту  или  диск),  так,  чтобы
        минимизировать   остающееся   неиспользованным   место   на этом
        носителе.   Например,  предположим,  что  лишь  одна заполненная
        группа журнала умещается на ленте, и при этом 49% емкости  ленты
        остаются неиспользованными.  В этом случае предпочтительнее было
        бы несколько уменьшить размер онлайновых файлов журнала, с  тем,
        чтобы  на  архивную  ленту  умещались  две  заполненных   группы
        журнала.

        При  зеркальных  группах  онлайнового  журнала,  все члены одной
        группы должны иметь  один и тот  же размер.  Члены  разных групп
        могут иметь разные размеры; однако варьирование размеров  файлов
        по группам не дает никаких преимуществ.  Если контрольные  точки
        происходят лишь  при переключении  журнала, сделайте  все группы
        одинакового размера, чтобы гарантировать, что контрольные  точки
        будут происходить через регулярные интервалы.

Выбор числа онлайновых файлов журнала
-------------------------------------

        Лучший  способ  определить  правильное  число  онлайновых файлов
        журнала  для  инстанции  базы  данных  -  это испытать различные
        конфигурации.   Оптимальной   будет  та   конфигурация,  которая
        содержит  наименьшее  возможное  число  групп,  но  при  этом не
        затрудняет работу процесса LGWR.

        В некоторых случаях инстанция может требовать всего двух  групп;
        в других ситуациях инстанции могут потребоваться  дополнительные
        группы, чтобы  гарантировать, что  при циклическом  переключении
        LGWR всегда  попадет на  доступную группу.   Во время испытаний,
        самый   простой   способ   определить,   подходит   ли   текущая
        конфигурация онлайнового журнала,  - это исследовать  содержимое
        файла  трассировки  LGWR  и  файла  ALERT  базы  данных.    Если
        сообщения показывают, что LGWR  часто должен ждать группу  из-за
        того,  что  не  завершена   контрольная  точка  или  группа   не
        архивирована, то увеличьте число групп.

        Число онлайновых файлов журнала базы данных ограничивается тремя
        параметрами:

            *  Параметр MAXLOGFILES, который использовался в предложении
               CREATE  DATABASE  при  создании  базы  данных, определяет
               максимальное  число  групп  онлайнового  журнала  на базу
               данных;   номера   групп   могут   изменяться   от   1 до
               MAXLOGFILES.  Единственный  способ перекрыть  эту верхнюю
               границу - заново создать  базу данных или ее  управляющий
               файл;  поэтому  важно  рассмотреть  это  значение   перед
               созданием  базы  данных.    Если  в  предложении   CREATE
               DATABASE  не  указан  параметр  MAXLOGFILES,  то   ORACLE
               использует    умалчиваемое    значение,    зависящее   от
               операционной системы.





                                     Управление онлайновым журналом  5-3


            *  Параметр  LOG_FILES  в  файле  параметров  может временно
               уменьшить  максимальное  число  групп  файлов  журнала на
               время  текущей  инстанции.   Значение  этого параметра не
               может  превышать  значение  MAXLOGFILES.   Если  в  файле
               параметров  не  указан  параметр  LOG_FILES,  то   ORACLE
               использует    умалчиваемое    значение,    зависящее   от
               операционной системы.

            *  Параметр   MAXLOGMEMBERS,    который   использовался    в
               предложении  CREATE  DATABASE  при  создании базы данных,
               определяет максимальное число членов в группе.  Как и для
               MAXLOGFILES,  единственный  способ  перекрыть эту верхнюю
               границу - заново создать  базу данных или ее  управляющий
               файл;  поэтому  важно  рассмотреть  это  значение   перед
               созданием  базы  данных.    Если  в  предложении   CREATE
               DATABASE  не  указан  параметр  MAXLOGMEMBERS,  то ORACLE
               использует    умалчиваемое    значение,    зависящее   от
               операционной системы.

        Рассмотрите эти параметры, прежде чем устанавливать или изменять
        конфигурацию онлайнового журнала инстанции.  Обратитесь к вашему
        руководству  по   инсталляции,  чтобы   узнать  умалчиваемые   и
        допустимые значения для  параметров MAXLOGFILES и  MAXLOGMEMBERS
        предложения CREATE DATABASE и параметра инициализации LOG_FILES.


----------------

Создание групп онлайнового журнала

        Вы  можете  создать  группы  онлайнового  журнала  и  как  часть
        создания  базы  данных,  и  позднее.  Если возможно, спланируйте
        журнал и создайте все необходимые группы файлов журнала во время
        создания базы данных; см. главу 2 о создании базы данных.

        В   некоторых   случаях   вам   может   потребоваться    создать
        дополнительные  группы  файлов  онлайнового  журнала.  Например,
        добавление  новых  групп  может  разрешить  проблему доступности
        групп журнала.  База данных может иметь максимально  MAXLOGFILES
        таких групп.

        Для создания новой  группы онлайнового журнала  используйте либо
        диалог Add  Online Redo  Log Group  в SQL*DBA,  либо команду SQL
        ALTER  DATABASE  с  параметром  ADD LOGFILE.  Рис.5-1 показывает
        диалог Add Online Redo Log Group.


















5-4  Руководство администратора


Рис.5-1
Диалог Add Online Redo Log Group

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦    г=============== Add Online Redo Log Group ===========¬  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Thread Number: ---                                  ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Group Number:  ---                                  ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Online Redo Log Members: 'log1c', 'log2c'-----------¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ [X] Member Size: 500  (o)K ( )M [ ] Reuse Existing F¦  ¦
        ¦¦    ¦-----------------------------------------------------¦  ¦
        ¦¦    ¦ List                                (OK)  (Cancel)  ¦  ¦
        ¦¦    L=====================================================-  ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Следующее  предложение  является  командным эквивалентом диалога
        Add Online Redo Log Group, показанного на рис.5-1:

        ALTER DATABASE
            ADD LOGFILE ('log1c', 'log2c') SIZE 500K;

        Замечание: Специфицируйте имена новых членов журнала  полностью,
        чтобы указать, где должны быть созданы новые файлы  операционной
        системы;  в   противном  случае   эти  файлы   будут  созданы  в
        умалчиваемом каталоге  сервера базы  данных, который  зависит от
        операционной  системы.   Если  вы  хотите перекрыть существующий
        файл операционной системы, то можно не указывать размер файла.

        В предложении ALTER DATABASE с параметром ADD LOGFILE вы  можете
        специфицировать  номер,  идентифицирующий  группу,   посредством
        опции GROUP:

        ALTER DATABASE
            ADD LOGFILE GROUP 10 ('log1c', 'log2c') SIZE 500K;

        Использование  номеров  групп  облегчает администрирование этими
        группами.  Однако номера групп должны лежать в интервале между 1
        и  MAXLOGFILES;  не  пропускайте  номеров  групп  (например,  не
        нумеруйте  ваши  группы  как  10,  20,  30  и  т.п.),  так как в
        противном  случае  вы  расходуете  лишнюю  память  в управляющих
        файлах базы данных.


Привилегии, требуемые для создания
онлайновых групп журнала повторения
-----------------------------------

        Для создания новых онлайновых групп журнала повторения вы должны
        иметь системную привилегию ALTER DATABASE.


                                     Управление онлайновым журналом  5-5


----------------

Создание членов онлайнового журнала

        В некоторых случаях вам может потребоваться не создавать  полную
        группу онлайнового  журнала; группа  может уже  существовать, но
        быть неполной из-за потери  одного или нескольких членов  группы
        (например, как следствие сбоя  диска).  В этом случае  вы можете
        добавить новые члены в существующую группу.

        Чтобы  добавить  новые  члены  в  существующую  группу  журнала,
        используйте либо диалог  Add Online Redo  Log Member в  SQL*DBA,
        либо команду SQL ALTER DATABASE с параметром ADD LOGFILE MEMBER.
        Рис.5-2 показывает диалог Add Online Redo Log Member.

Рис.5-2
Диалог Add Online Redo Log Member

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦    г=============== Add Online Redo Log Member ==========¬  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Members to Add: 'log2b'---------------------------- ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Add to Group #: 2-                                  ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦-----------------------------------------------------¦  ¦
        ¦¦    ¦ List, Mandatory                     (OK)  (Cancel)  ¦  ¦
        ¦¦    L=====================================================-  ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Следующее  предложение  является  командным эквивалентом диалога
        Add Online Redo Log Member, показанного на рис.5-2:

        ALTER DATABASE
            ADD LOGFILE MEMBER 'log2b' TO GROUP 2;

        Заметьте, что  имена файлов  должны быть  специфицированы, а  их
        размеры   нет;   размер   новых   членов   определяется размером
        существующих членов указанной группы журнала.

        Альтернативно  номеру  группы,  в  команде  ALTER DATABASE можно
        указать  целевую  группу  путем  перечисления  всех остальных ее
        членов.  Например:











5-6  Руководство администратора


        ALTER DATABASE
            ADD LOGFILE MEMBER 'log2с' TO ('log2a', 'log2b');

        Замечание: Специфицируйте имена новых членов журнала  полностью,
        чтобы указать, где должны быть созданы новые файлы  операционной
        системы;  в   противном  случае   эти  файлы   будут  созданы  в
        умалчиваемом каталоге сервера базы данных.


----------------

Переименование и перемещение членов онлайнового журнала

        Вы  можете  переименовывать  члены  онлайнового  журнала,  чтобы
        изменять их местоположение.  Эта процедура необходима, например,
        если  диск,  используемый  для  некоторых файлов журнала, вскоре
        будет удален,  или если  некоторые файлы  журнала расположены на
        одном диске с файлами данных, и их требуется переместить,  чтобы
        уменьшить соперничество.

[!]     Прежде, чем переименовывать онлайновые члены журнала, проверьте,
        что  новые  онлайновые  файлы  журнала  уже  существуют.   Шаги,
        описанные ниже, всего лишь модифицируют внутренние указатели  на
        файлы  в  управляющих  файлах  базы  данных;  они  не занимаются
        физическим   переименованием   или   созданием   никаких  файлов
        операционной системы.  Используйте средства операционной системы
        вашего  компютера,  чтобы  скопировать  существующие  онлайновые
        файлы журнала на новое место.

        Чтобы  переименовать  члены  журнала,  используйте  либо  диалог
        Rename Online Redo Log Member в SQL*DBA, либо команду SQL  ALTER
        DATABASE с  параметром RENAME  FILE.  Рис.5-3  показывает диалог
        Rename Online Redo Log Member.

Рис.5-3
Диалог Rename Online Redo Log Member

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦    г============ Rename Online Redo Log Member ==========¬  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Old Filenames: 'log1a', 'log2a'-------------------- ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ New Filenames: 'log1c', 'log2c'-------------------- ¦  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦-----------------------------------------------------¦  ¦
        ¦¦    ¦ List, Mandatory                     (OK)  (Cancel)  ¦  ¦
        ¦¦    L=====================================================-  ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------






                                     Управление онлайновым журналом  5-7


        Следующее  предложение  является  командным эквивалентом диалога
        Rename Online Redo Log Member, показанного на рис.5-3:

        ALTER DATABASE
            RENAME FILE 'log1a', 'log2a'
                     TO 'log1c', 'log2c';

Пример

        Предположим следующее:

            *  База данных в  настоящий момент смонтирована  инстанцией,
               но закрыта.

            *  Онлайновый журнал дуплексирован:  одна группа состоит  из
               членов LOG1A и LOG1B, вторая  - из членов LOG2A и  LOG2B.
               Файлы членов LOG1A и LOG2A расположены на диске A,  файлы
               LOG1B и LOG2B - на диске B.

            *  Онлайновые файлы журнала, находящиеся на диске A,  должны
               быть перемещены на диск C. Их новые имена будут  отражать
               новое местоположение: LOG1C и LOG2C.

        Чтобы выполнить эту операцию, необходимы следующие шаги:

        1. Сделать резервную копию базы данных.

           Прежде, чем вносить любые структурные изменения в базу данных
           (а  переименование  или  перемещение  членов журнала является
           таковым),  сделайте   полную  копию   базы  данных   (включая
           управляющий файл) на случай каких-либо проблем при выполнении
           предстоящей операции.  (См. главу 18 о процедурах копирования
           базы данных.)

        2. Скопируйте онлайновые файлы журнала на новое место.

           Файлы операционной системы,  такие как члены  журнала, должны
           копироваться   с   помощью   подходящих   команд операционной
           системы.   Обратитесь  к  документации  по вашей операционной
           системы за описанием таких команд.

           Совет: Вы можете  выполнить команду операционной  системы, не
           выходя  из  SQL*DBA:  либо  используйте диалоговое окно Enter
           System Command,  либо введите  предложение HOST  в окне ввода
           SQL*DBA.

           В нашем примере,  файлы LOG1A и  LOG2A с диска  A должны быть
           скопированы в новые файлы LOG1C и LOG2C на диск C.

        3. Переименуйте члены онлайнового журнала.

           Используйте либо диалог Rename  Online Redo Log Member,  либо
           команду SQL ALTER DATABASE с фразой RENAME FILE.










5-8  Руководство администратора


        4. Откройте базу данных для нормальной работы.

           Изменения  в  онлайновом  журнале  будут  иметь  эффект   при
           очередном открытии базы  данных.  Открытие базы  данных может
           потребовать   останова   текущей   инстанции,   если  текущая
           инстанция ранее уже открывала базу данных; в противном случае
           достаточно просто открыть базу данных в текущей инстанции.

        5. Сделайте копию управляющего файла.

           После переименования или перемещения некоторых файлов журнала
           немедленно скопируйте управляющий файл базы данных на  случай
           возникновения каких-либо проблем в будущем.

Привилегии, требуемые для переименования
или перемещения членов онлайнового журнала
------------------------------------------

        Для  переименования  членов  онлайнового  журнала  повторения вы
        должны иметь системную  привилегию ALTER DATABASE.   Кроме того,
        вам могут  потребоваться также  привилегии операционной  системы
        для копирования файлов на новое место, и привилегии для открытия
        и копирования базы данных.


----------------

Удаление групп онлайнового журнала

        В некоторых случаях вам может понадобиться удалить целую  группу
        членов  онлайнового  журнала.   Например,  вы  можете   захотеть
        сократить число групп в онлайновом журнале инстанции.

        Прежде  чем  удалять  группу  онлайнового  журнала,  рассмотрите
        следующие ограничения и предостережения:

            *  Инстанции требуется по  меньшей мере две  группы журнала,
               независимо  от  числа  членов  в  каждой группе.  (Группа
               состоит из одного или более членов.)

            *  Вы можете удалить группу онлайнового журнала лишь  тогда,
               когда она  не активна.   Если вам  нужно удалить активную
               группу,  сначала  форсируйте  переключение  журнала;  см.
               "Форсирование переключения журнала" на странице 5-14.

            *  Убедитесь,  что  группа  онлайнового журнала архивирована
               (если  включено  архивирование),  прежде  чем удалять ее.
               Чтобы проверить, так ли это, используйте либо опцию  List
               Archive Status в меню  Log SQL*DBA, либо команду  ARCHIVE
               LOG с параметром LIST.

        Чтобы  удалить  группу  онлайнового  журнала,  используйте  либо
        диалог Drop Online  Redo Log Group  в SQL*DBA, либо  команду SQL
        ALTER DATABASE  с параметром  DROP LOGFILE.   Рис.5-4 показывает
        диалог Drop Online Redo Log Group.








                                     Управление онлайновым журналом  5-9


Рис.5-4
Диалог Drop Online Redo Log Group

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦    г============ Drop Online Redo Log Group =============¬  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Online Redo Log Group:                              ¦  ¦
        ¦¦    ¦ --------------------------------------------------¬ ¦  ¦
        ¦¦    ¦ ¦ 1                                               ¦ ¦  ¦
        ¦¦    ¦ ¦ 2                                               ¦ ¦  ¦
        ¦¦    ¦ ¦ 3                                               ¦ ¦  ¦
        ¦¦    ¦ ¦ 4                                               ¦ ¦  ¦
        ¦¦    ¦ L-------------------------------------------------- ¦  ¦
        ¦¦    ¦-----------------------------------------------------¦  ¦
        ¦¦    ¦       Mandatory                     (OK)  (Cancel)  ¦  ¦
        ¦¦    L=====================================================-  ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Следующее  предложение  является  командным эквивалентом диалога
        Drop Online Redo Log Group, показанного на рис.5-4:

        ALTER DATABASE DROP LOGFILE GROUP 3;

        При  удалении  группы  онлайнового  журнала  из  базы  данных не
        происходит физического  удаления файлов  операционной системы  с
        диска.   Происходит  просто  обновление  управляющего файла базы
        данных, чтобы  удалить члены  группы из  структуры базы  данных.
        После  того,  как  вы  убедитесь,  что  эта  операция  выполнена
        успешно,   вы   можете   использовать   соответствующие  команды
        операционной системы, чтобы физически удалить файлы группы.


Привилегии, требуемые для удаления
группы онлайнового журнала
----------------------------------

        Для  удаления  группы  онлайнового  журнала повторения вы должны
        иметь системную привилегию ALTER DATABASE.
















5-10  Руководство администратора


----------------

Удаление членов онлайнового журнала

        В  некоторых  случаях  вам  может  понадобиться удалить один или
        несколько членов онлайнового журнала.  Например, когда произошел
        отказ  диска,   вам  может   потребоваться  удалить   все  члены
        онлайнового журнала, приписанные к этому диску, чтобы ORACLE  не
        пытался  писать  на  сбойное  устройство.   В  других ситуациях,
        конкретные члены журнала  могут стать ненужными;  например, файл
        мог быть расположен в неподходящем месте.

        Прежде  чем   удалять  отдельные   файлы  онлайнового   журнала,
        рассмотрите следующие ограничения и предостережения:

            *  Разрешается удалять  файлы онлайнового  журнала так,  что
               зеркальный  журнал  временно  становится  несимметричным.
               Например,  если  вы  используете  дуплексированные группы
               файлов журнала, вы можете удалить один член группы,  даже
               если  при   этом  остальные   группы  по-прежнему   будут
               содержать  по  два  члена.   Однако  вы  должны как можно
               скорее исправить эту ситуацию, восстановив по два члена в
               каждой группе, чтобы устранить возможность потери журнала
               в результате одиночного сбоя.

            *  Инстанции  всегда  требуются  по  меньшей мере две группы
               файлов  журнала,  независимо  от  числа  членов  в каждой
               группе.   (Группа  состоит   из  одного  или   нескольких
               членов.)  Если член, который вы хотите удалить,  является
               последним  действительным   (т.е.  физически   доступным)
               членом  группы,  нельзя  удалять  его,  пока  не   станут
               действительными  остальные   члены  этой   группы;  чтобы
               проверить  состояние   члена  группы   журнала,  опросите
               таблицу    V$LOGFILE.     (Файл    журнала     становится
               недействительным, INVALID, если он недоступен для ORACLE.
               Он становится бракованным, STALE, если ORACLE заподозрил,
               что  он   неполон  или   некорректен;  бракованный   файл
               становится  действительным,  когда  произойдет  очередное
               переключение журнала, и эта группа станет активной.)

            *  Вы можете удалить член  группы журнала лишь тогда,  когда
               его  группа  не  активна.   Если  вы  хотите удалить член
               активной группы, сначала форсируйте переключение журнала;
               см.   "Форсирование  переключения  журнала"  на  странице
               5-14.

            *  Убедитесь,  что  группа  онлайнового журнала архивирована
               (если  включено  архивирование),  прежде  чем  удалять ее
               член.   Чтобы  проверить,  так  ли  это, используйте либо
               опцию  List  Archive  Status  в  меню  Log  SQL*DBA, либо
               команду ARCHIVE LOG с параметром LIST.

        Чтобы удалить конкретные  неактивные файлы онлайнового  журнала,
        используйте либо диалог Drop  Online Redo Log Member  в SQL*DBA,
        либо  команду  SQL  ALTER  DATABASE  с  параметром  DROP LOGFILE
        MEMBER.  Рис.5-5 показывает диалог Drop Online Redo Log Member.







                                    Управление онлайновым журналом  5-11


Рис.5-5
Диалог Drop Online Redo Log Member

        ---------------------------------------------------------------¬
        ¦ File  Edit  Session  Instance  Storage  Log  Backup  Security¦
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦    г============ Drop Online Redo Log Member ============¬  ¦
        ¦¦    ¦                                                     ¦  ¦
        ¦¦    ¦ Group#  Members                                     ¦  ¦
        ¦¦    ¦ --------------------------------------------------¬ ¦  ¦
        ¦¦    ¦ ¦ 0001  DISK$A95:[KNLDVE.RPK2.DB]LOG1.ORA         ¦ ¦  ¦
        ¦¦    ¦ ¦ 0002  DISK$A95:[KNLDVE.RPK2.DB]LOG2.ORA         ¦ ¦  ¦
        ¦¦    ¦ ¦ 0003  DISK$A95:[KNLDVE.RPK2.DB]LOG3.ORA         ¦ ¦  ¦
        ¦¦    ¦ ¦                                                 ¦ ¦  ¦
        ¦¦    ¦ ¦                                                 ¦ ¦  ¦
        ¦¦    ¦ ¦                                                 ¦ ¦  ¦
        ¦¦    ¦ L-------------------------------------------------- ¦  ¦
        ¦¦    ¦-----------------------------------------------------¦  ¦
        ¦¦    ¦       Mandatory                     (OK)  (Cancel)  ¦  ¦
        ¦¦    L=====================================================-  ¦
        ¦L-------------------------------------------------------------+
        ¦--------------------------------------------------------------+
        ¦¦                                                             ¦
        ¦¦                                                             ¦
        ¦L-------------------------------------------------------------+
        L---------------------------------------------------------------

        Следующее  предложение  является  командным эквивалентом диалога
        Drop Online Redo Log Member, показанного на рис.5-5:

        ALTER DATABASE
          DROP LOGFILE MEMBER 'log3c';

        При удалении члена группы онлайнового журнала из базы данных  не
        происходит  физического  удаления  файла  операционной системы с
        диска.   Происходит  просто  обновление  управляющего файла базы
        данных, чтобы  удалить члена  группы из  структуры базы  данных.
        После  того,  как  вы  убедитесь,  что  эта  операция  выполнена
        успешно,   вы   можете   использовать   соответствующую  команду
        операционной системы, чтобы физически удалить файл.


Привилегии, требуемые для удаления
членов группы онлайнового журнала
----------------------------------

        Для  удаления  членов  группы  онлайнового журнала повторения вы
        должны иметь системную привилегию ALTER DATABASE.














5-12  Руководство администратора


----------------

Управление контрольными точками и переключением журнала

        Контрольная точка - это событие, во время которого процесс  DBWR
        записывает все  модифицированные буфера  базы данных  из области
        SGA в соответствующие файлы данных.  Переключение журнала -  это
        событие, во время которого процесс LGWR прекращает запись в одну
        группу онлайнового  журнала и  начинает запись  в другую группу.
        Эти два события часто связаны: по умолчанию инстанция организует
        контрольную точку при каждом переключении журнала.  Переключение
        журнала,  по   умолчанию,  имеет   место  автоматически,   когда
        заполняется текущая группа онлайнового журнала повторения.

        Иногда,  однако,  вы  можете  захотеть,  чтобы контрольные точки
        происходили чаще,  чем лишь  при переключении  журнала, или  вам
        может   потребоваться   внеочередная   контрольная   точка,  без
        переключения  журнала.   Вы  можете  также захотеть внепланового
        переключения  журнала  одновременно  с  внеочередной контрольной
        точкой, или просто форсировать немедленное переключение  журнала
        без   сопутствующей   контрольной   точки.    Следующие   секции
        объясняют, почему это может потребоваться и как это сделать.


Установка интервалов контрольных точек базы данных
--------------------------------------------------

        Если  ваша  база  данных  использует  большие  онлайновые  файлы
        журнала повторения, вы  можете захотеть автоматически  выполнять
        дополнительные   контрольные   точки   через    предопределенные
        интервалы, между теми  контрольными точками, которые  происходят
        при  переключении  журнала.   Чем  больше происходит контрольных
        точек, тем меньше времени требуется на восстановление  инстанции
        в случае сбоя.  Однако, производительность сервера ORACLE  может
        также пострадать из-за лишних операций ввода-вывода, необходимых
        для выполнения контрольных точек.

        Обычно,   если   ваша   база   данных   не   требует постоянного
        восстановления   инстанции   при   запуске,   достаточно,  чтобы
        контрольные  точки  выполнялись  лишь  при переключении журнала.
        Если вы используете  небольшие файлы журнала,  контрольные точки
        происходят достаточно часто  (при каждом переключении  журнала).
        (Для  дополнительной  информации  о  настройке  ORACLE в связи с
        контрольными точками обратитесь к главе 24.)

        Частота автоматических контрольных точек регулируется значениями
        параметров LOG_CHECKPOINT_INTERVAL и LOG_CHECKPOINT_TIMEOUT.

LOG_CHECKPOINT_INTERVAL

        Чтобы заставить контрольные  точки базы данных  происходить лишь
        при  переключениях  журнала  (умолчание),  установите   значение
        параметра LOG_CHECKPOINT_INTERVAL выше, чем размер  используемых
        файлов  журнала.   И  наоборот,  чтобы  заставить дополнительные
        контрольные точки  базы данных  происходить в  промежутках между
        переключениями    журнала,    установите    значение   параметра
        LOG_CHECKPOINT_INTERVAL  ниже,  чем  размер  используемых файлов
        журнала.





                                    Управление онлайновым журналом  5-13


        Значение  параметра  LOG_CHECKPOINT_INTERVAL  задается как число
        блоков операционной системы, а не блоков данных ORACLE.  Поэтому
        вы  должны  узнать  размер,  в  байтах, блока вашей операционной
        системы.  Узнав этот размер, вычислите число блоков операционной
        системы на файл журнала.  Чтобы узнать размер блока операционной
        системы,  справьтесь  в   документации  по  вашей   операционной
        системе.

Пример

        Предположим следующее:

            *  Файлы онлайнового журнала инстанции имеют размер 512K.

            *  Размер блока операционной системы равен 512 байт.

            *  Вы  хотите,  чтобы  контрольные  точки происходили каждый
               раз, когда файл журнала заполнен наполовину.

        Используя эту  информацию, вы  можете вычислить  число блоков на
        файл журнала:

        512K на файл журнала
        --------------------= приблизительно 1000 блоков на файл журнала
        512 байт на блок ОС

        Теперь,   когда   вы   знаете   приблизительное   число   блоков
        операционной  системы   на  файл   журнала  (1000),   вы  можете
        установить  значение  параметра  LOG_CHECKPOINT_INTERVAL в файле
        параметров базы данных:

        LOG_CHECKPOINT_INTERVAL = 500


LOG_CHECKPOINT_TIMEOUT

        Чтобы заставить контрольные  точки базы данных  происходить лишь
        при  переключениях  журнала  (умолчание),  установите   значение
        параметра  LOG_CHECKPOINT_TIMEOUT  в  ноль.   И  наоборот, чтобы
        заставить   дополнительные   контрольные   точки   базы   данных
        происходить   в   промежутках   между   переключениями  журнала,
        установите  такое  значение  параметра LOG_CHECKPOINT_TIMEOUT (в
        секундах), которое меньше,  чем среднее время  заполнения одного
        файла журнала.  Чтобы определить среднее время заполнения  файла
        журнала,   поищите   в   файле   трассировки   LGWR  сообщение о
        переключениях  журнала;  в  этих  сообщениях  указывается  время
        переключения журнала.

        Замечание:  Обратитесь  к  документу  ORACLE7  Parallel   Server
        Administrator's Guide для дополнительной информации о  параметре
        LOG_CHECKPOINT_TIMEOUT  в  среде  параллельного  сервера ORACLE.
        Кроме  того,  установка  этого  параметра  особенно  важна   при
        использовании Trusted ORACLE в режиме OS MAC; для дополнительной
        информации  обратитесь  к   документу  Trusted  ORACLE7   Server
        Administrator's Guide.

Форсирование переключения журнала
---------------------------------

        Вы  можете  захотеть  форсировать  переключение  журнала,  чтобы
        сделать  текущую  активную  группу  неактивной  для   каких-либо
        операций  сопровождения.    Например,  вам   необходимо  удалить

5-14  Руководство администратора


        активную группу,  но этого  нельзя сделать,  пока она  не станет
        неактивной.  Вы можете также захотеть немедленного  переключения
        журнала,  чтобы  архивировать  активную  группу  в  определенный
        момент  времени,  не  дожидаясь  заполнения  этой  группы;   эта
        возможность особенно полезна в конфигурациях с большими  файлами
        журнала, заполнение которых требует продолжительного времени.

        Чтобы форсировать переключение  журнала, используйте либо  опцию
        Force Log  Switch в  меню Instance  SQL*DBA, либо  команду ALTER
        SYSTEM с опцией SWITCH LOGFILE.  Следующее предложение  является
        командным эквивалентом  опции Force  Log Switch  в меню Instance
        SQL*DBA:

        ALTER SYSTEM SWITCH LOGFILE;

Привилегии, требуемые для форсирования переключения журнала

        Для форсирования переключения журнала вы должны иметь  системную
        привилегию ALTER DATABASE.


Форсирование быстрой контрольной точки
без переключения журнала
--------------------------------------

        В некоторых случаях вам может потребоваться форсировать  быструю
        контрольную точку  базы  данных.   Быстрая  контрольная точка не
        вовлекает  переключения  журнала;  ORACLE  продолжает  писать  в
        текущий   файл   онлайнового   журнала   повторения.     Быстрая
        контрольная точка  позволяет процессу  DBWR записывать  от имени
        контрольной точки  большее число  модифицированных буферов  базы
        данных за одну операцию.  Поэтому выполнение быстрой контрольной
        точки требует меньшего числа операций ввода-вывода (и тем  самым
        меньшего времени).  Чтобы форсировать быструю контрольную точку,
        используйте либо опцию Force Checkpoint в меню Instance SQL*DBA,
        либо  команду  ALTER  SYSTEM  с  опцией  CHECKPOINT.   Следующее
        предложение   является   командным   эквивалентом   опции  Force
        Checkpoint в меню Instance SQL*DBA:

        ALTER SYSTEM CHECKPOINT;

        Отсутствие  опции  GLOBAL  форсирует  контрольную точку лишь для
        текущей инстанции,  тогда как  включение опции  GLOBAL позволяет
        форсировать контрольную  точку для  всех инстанций  базы данных.
        Форсирование контрольной  точки только  для локальной  инстанции
        полезно лишь в  среде параллельного сервера;  для дополнительной
        информации  обратитесь  к  документу  ORACLE7  Parallel   Server
        Administrator's Guide.  Без  параллельного сервера глобальные  и
        локальные контрольные точки идентичны.

Привилегии, требуемые для форсирования контрольной точки

        Для  форсирования  контрольной  точки  вы должны иметь системную
        привилегию ALTER DATABASE.









                                    Управление онлайновым журналом  5-15


----------------

Выдача информации о журнале повторения

        Используйте обзоры V$LOG,  V$LOGFILE и V$THREAD,  чтобы получать
        информацию  об  онлайновом  журнале  базы данных; обзор V$THREAD
        особенно интересен для администраторов на параллельном сервере.

        Например, следующий запрос  возвращает информацию об  онлайновом
        журнале  базы  данных,  работающей  не  в  среде   параллельного
        сервера:

        SELECT group#, bytes, members
          FROM sys.v$log;

        GROUP#     BYTES      MEMBERS
        ---------- ---------- ----------
                 1      81920          2
                 2      81920          2

        Чтобы  узнать  имена  всех  членов  группы  журнала, используйте
        запрос, подобный следующему:

        SELECT *
          FROM sys.v$logfile
         WHERE group# = 2;

        GROUP#     STATUS     MEMBER
        ---------- ---------- -------------
                 2            LOG2A
                 2 STALE      LOG2B
                 2            LOG2C

        Если  поле  STATUS  для  члена  пустое,  это  значит,  что  член
        используется.




























5-16  Руководство администратора