|
|
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Господа, прошу помощи ибо сам без сил....у меня корпоративная база данных под 8.1.7. База грубо говоря оптово-торгового склада. 56000 наименований 6 тарифио отпуска. Стоит софт писаный не мной недавно...при запуске процедуры формирования прайс листа стандартные ролбаки (со скрипта генерации базы софта инишл5М-1Мекстент-121-7М оптимал) переполняются...я пересоздал ролбаки по 45М с экстентами по 5М в итоге сформировал прайс, смотрю на ролбак - 300М!!!! и это в прайсе 3000 наименований...долблюсь к разработчикам...а мне в ответ типа "а в чем проблема что сегменты отката увиличиваются?"....как мне их опустить грамотно? я все аргументы исчерпал....HELP!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2003, 19:18 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
ALTER ROLLBACK SEGMENT segment_name SHRINK; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 12:45 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Привет! Если я правильно понимаю работу Оракла, то когда работает долгая транзакция, которая только чтение, то для нее обеспечивается режим, при котором повторные чтения выдает один и тот же результат. И это при том, что другие транзакции могут эти же данные изменять. Для обеспечения этого СУБД хранит старые данные в сегментах отката - оттуда читающая транзакция их и берет. Причем, здесь может возникнуть ошибка Snapshot tool old - это если места нету в сегменте отката и больше СУБД не может обеспечивать режим стабильности курсора. Если же сегменты здоровые - то все нормально. Наверное, параллельно с генерацией прайса (долгая читающая транзакция) работают пишущие транзакция, что и вынуждает сегменты отката расти. Возможные решения: запускать генерацию прайса, когда нет читающих транзакций. Либо как-то заставить оракл не использовать для этой транзакции режим снепшота. Собственно ответ слегка оффтопик, но я бы развил эту тему - может кто знающий расскажет как надо с этим бороться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 12:56 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
попробуй указать Uniform Size ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 13:23 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Да то, что они растут - это ведь нормально. Генератор прайса должен работать с консистентными данными. Если их параллельно кто-то изменяет - должны быть их копии. Эти копии храняться в сегментах отката. А если не дать сегментам расти - генератор прайса не выполнит своей работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 13:34 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Народ, когда проходят такие транзакции, я считаю это ненормальным, Проблема в том что, при прохождении чекпоинта или комита этот 600 метровый разрозшийся ролбак начинает сливаться из кэша на винт и сворачиваться до оптимала, в этот момент у базы дико падает производительность , если кто-то в этот момент производил подобные транзакции (формирование товарного календаря, формирование прайс-листа) этого юзера просто отстреливает сервер из-за нехватки ресурсов (4Гб оперативки 2Р3-1700, 5SCSI винтов, Linux так как win2k не может обеспечить достойную производительность). Вообще по рекомендации оракла параметры ролбаков для достижения оптимальной производительности базы данных: initial 5Mb extent 1Mb maxextents 121 optimal size 7Mb, с такими параметрамим генерится база ПАРУСА ,а прайс-лист с такими ролбаками не формируется вообще, потому что максимальный размер его составит 127Mb, а транзакция 600!!!!Mb. Выдается ошибка о переполнении ролбака, оракл выводит его в состояние FULL и начинаются оракловые мероприятия по его освобождению, происходит принудительный неоднократный чекпоинт, базу лихорадит, что в этот момент с сессиями юзеров происходит: неактивные юзеры получают ORA-03113, остальные практически парализованы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 14:47 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Не, ну ей-богу, если транзакция такая большая, значит ей нужно столько много роллбэка. А если нужно - надо дать. Без вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:04 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Вопрос, не в том сколько места ей надо, а в том корректно ли делать такие транзакции....???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:07 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Говоря "нормально" - я имел в виду их рост. А вот степень этого роста мне тоже не нравиться. Я конечно знаком с ораклом довольно поверхностно, но: - странно, что генерации прайс-листа мешают другие транзакции так, что это вынуждает СУБД хранить ТАКИЕ большие копии. Может этот генератор чего-то мудрит. Если бы я генерил прайс - я бы воспользовался бы справочником товаров + справочником текущих цен на эти товары - на мой взгляд эти данные не должны меняться часто (читать-то их могут регулярно). Следовательно и записей в ролбек сегменте для такой операции не должно быть ваще (либо их очень мало). Хотя надо уточнить, может оракл не знает, будет ли транзакция менять данные или нет, поэтому даже читателей так изолирует и для этого ему надо на это явно указать. Может надо указывать, что транзакция READ ONLY (а она сейчас НЕ рид-онли). Но это надо уточнить в доке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:09 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
2Vladimirgs Мне кажется, что тут несколько проблем, которые надо решать по отдельности, а иначе - запутаетесь. Сама по себе проблема длинной транзакции не может привести к остановке сервера. Сам по себе роллбек сегмент никуда не сливается, а checkpoint делается при переключении логов или в заданный момент до переключения или при недостатке свободных блоков в буферном кеше. Во-первых, попробуйте отключить компонент ядра oom_killer, который отстреливает якобы "зажравшиеся" процессы. Если после этого пользователи тоже будут получать ORA-03113, значит тут какой-то баг. Во-вторых определите как часто происходят checkpoint'ы если считаете, что проблема в них (log_checkpoints_to_alert=true). В-третьих протрассируйте проблемную сессию и посмотрите, что ж на самом деле делают разработчики при формировании прайса. И самое главное попробуйте описать ваши проблемы не "гуманитарно", а "технически", т.е. какие события ожидания преобладают, какова статистика I/O и т.д. (например, при помощи statspack), а также в ОС (paging, swaping, free memory и т.д) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:12 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Транзакция если можно так сказать пишуще-читающая, она читает из справочника цен и ищет по справочнику товаров соответствующий товар и записывает это в третью таблицу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:14 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Если она еще и пишушая, то наверняка Оракл скидывает в ролбек сегмент справочник товаров + справочник цен :) Народ-то вокруг цены, поди, смотрит - счета выписывает. А оракл, поди, их тоже писателями считает. Вот он их друг от друга и изолирует :)) А можно запустить генерацию прайса, когда народа на сервере нет? Если все будет гладко - ролбеки не растут и хватает их маленьких, то значить это неправильно разработанные транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:23 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
не, даже если формировать только прайс то ролбак разрастается, а юзеров выгонять не могу прайс надо делать каждые 2 часа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:31 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
тогда, как же ты проверил, не выгнав юзеров ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 15:38 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
"Во-первых, попробуйте отключить компонент ядра oom_killer" to .dba: А где он собственно указывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 16:07 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Привет, Наличие большого ролбака указывает на то, что программа "защищается" от текущих изменений в течении продолжительного периода времени (скорее всего с использованием ТХ Сериалайзабле). Возможные варианты по логике и по реализации -- отказаться от погони за "свежестью". Например продажи учитывать только до полночи предыдущего дня. Если гонять такую программу ночью, то полу-статические данные (например цена) тоже менятся не будут. -- использовать снапшоты или временные таблицы для меняющихся исходных данных. -- разбить процесс на несколько логических кусков -- разбить процесс на несколько физичеких кусков, делая цикл чтение-обработка-запись-комит на , скажем, 100 записей. -- Перейти на ТХ реад коммитед уровень изоляции, если позволит логика. -- использовать методику "длинных трансакций" на уровне аппликации и разгрузить ТХ контроль на базе. (Трансакционные таблицы, поля ТХ статуса, итд ) -- комбинации из вышеперечисленного ЙЙ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 16:18 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Логично, черт возьми, но скажите мне я прав в том что огромные рролбаки череваты потерями производительности, надежности и вообще являются признаком плохого програмирования??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 16:34 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
А ты можешь сказать какого размера справочник + таблица цен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 16:39 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
в записях могу , товары порядка 56000 записей, а цены - порядка 11000, ну не на весь товар еще заколотили... новый год все таки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 17:19 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
база то типа реляционная :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 17:22 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Вам же dba дельный совет дал... Вы, хотя бы, трассу запустите-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 17:45 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Это практично, но гораздо приятнее решить задачу умозрительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 17:53 |
|
||
|
про ролбаки
|
|||
|---|---|---|---|
|
#18+
Хотя я б трассернул бы сразу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2003, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2818&tid=1992128]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 396ms |

| 0 / 0 |
