|
|
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Что такое консистентное состояние БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 15:45 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Когда выполняются все ограничения целостности в ней. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 16:06 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
EvgeshkaЧто такое консистентное состояние БД? Когда все изменения, произведенные в БД, синхронизированны с файлами на дисках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 10:43 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
! EvgeshkaЧто такое консистентное состояние БД? Когда все изменения, произведенные в БД, синхронизированны с файлами на дисках. Интересно, а если СУБД без дисков? А если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 14:13 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Насколько я помню, по русски это непротиворечивое. К примеру, когда нет незавершенных транзакций (все или приняты, или откачены). В отсутствие физических сбоев носителей. Оганичения целостности могут, кстати, выполняться, но база находится в инконсистентном состоянии (ИМХО). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 14:27 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
const64 Оганичения целостности могут, кстати, выполняться, но база находится в инконсистентном состоянии (ИМХО). Пример в студию! Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 14:29 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
А если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным? Будем (хотя бы условно :) ). Если база в этот момент грохнется, то при запуске данные будут неконсистентны. Другое дело, что путем наката журнальной информации она БУДЕТ доведена до консистентного состояния ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 14:38 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Изопропил ! EvgeshkaЧто такое консистентное состояние БД? Когда все изменения, произведенные в БД, синхронизированны с файлами на дисках. Интересно, а если СУБД без дисков? А если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным? А это в какой СУБД так происходит? ---------- Еврейский SQL сервер отвечает запросом на запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 14:44 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Изопропил Интересно, а если СУБД без дисков? Когда не установлено ни одного мутекса(латча, семафора .....) на изменение данных в памяти СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:01 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
! Изопропил ![quot Evgeshka]Что такое консистентное состояние БД? Когда все изменения, произведенные в БД, синхронизированны с файлами на дисках. Интересно, а если СУБД без дисков? А если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным? А это в какой СУБД так происходит? [quot] Например, в Oracle в общем случае журнальный буфер скидывается на диск чаще данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:18 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
! ИзопропилА если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным?А это в какой СУБД так происходит? Во всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:37 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov const64 Оганичения целостности могут, кстати, выполняться, но база находится в инконсистентном состоянии (ИМХО). Пример в студию! Posted via ActualForum NNTP Server 1.4 Согласен, это я загнул :(( (Точнее, перепутал с допустимостью...) По Дейту: "Под понятием непротиворечивости ... мы подразумеваем отсутствие нарушений каких-либо ограничений целостности." Дейт К.Дж., "Введение в системы баз данных", издание 8, глава 15, с.577. Думаю, для "теоретического вопроса" этого достаточно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 15:53 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
tru55 ! Изопропил[quot !][quot Evgeshka]Что такое консистентное состояние БД? Когда все изменения, произведенные в БД, синхронизированны с файлами на дисках. Интересно, а если СУБД без дисков? А если журнал на диск записан, а блоки данных не записаны - состояние будем считать неконсистентным? А это в какой СУБД так происходит? Например, в Oracle в общем случае журнальный буфер скидывается на диск чаще данных По поводу частичной консистентности вобщем я с Вами полность согласен. НО консистентной либо есть либо ее нет(частично не считается). Не понятно какого уровня консистентность автор имел ввиду. И какую СУБД. Я, например, не совсем понимаю откуда при накатке журналов Oracle узнает, что транзакция уже закомичена, если информация о комите умерла в логбуфере при смерти экземпляра. Либо буфер сбрасывается по каждому комиту, либо сбрасывается выборочно для конкретного SCN. Если информация о комите сохранена в redo, а блоки с даннми нет, то при востановлении консистентности блоки с данніми должны быть опять загружены в буферный пул, и изменены поворно в соответсвии с информацией из журнала. Значит в журнале должна быть информация о том какие блоки синхронизированы а какие нет. Буду благодарен за ссылки раскрывающие эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 16:14 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Если конкретно про Oracle, то он оч-ч-чень трепетно относится к журнальной информации, поэтому достаточно часто скидывает журнальный буфер на диск - при каждом commit - каждые 3 сек - при накоплении 1М инфы - при заполнении буфера на 1/3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 16:42 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
! pavelvp Во всех. Не верю, см. сообщение выше. Возможно моя фраза была неправильно понята. Речь шла о том, что состояние "блоков данных" - записаны они на диск или нет - никак на непротиворечивость не влияет. Данные на диск могут быть и не записаны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 17:36 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
авторЯ, например, не совсем понимаю откуда при накатке журналов Oracle узнает, что транзакция уже закомичена, если информация о комите умерла в логбуфере при смерти экземпляра. неповеришь. он об это мне узнает и откатит все изменения сделанные этой транзакцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 15:52 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
ScareCrow авторЯ, например, не совсем понимаю откуда при накатке журналов Oracle узнает, что транзакция уже закомичена, если информация о комите умерла в логбуфере при смерти экземпляра. неповеришь. он об это мне узнает и откатит все изменения сделанные этой транзакцией. А как же консистентность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 16:54 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
! ScareCrowнеповеришь. он об это мне узнает и откатит все изменения сделанные этой транзакцией. А как же консистентность? Ты прикидываешься или издеваешься? Всё хорошо будет. В базе останутся только зафиксированные транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 18:52 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
pavelvp ! ScareCrowнеповеришь. он об это мне узнает и откатит все изменения сделанные этой транзакцией. А как же консистентность? Ты прикидываешься или издеваешься? Всё хорошо будет. В базе останутся только зафиксированные транзакции. Я прекрасно понимаю, что база будет консистентна относительно последнего комита попавшего в redo. Но реально это не последний комит. Что бы этого избежать( частично ) нужно играться с параметрами типа FAST_START_MTTR_TARGET или LOG_CHECKPOINT_TIMEOUT LOG_CHECKPOINT_INTERVAL FAST_START_IO_TARGET во всяком случае этот период потенциальных потерь транзакций можно контролировать тынц сюда з.ы. Продолжаю самообразовываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 19:09 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
!Я прекрасно понимаю, что база будет консистентна относительно последнего комита попавшего в redo. Но реально это не последний комит. Что бы этого избежать( частично ) нужно играться с параметрами типа Уж и не знаю что ты там вычитал про Oracle, но если приложение подало commit и на этот коммит вренулся успешный код завершения, то этот "последний commit" должен быть в базе (при условии, что журнал не был уничтожен направленным взрывом). Если же это не так - не соблюдаются требования ACID - ВЫКИНУТЬ НАФИГ ТАКУЮ СУБД!!! А для сомообразования можно почитать про WAL, ARIES, ну и конечно же Transaction Processing Грея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 21:06 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
pavelvpУж и не знаю что ты там вычитал про Oracle, но если приложение подало commit и на этот коммит вренулся успешный код завершения, то этот "последний commit" должен быть в базе (при условии, что журнал не был уничтожен направленным взрывом). С идеологической точки зрения я с Вами согласен, но в какой-то момент Oracle решил дать инструмент работы с двумя типовыми ситуациями: 1. Какой-то идиот написал адекватный себе код, например, миллиона инсертов с autocommit=true. 2. Идет очень большое изменение, по техническим причинам разбиваемое промежуточными commit-ами, скажем, ETL. Так появились http://www.oracle-base.com/articles/10g/Commit_10gR2.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 23:15 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
Гораздо интереснее выглядит консистентность в распределенных БД. К примеру, часть узлов м.б. в непротиворечивом состоянии, часть - нет. Тогда как можно определить состояние всей БД? А если еще при проектировании заложена избыточность данных, и данные неконсистентных узлов перекрываются данными консистентных? Либо, можно рассмотреть репликацию БД. При каких условиях реплика будет консистентной, если основная БД - нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 06:55 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
const64 Либо, можно рассмотреть репликацию БД. При каких условиях реплика будет консистентной, если основная БД - нет? При условии, что основная БД поддерживает ACID, т.е. ее невозможно увидеть "со стороны" в неконсистентном состоянии. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 09:36 |
|
||
|
Теоретический вопрос.
|
|||
|---|---|---|---|
|
#18+
!Буду благодарен за ссылки раскрывающие эту тему. Сам напросился !Либо буфер сбрасывается по каждому комиту, либо сбрасывается выборочно для конкретного SCN. redo_write_triggers !Если информация о комите сохранена в redo, а блоки с даннми нет, то при востановлении консистентности блоки с данніми должны быть опять загружены в буферный пул, и изменены поворно в соответсвии с информацией из журнала. Значит в журнале должна быть информация о том какие блоки синхронизированы а какие нет. Что хранится в редо InternalsOFrecovery1 InternalsOFrecovery2 !Я, например, не совсем понимаю откуда при накатке журналов Oracle узнает, что транзакция уже закомичена, если информация о комите умерла в логбуфере при смерти экземпляра. !Я прекрасно понимаю, что база будет консистентна относительно последнего комита попавшего в redo. Но реально это не последний комит. Что бы этого избежать( частично ) нужно играться с параметрами типа FAST_START_MTTR_TARGET или LOG_CHECKPOINT_TIMEOUT LOG_CHECKPOINT_INTERVAL FAST_START_IO_TARGET во всяком случае этот период потенциальных потерь транзакций можно контролировать Бред За это отвечает недокументированный _WAIT_FOR_SYNC, и играться с ним я не рекомендую. В 10-ке появилась документированная фишка, про которую уже сказал softwarer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2007, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=35&fpage=30&tid=1553327]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 372ms |

| 0 / 0 |
