OCP: Какие из двух правдивы в отношении LGWR? - PullRequest
0 голосов
/ 03 ноября 2018
  • A. LGWR всегда записывает в журналы повторов каждый раз, когда происходит COMMIT.
  • B. LGWR всегда записывает в журналы повторов каждый раз, когда происходит ROLLBACK.
  • C. LGWR никогда не записывает ни одного сообщения COMMIT в журналы повторов.
  • D. LGWR может записывать в журналы повторов, когда DBWR записывает грязный буфер.
  • E. LGWR может записать несколько COMMIT в одном запросе на запись.
  • F. LGWR всегда записывает в журналы повторов, когда DBWR записывает грязный буфер.

Ответ - DE.

Но почему?

Почему А и F не правы?

1 Ответ

0 голосов
/ 03 ноября 2018

Почему А и F не так?

Это не очевидно, но в руководстве Oracle Concepts есть объяснения. Вы должны проверить это.

Во всяком случае ....

A. LGWR всегда записывает в журналы повторов каждый раз, когда происходит COMMIT.

Пользователь, совершающий транзакцию, является одной из вещей, которая заставляет LGWR записывать в журнал повторов. Так что может показаться, что А это правильно. Но в Руководстве по концепту написано: «Когда активность высокая, LGWR может использовать групповые фиксации» . Если несколько пользователей фиксируют свои транзакции, в то время как LGWR все еще записывает в журнал повторов, эти фиксации сохраняются в буфере повторов, а затем все они записываются, когда LGWR освобождается.

Итак, не существует одной записи для каждого коммита. Вот почему E правильно.

F. LGWR всегда записывает в журналы повторов, когда DBWR записывает грязный буфер.

Концептуальное руководство гласит: "Прежде чем DBW сможет записать грязный буфер, база данных должна записать на диск записи повторов, связанные с изменениями в буфере (протокол упреждающей записи). Если DBW обнаружит, что некоторые повторные записи не были записаны, он сигнализирует LGWR о записи записей на диск и ожидает завершения LGWR перед записью буферов данных на диск. "

Так что F не соответствует действительности, потому что LGWR не всегда должен писать, когда DBWR пишет, просто иногда. Вот почему D правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...