|
|
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
вопрос по-русскому языку: почему слово буфер пишут с одной буквой "Ф", когда на оригинале пишется с двумя - buffer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:50:49 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинзаписывается Но не сразу. А когда жареный петух клюнет. Например, в виде вышеназванной параллельной сессии. Вот она-то и запишет. Когда читать захочет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 11:51:31 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovжвачкинзаписывается Но не сразу. А когда жареный петух клюнет. Например, в виде вышеназванной параллельной сессии. Вот она-то и запишет. Когда читать захочет. а как получить примерно такую выборку, с количеством undo блоков в кэше и data блоков? Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:02:01 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
а ундо блок это не дата блок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:22:39 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкин, v$bh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:26:48 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Jonhsonа ундо блок это не дата блок? из прочитанного, я так понял, что ундо блок - это клон блока данных. сам же исходный блок данных становится грязным, т.е. модифицированным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:29:48 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
xaxa.жвачкин, v$bh Код: plsql 1. 2. 3. правильно ли я понял, что все блоки со статусом cr - относятся к Undo? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:35:46 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
авторКогда вы выполняете commit, ваша сессия обновит соответствующий слот таблицы транзакций в заголовке сегмента отката, то есть пометит транзакцию как завершенную (state=9 - зафиксирована). Могли бы вы любезно пояснить, сегмент отката - блок в buffer_cache/на диске с исходными данными до изменения? таблица транзакций - находится в каждом таком блоке, в его заголовке? не совсем понял... спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 12:49:35 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинавторКогда вы выполняете commit, ваша сессия обновит соответствующий слот таблицы транзакций в заголовке сегмента отката, то есть пометит транзакцию как завершенную (state=9 - зафиксирована). Могли бы вы любезно пояснить, сегмент отката - блок в buffer_cache/на диске с исходными данными до изменения? таблица транзакций - находится в каждом таком блоке, в его заголовке? не совсем понял... спасибо! сегмент отката - я так понял - это выделенный экстент в табличном пространстве Undo. Не понимаю, что будет являться заголовком сегмента отката - какой-то блок из этого экстента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 13:25:36 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинжвачкинпропущено... Могли бы вы любезно пояснить, сегмент отката - блок в buffer_cache/на диске с исходными данными до изменения? таблица транзакций - находится в каждом таком блоке, в его заголовке? не совсем понял... спасибо! сегмент отката - я так понял - это выделенный экстент в табличном пространстве Undo. Не понимаю, что будет являться заголовком сегмента отката - какой-то блок из этого экстента? конец-то нагуглил. авторПри создании сегмента отката выделяется minextents пока еще пустых экстентов, причем первый оракловский блок первого экстента зарезервирован под таблицу транзакций, или заголовок сегмента отката. Мы будем говорить, что голова и хвост [прим.5]сегмента отката находятся в начале второго блока первого экстента сразу после заголовка (см. рис. 1). При назначении транзакции на этот сегмент отката, информация отката записывается, начиная со второго блока, причем у каждой активной транзакции существует также голова и хвост в сегменте отката. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 13:33:09 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Мог бы кто-нибудь любезно мне рассказать, правильно ли я описываю процесс ниже и поправить в случае ошибок: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 17:39:03 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
11 - 13 не понятно, зачем анду читать лишний раз? впрочем настолько детально меня не интересовал вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 18:15:35 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Возник ещё один вопрос, если запрос ниже всегда показывает свободные блоки - free, повод ли это думать, что буферный кэш имеет достаточный размер и точно не нуждается в увеличении размера? Код: plsql 1. 2. 3. например, выставил PGA и SGA вручную, указал минимальное значение для buffer_cache=5G. и вижу, что 512 Мб всегда свободно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2016, 18:27:34 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинxaxa.жвачкин, v$bh Код: plsql 1. 2. 3. правильно ли я понял, что все блоки со статусом cr - относятся к Undo?Нет, статус CR -- это блок используемый для чтения на какой-то момент времени (consistent read). Возможно, восстановленный с помощью применения UNDO. Возможно, никогда не существоваший именно в таком виде в БД (хоть на диске, хоть в кеше). Никогда не пишется на диск. Соответственно, не генерит REDO (отложенная очистка блоков работает с CURRENT версией) Поэтому все твои дальнейшие рассуждения (после пункта 6) -- это фантазии. Читать Oracle Core: Essential Internals for DBAs and Developers By Jonathan Lewis , есть перевод на русский, довольно неплохой (насколько я понял, переводил местный в свое время завсегдатай?) по типам блоковС 9i Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. В принципе, начиная с 15 идут блоки для UNDO/ROLLBACK с номером USN (15+USN*2 -- заголовок UNDO/ROLLBACK сегмента V$ROLLNAME.USN, 15+USN*2+1 -- блок UNDO/ROLLBACK сегмента) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 03:53:09 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, большое спасибо за подробный ответ! Скажите любезно, cr блоки - единственные блоки, которые не сбрасываются из кэша на диск в Oracle? автор8. Оригинальный грязный блок, который сессия модифицирует в случае переполнения buffer cache сбрасывается на диск разве не так, если кэш переполнен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 09:58:56 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Модифицируется только CURRENT версия блока -- она одна на весь кеш и одна может быть грязной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 10:04:56 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
авторЧитать Oracle Core: Essential Internals for DBAs and Developers By Jonathan Lewis да я в процессе, только сразу походу чтения столько вопросов возникают, начиная со второй главы. Интересна следующая ситуация (не было возможности имитировать): Код: plsql 1. 2. 3. 4. В результате работы транзакции первый redo заполнился, произошло переключение на второй журнал. В этот момент кэш переполнился и грязные буферы стали сбрасываться на диск. Транзакция продолжает идти. Второй журнал заполнился и переключился на третий. В buffer cache уже не хватает места, чтобы хранить cr блоки, которые не сбрасываются на диск. В этот момент третий журнал заполнился. Четвёртого журнала нет, транзакция ещё не завершена. Что произойдёт в тот момент, когда все Redo переполнятся, а транзакция ещё не завершится? Где держать новые cr блоки, когда в кэше нет места - он заполнен другими cr блоками? Ошибка ORA- ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 10:18:40 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Забудь про CR блоки Обновляются только CURRENT блоки Нет места -- вытесняются на диск Транзакция подтверждена -- у какой-то части блоков, находящихся в кэше, прописывается этот признак (быстрая очистка), остальным он пропишется при чтении (отложенная очистка) другим процессом (с диска или из кэша) Транзакция откачена -- по всем блокам будет выполнен откат, если блок уже на диске, то прочитается в память и откатится, опять не хватит места в памяти -- измененные блоки уедут на диск. И та же фигня с признаками активных транзакций. Только еще и сегментах отмены надо будет пометить, что запись применена, что точно также "пачкает" блоки отмены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 10:35:16 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЧитать Oracle Core: Essential Internals for DBAs and Developers By Jonathan Lewis , есть перевод на русский, довольно неплохой (насколько я понял, переводил местный в свое время ] Перевод - Киселёв А. Н. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 10:51:26 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Т.е. быстрая и отложенная очистка применима только к current блокам, всё верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 11:52:32 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
жвачкинпочему слово буфер пишут с одной буквой "Ф", когда на оригинале пишется с двумя - buffer? Потому же, почему и буфет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 14:40:01 |
|
||
|
как работает undo?
|
|||
|---|---|---|---|
|
#18+
Jonhsonа ундо блок это не дата блок? "Данные в базе уже модифицированы, так что 99,9% работы выполнено, например, перечисленные ниже операции. - Блоки undo сгенерированы в области SGA - Модифицированные блоки данных сгенерированы в области SGA". (с) Том Кайт, Oracle для профессионалов, глава 9, Повтор и отмена страница 392 так что Undo Блок и data блок с точки зрения Кайта разные блоки, если я правильно прочёл то, что написано выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2016, 19:39:32 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39273030&tid=1887890]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
168ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 463ms |

| 0 / 0 |
