В ORACLE 8i используются сегменты отката (ROLLBACK SEGMENTS) и ручное управление информацией отката. В табличном пространстве, обычно это PSAPROLL, находятся сегменты отката (типичные имена PRS_0, PRS_1, ...). Данные сегменты используются для отката/восстановления транзакций, обеспечения целостности чтения из базы (блоков данных, которые в данный момент времени изменяются) и для команд чтения данных на предыдущий момент времени. Количество сегментов отката можно посмотреть через транзакцию DB02. Все сегменты отката прописаны в профиле init<SID>.ora. Если меняете их количество, то не забудьте внести изменения в профиль.
Если возникает дамп в системе, который ссылается на ошибку СУБД ORA-01555 (ORA-01555: snapshot too old: rollback segment number <rbs_nr> with name "<rbs>" too small), то это про них, родимых.
Привожу список полезных SAP note по этой теме:
- note # 3807 - Error messages regarding rollback and undo segments - описаны и другие ошибки, связанные с ROLLBACK SEGMENTS.
- note # 60233 - Oracle rollback segments, more information.
- note # 185822 - ora-1555 - cause and action - есть интересный SQL-запрос на определение времени, сколько данные транзакции хранятся в ROLLBACK SEGMENTS без перезаписи.
Если возникает именно ORA-01555, то стоит обратить внимание на параметр OPTIMAL у ROLLBACK SEGMENTS. Мне правильное выставление его позволило увеличить время хранения информации в ROLLBACK SEGMENTS с 3 до 6 часов. Частота дампов с ошибкой ORA-01555 резко уменьшилась. Порядок и SQL-запросы для пересоздания сегментов отката можно найти в вышеуказанных нотах.
Начиная с ORACLE 9i, сегменты отката (ROLLBACK SEGMENTS) переименованы в сегменты отмены (UNDO SEGMENTS) и появилось автоматическое управление данными сегментами. Задача администратора в этом случае сводится к активации/мониторингу этого режима и создании/поддержании UNDO табличного пространства достаточного размера.
Автор: Шиболов Вячеслав Анатольевич
Комментариев нет:
Отправить комментарий