powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / про ролбаки
25 сообщений из 39, страница 1 из 2
про ролбаки
    #32092119
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, прошу помощи ибо сам без сил....у меня корпоративная база данных под 8.1.7. База грубо говоря оптово-торгового склада. 56000 наименований 6 тарифио отпуска. Стоит софт писаный не мной недавно...при запуске процедуры формирования прайс листа стандартные ролбаки (со скрипта генерации базы софта инишл5М-1Мекстент-121-7М оптимал) переполняются...я пересоздал ролбаки по 45М с экстентами по 5М в итоге сформировал прайс, смотрю на ролбак - 300М!!!! и это в прайсе 3000 наименований...долблюсь к разработчикам...а мне в ответ типа "а в чем проблема что сегменты отката увиличиваются?"....как мне их опустить грамотно? я все аргументы исчерпал....HELP!!!
...
Рейтинг: 0 / 0
про ролбаки
    #32092448
noname_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALTER ROLLBACK SEGMENT segment_name SHRINK;
...
Рейтинг: 0 / 0
про ролбаки
    #32092459
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! Если я правильно понимаю работу Оракла, то когда работает долгая транзакция, которая только чтение, то для нее обеспечивается режим, при котором повторные чтения выдает один и тот же результат. И это при том, что другие транзакции могут эти же данные изменять. Для обеспечения этого СУБД хранит старые данные в сегментах отката - оттуда читающая транзакция их и берет. Причем, здесь может возникнуть ошибка Snapshot tool old - это если места нету в сегменте отката и больше СУБД не может обеспечивать режим стабильности курсора. Если же сегменты здоровые - то все нормально.

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

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

Собственно ответ слегка оффтопик, но я бы развил эту тему - может кто знающий расскажет как надо с этим бороться.
...
Рейтинг: 0 / 0
про ролбаки
    #32092477
hard_fog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй указать Uniform Size
...
Рейтинг: 0 / 0
про ролбаки
    #32092489
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да то, что они растут - это ведь нормально. Генератор прайса должен работать с консистентными данными. Если их параллельно кто-то изменяет - должны быть их копии. Эти копии храняться в сегментах отката. А если не дать сегментам расти - генератор прайса не выполнит своей работы.
...
Рейтинг: 0 / 0
про ролбаки
    #32092547
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, когда проходят такие транзакции, я считаю это ненормальным, Проблема в том что, при прохождении чекпоинта или комита этот 600 метровый разрозшийся ролбак начинает сливаться из кэша на винт и сворачиваться до оптимала, в этот момент у базы дико падает производительность , если кто-то в этот момент производил подобные транзакции (формирование товарного календаря, формирование прайс-листа) этого юзера просто отстреливает сервер из-за нехватки ресурсов (4Гб оперативки 2Р3-1700, 5SCSI винтов, Linux так как win2k не может обеспечить достойную производительность). Вообще по рекомендации оракла параметры ролбаков для достижения оптимальной производительности базы данных: initial 5Mb extent 1Mb maxextents 121 optimal size 7Mb, с такими параметрамим генерится база ПАРУСА ,а прайс-лист с такими ролбаками не формируется вообще, потому что максимальный размер его составит 127Mb, а транзакция 600!!!!Mb. Выдается ошибка о переполнении ролбака, оракл выводит его в состояние FULL и начинаются оракловые мероприятия по его освобождению, происходит принудительный неоднократный чекпоинт, базу лихорадит, что в этот момент с сессиями юзеров происходит: неактивные юзеры получают ORA-03113, остальные практически парализованы.
...
Рейтинг: 0 / 0
про ролбаки
    #32092559
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, ну ей-богу, если транзакция такая большая, значит ей нужно столько много роллбэка. А если нужно - надо дать. Без вариантов.
...
Рейтинг: 0 / 0
про ролбаки
    #32092562
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос, не в том сколько места ей надо, а в том корректно ли делать такие транзакции....????
...
Рейтинг: 0 / 0
про ролбаки
    #32092564
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Говоря "нормально" - я имел в виду их рост. А вот степень этого роста мне тоже не нравиться.

Я конечно знаком с ораклом довольно поверхностно, но:
- странно, что генерации прайс-листа мешают другие транзакции так, что это вынуждает СУБД хранить ТАКИЕ большие копии. Может этот генератор чего-то мудрит. Если бы я генерил прайс - я бы воспользовался бы справочником товаров + справочником текущих цен на эти товары - на мой взгляд эти данные не должны меняться часто (читать-то их могут регулярно). Следовательно и записей в ролбек сегменте для такой операции не должно быть ваще (либо их очень мало).

