
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.06.2003, 12:55:07
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
Не совсем поняла из книги когда происходит увеличение SCN (system change number) - при check point или при commit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 13:10:53
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
есть в принципе два SCN: 1. SCN - system change number 2. SCN - system commit number Они генерятся из одно последовательности, но первый генерится при любом изменении блока, а второй только при коммите. При чекпоинте, насколько я понимаю, ничего не присваивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 13:31:48
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
Они генерятся из одно последовательности, но первый генерится при любом изменении блока, а второй только при коммите. Как же тогда учиться по книгам?:-( В книге "Подготовка Адинистраторов БД" от Лори, дословно стр. 510 При запуске БД Оракл синхронизирует все свои дисковые ресурсы с помощью контрольных точек. Каждый раз при ее выполнении ей присваивается номер изменения системы (System Change Number) ... Всякий раз, когда пользователь завершает транзакцию, Оракл регистрирует новый SCN. Кого вешать ...? :-) Ваши объяснения как всегда очень пояснительны! Насколько я поняла из Они генерятся из одно последовательности system commit number это system change number после которго произошел коммит. Теперь если порассуждать, то становится понятным, что system change number должен изменяться на уровне изменний блоков а не на уровне фиксации транзакции. Например, грязные блоки могут сесть в датафайлы еще до комита, и Ораклу просто необходимо для них уже иметь более высокий SCN, чтобы иметь возможность определить в случае crash recovery что эти блоки следует откатить. А определить он это сможет, посмотрев redo. Если там последний system commit number ниже system change number блока, блок следует восстановить из rollback. Ход мыслей правилен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 13:51:10
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
После изменения блока тот попадает в очередь чекпойнта (dirty queue) вместе с адресом redo-блока и SCN изменения. При чекпойнте оракл фиксирует SCN чекпойнта, затем сбрасывает грязные блоки с SCN ниже фиксированного. Когда все требуемые блоки сброшены на диск, обновляются заголовки датафайлов, в которые прописывается этот самый SCN начала чекпойнта. Есть еще одна особенность (с 8.0.5) - каждые три секунды в контрольный файл пишется SCN, до которого грязные блоки действительно сброшены в датафайлы (инкрементальный чекпойнт). Тогда после аварии ораклу надо прочитать из redo не все redo-блоки с момента последнего чекпойнта, а только с того redo-блока, который прописан в контрольном файле. Таким образом, redo нет необходимости просматривать. Можно сразу начинать восстановление с определенного адреса в файле. Если, конечно, есть контрольный файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 14:31:46
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
Нашла топик\r \r /topic/31367\r \r про \r \r SCN - Sytem Commit Number \r SCN - System Checkpoint Number \r SCN - System Change Number \r \r Вот ваш текст от туда\r \r Все SCN в оракле используют одну и ту же последовательность. Разница в моментах времени, когда происходит изменение этой последовательности. При коммите назначается system commit number. Он же пишется в транзакционную таблицу блока и сегмента отката для пометки завершенности транзакции. System checkpoint number - это номер изменения системы, на который надо проводить синхронизацию, по окончании чекпойнта он прописывается в заголовки датафайлов. А в промежутках между коммитами, чекпойнтами и т.д. оракл проводит свои внутренние операции, которые помечаются как system change number. Поэтому различить их достаточно сложно. \r \r Как я поняла\r \r 1) System Change Number генерится по мере изменения блоков независимо от чекпоинта или комита.\r \r 2) При возниконовении чекпоинта фиксируется текущий System Change Number, который становится System Checkpoint Number, и сбрасываются грязные блоки с SCN ниже фиксированного.\r \r System checkpoint number - это номер изменения системы, на который надо проводить синхронизацию \r \r Что имеется ввиду под синхронизацией? Подтягивание изменений из логов при восстановлении?\r \r 3) При коммите фиксируется текущий System Change Number, который становится Sytem Commit Number, он используется для пометки завершенности транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 14:50:12
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
Синхронизация - во всех датафайлах гарантированно записаны данные на какой-то момент. Сравните с обычной ситуацией - в одном датафайле данные на один SCN, в других - на другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 14:57:37
|
|||
|---|---|---|---|
Когда происходит увеличение SCN? |
|||
|
#18+
То есть под синхронизацией здесь понимается сброс в датафайлы грязных блоков с SCN ниже фиксированного а не то что пондумала я Подтягивание изменений из логов при восстановлении Вроде бы создалось понимание более или менее. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1989973]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 465ms |

| 0 / 0 |
