Oracle - Как транзакция, откат сегментируется и undo_retention работа параметра?

   var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT');
   var result=date.getUTCHours()+':'+date.getUTCMinutes()+':'+date.getUTCSeconds();
9
задан Manur 10 October 2008 в 10:09
поделиться

3 ответа

Партии для покрытия здесь! Человек в Вашей компании чрезвычайно прав, за исключением того, что изменения записаны в блок данных в памяти, поскольку они сделаны, даже перед фиксацией; и они выписаны к диску полностью независимо от того, когда Вы фиксируете (возможно прежде, возможно после, никогда как часть операции фиксации).

1) UNDO_RETENTION не имеет никакого отношения, когда Ваши изменения записаны в блок данных, или в памяти или на диске. UNDO_RETENTION управляет, сколько времени данные, необходимые для отмены изменения, сохраняются после фиксации изменения. Причем цель состоит в том, что другие запросы или сериализуемые транзакции, которые запустились перед Вашей фиксацией, могут все еще хотеть те данные. Ссылка: http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/undo.htm#sthref1477

2) Когда Вы делаете обновление, блоки данных в памяти изменяются. Они могут или не могут быть выписаны к диску (даже перед фиксацией я верю); это сделано фоновым процессом. Кроме того, информация о восстановлении записана в буфер журнала отката. Отмена сгенерирована и сохранена в сегменте отмены.

3) Когда Вы фиксируете, Oracle удостоверяется, что Ваша информация о восстановлении записана в диск и отмечает данные отмены, как фиксируется. Но это не пишет измененные блоки данных в памяти к диску, и при этом это не возвращается и отмечает каждый блок, как фиксируется. Это должно сделать фиксацию максимально быстрой. Ссылка: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/transact.htm#sthref628

4) Блоки данных в памяти будут отмечены, как фиксируется или когда они будут выписаны к диску фоновым процессом, или в следующий раз, когда они используются (ВЫБОРОМ или любой другой операцией). Это - то, что обсуждает примечание AskTom. Это не о том, записаны ли Ваши изменения в данных в блок; это о том, отмечены ли они, как фиксируется в самом блоке.

14
ответ дан 4 December 2019 в 14:32
поделиться

Я также голосую за вторую версию на основе
эта ссылка (который является Oracle 10.2, но я думаю, она все еще относится 9.2 также).

Это говорит: "После того, как транзакция фиксируется, данные отмены больше не необходимы в целях отката или восстановления транзакции. Однако в последовательных целях чтения, продолжительные запросы могут запросить эту старую информацию отмены для создания более старых изображений блоков данных".

и

"Когда автоматическое управление отменой включено, всегда существует текущий период хранения отмены, который является минимальным количеством времени, когда База данных Oracle пытается сохранить старую информацию об отмене прежде, чем перезаписать его".

0
ответ дан 4 December 2019 в 14:32
поделиться

Мое понимание (в основном) позже, Эта ссылка имеет детали.

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

0
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: