powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как работает undo?
25 сообщений из 73, страница 2 из 3
как работает undo?
    #37584338
LudeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurdu,

спасибо всем.
...
Рейтинг: 0 / 0
как работает undo?
    #37584401
LudeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurdu,

подскажите, пожалуйста, последний вопрос: когда транзакция начинается редо генерит записи не только о повторном выполнении,но и об андо записях,таким образом при восстановлении будет прочитан редо лог,а там внутри будет содержаться инфа об андо и таким образом все будет восстановлено в андо,а потом откатано,правильно?

просто раньше я думал,что в андо инфа попадает сразу напрямую в undo tablespace без buffer cache,а терь прочитал, что андо блоки также хранятся в буфер кеше,а потом сбрасывается на диск как и все данные.

Но в любом случае самым первичным остается редо.Он чаще всего сбрасывается и содержит все,что необходимо для восстановления в случае падения и для обыкновенной работы.Т.е. даже если андо из буфера не скинется вместе с данными,сервер упадет,то при восстановлении накатятся все логи и тем самым восстановится андо в кеше,с которого потом и откатимся.

или я неправильно понял про хранение undo записей?
...
Рейтинг: 0 / 0
как работает undo?
    #37584421
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LudeV...
или я неправильно понял про хранение undo записей?Да правильно вроде.
...
Рейтинг: 0 / 0
как работает undo?
    #37584443
LudeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wurdu,

вот теперь все разложилось по полочкам.


спасибо всем большое
...
Рейтинг: 0 / 0
как работает undo?
    #37585028
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LudeVНо в любом случае самым первичным остается редо.Он чаще всего сбрасывается и содержит все,что необходимо для восстановления в случае падения и для обыкновенной работы.Т.е. даже если андо из буфера не скинется вместе с данными,сервер упадет,то при восстановлении накатятся все логи и тем самым восстановится андо в кеше,с которого потом и откатимся.


Скажем так, redo пишется на диск не то чтобы чаще. Транзакция не считается зафиксированной до тех пор, пока её redo не записан в оперативный журнал. Т.е. commit ждет завершения этой записи. А грязные блоки из буферного кэша (в сегменты таблиц или в undo) сбрасываются на диск асинхронно. Для завершения транзакции сохранение этих данных на диск некритично.

Грязные блоки (сегментов данных и отката) потерянные в результате аварии экземпляра будут восстановлены из redo, но говорить про их восстановление именно в кэше наверное не стоит.
...
Рейтинг: 0 / 0
как работает undo?
    #37585051
LudeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mcureenab,

а куда их восстановит БД при восстановлении из редо лога?она прочтет,что такие-то и такие-то блоки модифицировались,генерились такие-то записи андо,вот она и восстановит их в кеше,а потом сбросит этот кэш на диск как в обычной работе.

или не так?
...
Рейтинг: 0 / 0
как работает undo?
    #37585127
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LudeV,

недавно узнал, что восстанавливается весь блок
напр в блоке есть записи с ид 1,2,3
для select * from t where ід=1
если запись 1 менялась, то востанавливается весь блок (все три записи),
и если запись 2 которая нам НЕ НУЖНА! восстановить нельзя, то получим ору

зы
запись можно менять несколько раз и для отката все версии будут сохранены в роллбек сегменте

.....
stax
...
Рейтинг: 0 / 0
как работает undo?
    #37585132
LudeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stax..,

спасибо,интересно
...
Рейтинг: 0 / 0
как работает undo?
    #37585153
wurdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabТ.е. commit ждет завершения этой записиНу, конечно, не все так просто в современных версиях. Есть PL/SQL оптимизация и в том же PL/SQL цикле уже не ждет и закоммиченные транзакции могут быть потеряны. Опять же, есть параметры commit_logging и commit_wait, да и сам commit бывает batch, immediate, wait, nowait.
...
Рейтинг: 0 / 0
как работает undo?
    #37585216
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wurdumcureenabТ.е. commit ждет завершения этой записиНу, конечно, не все так просто в современных версиях. Есть PL/SQL оптимизация и в том же PL/SQL цикле уже не ждет и закоммиченные транзакции могут быть потеряны. Опять же, есть параметры commit_logging и commit_wait, да и сам commit бывает batch, immediate, wait, nowait.
что-то с трудом верится что закоммиченные (в обычном смысле) "транзакции могут быть потеряны"

.....
stax
...
Рейтинг: 0 / 0
как работает undo?
    #37585490
stax..недавно узнал, что восстанавливается весь блок
stax..что-то с трудом верится что закоммиченные (в обычном смысле) "транзакции могут быть потеряны"
О сколько нам открытий чудных...

http://www.sql.ru/forum/actualsearch.aspx?search=lazy+commit&sin=0&bid=3&a=Barkovsky&ma=0&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
как работает undo?
    #37586053
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..что-то с трудом верится что закоммиченные (в обычном смысле) "транзакции могут быть потеряны"

.....
stax

ничего сверхестественного - утрата базы данных, неполное восстановление.

недокоммиты, это вообще говоря не совсем commit, а иногда совсем не commit. но, в ряде случаев мы можем потерять транзакции, чтобы повторить из первоисточника, а не из журнала БД. соглашаясь с такими маловероятными ситуациями можно неплохо поднять производительность операций массового изменения данных ничего не теряя
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как работает undo?
    #39272828
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
брадобрейна диск может сбрасываться только current версии

1. блоки данных находятся в кэше - buffer cache.
2. блоки undo также находятся в buffer cache.


если буффер переполнен, куда же деваться undo блоку, тогда как не на диск?
...
Рейтинг: 0 / 0
как работает undo?
    #39272846
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильно ли я понимаю, что Undo block также находится в SGA в buffer cache?
тогда у нас в buffer cache два типа блоков есть: блоки данных и блоки undo?
ранее я себе представлял, что при изменении данных запись происходит непосредственно
в undo tablespace - непосредственно в файл, минуя кэш.
...
Рейтинг: 0 / 0
как работает undo?
    #39272856
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LudeVhoarfrost,

не понял?

ведь при commit или rollback данные из андо удаляются

с х*****я бы? Как бы тогда открытый курсор мог читать "удалённые" данные?

тест-кейс, 1,2 - сессии

Код: plsql
1.
2.
3.
4.
1.   открываем курсор, select * from t; 
2. delete from t;
2. commit;
1. fetch...  



и всё фетчится хорошо
...
Рейтинг: 0 / 0
как работает undo?
    #39272859
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри на некропостинг ), не увидел дату сообщения
...
Рейтинг: 0 / 0
как работает undo?
    #39272862
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мог бы кто-нибудь мне любезно ответить?
а то я читаю Льюиса и немного запутался с undo.

Если undo блоки также находятся в общем кэше SGA,
как можно узнать, сколько у нас в buffer cache обычных блоков,
и сколько блоков Undo.

хочется видеть примерно следующее:

Код: plsql
1.
2.
3.
4.
    name               count
data block       11111111111111111
undo block       1234
 
...
Рейтинг: 0 / 0
как работает undo?
    #39272877
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В версиях 11.2.0.3, 11.2.0.4 и 12c при чтениях CR блоков REDO генерируется?
имеется ввиду, когда другие сессии читают в consistent режиме.

сессия 1 изменяет данные в таблице и ещё не зафиксировала их.
сессия 2 читает данные из Undo, которые были до того момента, как сессия 1 начала их менять.
...
Рейтинг: 0 / 0
как работает undo?
    #39272896
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкинВ версиях 11.2.0.3, 11.2.0.4 и 12c при чтениях CR блоков REDO генерируется?

реду генерируется при изменениях данных
...
Рейтинг: 0 / 0
как работает undo?
    #39272910
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JonhsonжвачкинВ версиях 11.2.0.3, 11.2.0.4 и 12c при чтениях CR блоков REDO генерируется?

реду генерируется при изменениях данных
select - это не изменение данных. а REDO в исключительных случаях при select генерируются.
вот вам пример:
http://www.sql.ru/forum/129951/otlozhennaya-ochistka-blokov-i-select-vzyato-u-t-kayta

правда те обсуждения были аж в 2004 году. стало интересно, этот механизм до сих пор работает?
...
Рейтинг: 0 / 0
как работает undo?
    #39272912
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПростой Select (без update clause) будет генерировать REDO еще в одном случае.
Это происходит когда делается consistent gets блоков, то есть когда select читает данные изминенные
и незакоммиченные в другой сессии.

а что в этом случае пишется в REDO? какой вектор изменения? чего?
...
Рейтинг: 0 / 0
как работает undo?
    #39272915
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жвачкинкакой вектор изменения? чего?
Какое слово из "данные изминенные и незакоммиченные в другой сессии" тебе непонятно?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как работает undo?
    #39272917
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть мнение, что изменённые пишется через "е"
...
Рейтинг: 0 / 0
как работает undo?
    #39272924
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonhsonесть мнение, что изменённые пишется через "е"

опечатка.
...
Рейтинг: 0 / 0
как работает undo?
    #39272928
жвачкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovжвачкинкакой вектор изменения? чего?
Какое слово из "данные изминенные и незакоммиченные в другой сессии" тебе непонятно?..


не понятно, что будет записано в журнал повтора, в случае согласованного чтения CR?

обычная ситуация: update data

в redo log (буффер журнала) записывается:

1. пишем вектор - запись отмены в undo block
2. пишем вектор - данные, до изменения в блоке данных и после изменения
3. объединяем две записи выше в одну общую запись (вектор)
...
Рейтинг: 0 / 0
25 сообщений из 73, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как работает undo?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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