powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блокировка rollback segments
1 сообщений из 1, страница 1 из 1
Блокировка rollback segments
    #32170031
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книге описывается обычная ситуация:

Идет транзакция
Выделенный для нее ролбэк сегмент заблокирован, чтобы иметь возможность ее откатить
Происходит commit и блокировка с роллбэк сегмента и изменных строк снимается

Теперь вопрос по конкретной ситуации - будет ли роллбэк сегмент оставаться заблокированным или будет выдано snapshot too old?

Последовательность действий:

Session 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> set transaction isolation level serializable;

Transaction set.

SQL> select * from d1;

        ID NAME
 ---------- ------------
 
          1  aaaa
          2  bbbb


Session 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL>update d1 set name='xxxx' where id= 1 ;

 1  row updated.

SQL> commit;

 --блокировка с использованного rollback segment и 
 
 --измененных строк снимается  
 


Session 1
Код: plaintext
1.
2.
3.
4.
SQL> update d1 set name='zzzz' where id= 1 ;
update d1 set name='zzzz' where id= 1 
*
ERROR at line  1 :
ORA- 08177 : can't serialize access for this transaction


Вопрос 1: Откуда он знает что изменение строки с id=1 нужно запретить? Блокировки ведь на ней больше нет. Мое предположение - сравнение SCN.

Session 1
Код: plaintext
1.
2.
3.
4.
5.
6.
SQL> select * from d1;

        ID NAME
 ---------- ------------
 
          1  aaaa
          2  bbbb


Вопрос 2: Пока не закончится эта транзакция, будут показываться данные по сотоянию на момент выдачи команды set transaction isolation level serializable. Старое значение name='aaaa' очевидно берется из rollback segment. Будет ли этот rollback segment оставаться заблокированным или в результате такого select'а может возникнуть snapshot too old если rollback segment будет перезаписан?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Блокировка rollback segments
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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