|
|
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
wurdu, спасибо всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 09:18:44 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
wurdu, подскажите, пожалуйста, последний вопрос: когда транзакция начинается редо генерит записи не только о повторном выполнении,но и об андо записях,таким образом при восстановлении будет прочитан редо лог,а там внутри будет содержаться инфа об андо и таким образом все будет восстановлено в андо,а потом откатано,правильно? просто раньше я думал,что в андо инфа попадает сразу напрямую в undo tablespace без buffer cache,а терь прочитал, что андо блоки также хранятся в буфер кеше,а потом сбрасывается на диск как и все данные. Но в любом случае самым первичным остается редо.Он чаще всего сбрасывается и содержит все,что необходимо для восстановления в случае падения и для обыкновенной работы.Т.е. даже если андо из буфера не скинется вместе с данными,сервер упадет,то при восстановлении накатятся все логи и тем самым восстановится андо в кеше,с которого потом и откатимся. или я неправильно понял про хранение undo записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 10:09:43 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
LudeV... или я неправильно понял про хранение undo записей?Да правильно вроде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 10:18:37 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
wurdu, вот теперь все разложилось по полочкам. спасибо всем большое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 10:29:26 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
LudeVНо в любом случае самым первичным остается редо.Он чаще всего сбрасывается и содержит все,что необходимо для восстановления в случае падения и для обыкновенной работы.Т.е. даже если андо из буфера не скинется вместе с данными,сервер упадет,то при восстановлении накатятся все логи и тем самым восстановится андо в кеше,с которого потом и откатимся. Скажем так, redo пишется на диск не то чтобы чаще. Транзакция не считается зафиксированной до тех пор, пока её redo не записан в оперативный журнал. Т.е. commit ждет завершения этой записи. А грязные блоки из буферного кэша (в сегменты таблиц или в undo) сбрасываются на диск асинхронно. Для завершения транзакции сохранение этих данных на диск некритично. Грязные блоки (сегментов данных и отката) потерянные в результате аварии экземпляра будут восстановлены из redo, но говорить про их восстановление именно в кэше наверное не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 14:50:38 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
mcureenab, а куда их восстановит БД при восстановлении из редо лога?она прочтет,что такие-то и такие-то блоки модифицировались,генерились такие-то записи андо,вот она и восстановит их в кеше,а потом сбросит этот кэш на диск как в обычной работе. или не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 14:57:27 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
LudeV, недавно узнал, что восстанавливается весь блок напр в блоке есть записи с ид 1,2,3 для select * from t where ід=1 если запись 1 менялась, то востанавливается весь блок (все три записи), и если запись 2 которая нам НЕ НУЖНА! восстановить нельзя, то получим ору зы запись можно менять несколько раз и для отката все версии будут сохранены в роллбек сегменте ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 15:31:24 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
stax.., спасибо,интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 15:34:06 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
mcureenabТ.е. commit ждет завершения этой записиНу, конечно, не все так просто в современных версиях. Есть PL/SQL оптимизация и в том же PL/SQL цикле уже не ждет и закоммиченные транзакции могут быть потеряны. Опять же, есть параметры commit_logging и commit_wait, да и сам commit бывает batch, immediate, wait, nowait. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 15:40:59 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
wurdumcureenabТ.е. commit ждет завершения этой записиНу, конечно, не все так просто в современных версиях. Есть PL/SQL оптимизация и в том же PL/SQL цикле уже не ждет и закоммиченные транзакции могут быть потеряны. Опять же, есть параметры commit_logging и commit_wait, да и сам commit бывает batch, immediate, wait, nowait. что-то с трудом верится что закоммиченные (в обычном смысле) "транзакции могут быть потеряны" ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 16:00:55 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:47:07 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
stax..что-то с трудом верится что закоммиченные (в обычном смысле) "транзакции могут быть потеряны" ..... stax ничего сверхестественного - утрата базы данных, неполное восстановление. недокоммиты, это вообще говоря не совсем commit, а иногда совсем не commit. но, в ряде случаев мы можем потерять транзакции, чтобы повторить из первоисточника, а не из журнала БД. соглашаясь с такими маловероятными ситуациями можно неплохо поднять производительность операций массового изменения данных ничего не теряя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 02:17:25 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
брадобрейна диск может сбрасываться только current версии 1. блоки данных находятся в кэше - buffer cache. 2. блоки undo также находятся в buffer cache. если буффер переполнен, куда же деваться undo блоку, тогда как не на диск? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 09:59:26 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
правильно ли я понимаю, что Undo block также находится в SGA в buffer cache? тогда у нас в buffer cache два типа блоков есть: блоки данных и блоки undo? ранее я себе представлял, что при изменении данных запись происходит непосредственно в undo tablespace - непосредственно в файл, минуя кэш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 10:25:31 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
LudeVhoarfrost, не понял? ведь при commit или rollback данные из андо удаляются с х*****я бы? Как бы тогда открытый курсор мог читать "удалённые" данные? тест-кейс, 1,2 - сессии Код: plsql 1. 2. 3. 4. и всё фетчится хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 10:33:05 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
сорри на некропостинг ), не увидел дату сообщения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 10:36:03 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Мог бы кто-нибудь мне любезно ответить? а то я читаю Льюиса и немного запутался с undo. Если undo блоки также находятся в общем кэше SGA, как можно узнать, сколько у нас в buffer cache обычных блоков, и сколько блоков Undo. хочется видеть примерно следующее: Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 10:39:33 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
В версиях 11.2.0.3, 11.2.0.4 и 12c при чтениях CR блоков REDO генерируется? имеется ввиду, когда другие сессии читают в consistent режиме. сессия 1 изменяет данные в таблице и ещё не зафиксировала их. сессия 2 читает данные из Undo, которые были до того момента, как сессия 1 начала их менять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 10:56:17 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинВ версиях 11.2.0.3, 11.2.0.4 и 12c при чтениях CR блоков REDO генерируется? реду генерируется при изменениях данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:16:16 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
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 году. стало интересно, этот механизм до сих пор работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:30:09 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
авторПростой Select (без update clause) будет генерировать REDO еще в одном случае. Это происходит когда делается consistent gets блоков, то есть когда select читает данные изминенные и незакоммиченные в другой сессии. а что в этом случае пишется в REDO? какой вектор изменения? чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:31:41 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинкакой вектор изменения? чего? Какое слово из "данные изминенные и незакоммиченные в другой сессии" тебе непонятно?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:33:04 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
есть мнение, что изменённые пишется через "е" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:34:16 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Jonhsonесть мнение, что изменённые пишется через "е" опечатка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:40:17 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovжвачкинкакой вектор изменения? чего? Какое слово из "данные изминенные и незакоммиченные в другой сессии" тебе непонятно?.. не понятно, что будет записано в журнал повтора, в случае согласованного чтения CR? обычная ситуация: update data в redo log (буффер журнала) записывается: 1. пишем вектор - запись отмены в undo block 2. пишем вектор - данные, до изменения в блоке данных и после изменения 3. объединяем две записи выше в одну общую запись (вектор) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:46:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=37584338&tid=1887890]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
239ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 187ms |
| total: | 556ms |

| 0 / 0 |
