Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle:Защо Oracle създава вектор за повторна промяна, описващ промяната в блока за отмяна, когато потребителят издаде инструкция за промяна на елемент от данни

Да приемем, че имате незавършена (неангажирана) транзакция. Oracle е направил всичко, което казахте във въпроса.

Сега машината се срива.

DBA, след възстановяването на машината (или на нова машина, зависи :)) възстановява последното архивиране и прилага всички журнали за повторение на новата инстанция. В повторението е и това, което беше направено в стъпка 1. Но тази работа не е ангажирана, така че двигателят трябва да я върне обратно. За това се нуждае от сегмента за връщане назад. Но сегментът за връщане назад няма да бъде там, ако не сте го регистрирали на стъпка 3.

Знам, че ще попитате сега:защо прилага регистрационни файлове за незавършена работа? Това беше и моят въпрос, когато прочетох за него. Не знам със сигурност, но може би е по-лесно да го направя. Може би е по-трудно да се провери за всеки запис в дневника, че е част от ангажирана транзакция. Ето как обаче работи Oracle:прилагам всички регистрационни файлове за повторение, след което връщам неизвършени транзакции.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изключване и стартиране на екземпляра на Oracle

  2. Най-голямата ненулева колона

  3. Oracle SQL - Как да получите отделни редове с помощта на аналитична функция RANK() или DENSE_RANK() или ROW_NUMBER()?

  4. Ограничението при получаване на blob данни от Oracle

  5. Как да заредя голям брой низове, които да съответстват на базата данни на Oracle?