Хотя надо уточнить, может оракл не знает, будет ли транзакция менять данные или нет, поэтому даже читателей так изолирует и для этого ему надо на это явно указать. Может надо указывать, что транзакция READ ONLY (а она сейчас НЕ рид-онли). Но это надо уточнить в доке.
...
Рейтинг: 0 / 0
про ролбаки
    #32092566
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Vladimirgs

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

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

Во-вторых определите как часто происходят checkpoint'ы если считаете, что проблема в них (log_checkpoints_to_alert=true).

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

И самое главное попробуйте описать ваши проблемы не "гуманитарно", а "технически", т.е. какие события ожидания преобладают, какова статистика I/O и т.д. (например, при помощи statspack), а также в ОС (paging, swaping, free memory и т.д)
...
Рейтинг: 0 / 0
про ролбаки
    #32092570
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакция если можно так сказать пишуще-читающая, она читает из справочника цен и ищет по справочнику товаров соответствующий товар и записывает это в третью таблицу....
...
Рейтинг: 0 / 0
про ролбаки
    #32092579
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если она еще и пишушая, то наверняка Оракл скидывает в ролбек сегмент справочник товаров + справочник цен :) Народ-то вокруг цены, поди, смотрит - счета выписывает. А оракл, поди, их тоже писателями считает. Вот он их друг от друга и изолирует :))

А можно запустить генерацию прайса, когда народа на сервере нет? Если все будет гладко - ролбеки не растут и хватает их маленьких, то значить это неправильно разработанные транзакции.
...
Рейтинг: 0 / 0
про ролбаки
    #32092586
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, даже если формировать только прайс то ролбак разрастается, а юзеров выгонять не могу прайс надо делать каждые 2 часа...
...
Рейтинг: 0 / 0
про ролбаки
    #32092601
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тогда, как же ты проверил, не выгнав юзеров ?
...
Рейтинг: 0 / 0
про ролбаки
    #32092605
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на резеврном сервере
...
Рейтинг: 0 / 0
про ролбаки
    #32092631
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Во-первых, попробуйте отключить компонент ядра oom_killer"

to .dba: А где он собственно указывается?
...
Рейтинг: 0 / 0
про ролбаки
    #32092638
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,

Наличие большого ролбака указывает на то, что
программа "защищается" от текущих изменений
в течении продолжительного периода времени
(скорее всего с использованием ТХ Сериалайзабле).

Возможные варианты по логике и по
реализации

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

-- использовать снапшоты или временные таблицы
для меняющихся исходных данных.

-- разбить процесс на несколько логических кусков

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

-- Перейти на ТХ реад коммитед уровень изоляции,
если позволит логика.

-- использовать методику "длинных трансакций" на уровне
аппликации и разгрузить ТХ контроль на базе.
(Трансакционные таблицы, поля ТХ статуса, итд )

-- комбинации из вышеперечисленного

ЙЙ
...
Рейтинг: 0 / 0
про ролбаки
    #32092655
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логично, черт возьми, но скажите мне я прав в том что огромные рролбаки череваты потерями производительности, надежности и вообще являются признаком плохого програмирования???
...
Рейтинг: 0 / 0
про ролбаки
    #32092659
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ты можешь сказать какого размера справочник + таблица цен?
...
Рейтинг: 0 / 0
про ролбаки
    #32092698
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в записях могу , товары порядка 56000 записей, а цены - порядка 11000, ну не на весь товар еще заколотили... новый год все таки
...
Рейтинг: 0 / 0
про ролбаки
    #32092700
Vladimirgs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база то типа реляционная :)
...
Рейтинг: 0 / 0
про ролбаки
    #32092721
RifNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам же dba дельный совет дал...
Вы, хотя бы, трассу запустите-то...
...
Рейтинг: 0 / 0
про ролбаки
    #32092726
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это практично, но гораздо приятнее решить задачу умозрительно.
...
Рейтинг: 0 / 0
про ролбаки
    #32092729
ksukhonosenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя я б трассернул бы сразу :)
...
Рейтинг: 0 / 0
про ролбаки
    #32092733
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему дискусия ушла от конечной задачи. Чего нужно добится в итоге?
Есть-ли возможность "исправить приложение"? (в начальном сообщении указывалось, что ~ разработчики игнорируют проблемы).
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / про ролбаки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]