Производительность базы данных Oracle - PullRequest
1 голос
/ 23 апреля 2009

В настоящее время я работаю над базой данных Oracle 9.2.0.8. У меня есть несколько вопросов, связанных с производительностью базы данных, которые тоже связано с Redo logs защелки и раздоры. Ответы из реальной практики будут высоко оценены. пожалуйста, помогите.

  1. Мои данные в настоящее время содержат 25 файлов журнала повторов с 2 участниками в каждом файле. Каждый член имеет размер 100м. Так стоит ли хранить 25 файлов журнала повторов каждый с двумя участниками (по 100 МБ каждый).
  2. Моя база данных 24 * 7 с минимальным пользователем 275 и Макс. 650. В моей базе данных в основном SELECT, но очень меньше ВСТАВИТЬ / ОБНОВИТЬ / УДАЛИТЬ. И с 1 месяца я начал замечать, что моя база данных генерирует архивы в среднем 17GB мин до 28 ГБ в макс. Но LOGSWITCH происходит в среднем каждые 5-10 минут. в несколько раз чаще. И даже несколько раз 3 раза в минуту. Но мой SPFILE говорит log_checkpoint_timeout = 1800 (30 минут).
  3. И о повторных защелках журнала и конкуренции, когда я выдаю: - ВЫБЕРИ имя, значение FROM v $ sysstat WHERE name = 'повторить запросы пространства журнала'; Выход: -

        NAME                                                               VALUE
        -------------------------------------------------------------------- ----------
         redo log space requests                                               20422
    (This value is getting increased day by day)
    
  4. Где, согласно рекомендациям Oracle, запрос пространства повторного журнала должен быть близок к нулю.
  5. Так что я хочу знать, почему моя база данных часто переключается в журнал. Это из-за Данные или Becoze о чем-то еще.
  6. Я сомневаюсь, что если я увеличу буфер REDO LOG, проблема может быть решена. И я увеличил буфер журнала повторов от 8 МБ до 11 МБ. Но я не нашел большой разницы.
  7. Если я увеличу размер REDO LOG FILE со 100 МБ до 200 МБ, это поможет. Это поможет мне уменьшить время переключения журнала и приблизить значение REDO LOG SPACE REQUEST к нулю.

Ответы [ 3 ]

1 голос
/ 29 апреля 2009

Что-то в предоставленной вами информации не складывается - если вы действительно генерировали около 20 ГБ / мин архивных журналов, то вы бы переключали свои 100 МБ файлы журналов как минимум 200 раз в минуту, а не 3 раза / минуту худший случай, который вы упомянули. Это также не согласуется с вашим описанием "... в основном SELECT".

В реальном мире я бы не беспокоился о переключателях журнала в среднем каждые 5-10 минут. При таком большом количестве повторов ни один из параметров init не вступает в игру для переключения - это происходит из-за заполнения онлайн-журналов повторов. В этом случае единственным способом управления скоростью переключения является изменение размера журналов, например, Удвоение размера журнала уменьшит частоту переключения вдвое.

0 голосов
/ 23 апреля 2009

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

SQL> l
  1  select name, sid, value
  2  from v$sesstat s, v$statname n
  3  where name in ('redo size','redo log space requests')
  4   and n.statistic# = s.statistic#
  5  and value > 0
  6* order by 1,2
0 голосов
/ 23 апреля 2009

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

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