Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фиксация записи при commit / 6 сообщений из 6, страница 1 из 1
10.11.2017, 17:46
    #39551232
cobalt_frog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
Добырй день,
Допустим? мы изменили какую либо строку, при этом:
1. Изменяемый блок подкачивается в буферный кэш
2. Блок становится грязный
3. Генерируется инфа в undo сегменте
4. Добавяется инфа в редо кэше(которая сбрасывается на диск в 3 кейсах)

При commit-e
1. Генерируется scn который записывается в буфер повторения
2. Буфер повторения сбрасывает на диск
3. Измененные блоки из буферного кэше сбрасываются на диск

Вопросы:

1. Правильно ли я понимаю, что из буферного кэша блоки сбрасываются на диск
и до commit?
2. Могут ли грязные блоки из буферного кэша извлекаться до коммита?
Например если в буферном кэше не хватает места?
3. Как грязные блоки в кэше становятся чистыми?
...
Рейтинг: 0 / 0
11.11.2017, 10:30
    #39551401
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
cobalt_frog,

1. да
2. извлекаться? может, удаляться? да.
3. в кэше - commit cleanout в itl блока. на диске этим займётся первый select этих данных
...
Рейтинг: 0 / 0
11.11.2017, 12:05
    #39551418
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
проходил мимо...cobalt_frog,
3. в кэше - commit cleanout в itl блока. на диске этим займётся первый select этих данных
Грязный блок - это измененный блок. Никакой cleanout не сделает его чистым.
Только сброс на диск.
...
Рейтинг: 0 / 0
11.11.2017, 14:56
    #39551472
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
...
Рейтинг: 0 / 0
11.11.2017, 16:05
    #39551491
Veo
Veo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
cobalt_frogДобырй день,
Допустим? мы изменили какую либо строку, при этом:
1. Изменяемый блок подкачивается в буферный кэш
2. Блок становится грязный
3. Генерируется инфа в undo сегменте
4. Добавяется инфа в редо кэше(которая сбрасывается на диск в 3 кейсах)

При commit-e
1. Генерируется scn который записывается в буфер повторения
2. Буфер повторения сбрасывает на диск
3. Измененные блоки из буферного кэше сбрасываются на диск

Вопросы:

1. Правильно ли я понимаю, что из буферного кэша блоки сбрасываются на диск
и до commit?
2. Могут ли грязные блоки из буферного кэша извлекаться до коммита?
Например если в буферном кэше не хватает места?
3. Как грязные блоки в кэше становятся чистыми?

Процесс сброса грязных буферов на диск называется чекпоинтом и не связан с коммитом.

Для лучшего понимания можно представить транзакцию, изменяющую данных в несколько раз больше, чем размер буферного кэша. Пользовательский процесс грузит блоки с диска в буферный кэш, там их меняет, они становятся грязными, подгружает другие, меняет, они тоже становятся грязными. В фоне DBWR сбрасывает грязные буферы на диск, после чего буферы становятся чистыми, т.е. в эти буферы можно уже загружать другие блоки, если понадобится. Вот и всё. А коммит случится где-то в будущем. А может не случится.
...
Рейтинг: 0 / 0
13.11.2017, 09:59
    #39551981
cobalt_frog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фиксация записи при commit
всем спасибо за помощь
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Фиксация записи при commit / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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