|
|
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
2 hvlad Приношу извинения, часть диалога, действительно, не прочел. hvlad pavelvp hvlad ApexА чем ты будешь свой вчерашний инкрементальный бэкап догонять до момента перед сбоем,чудо в перьях???Ознакомься с предметом беседы, перед тем как хамить, ораклоид Мне тоже интересно, действительно - чем?А кто сказал, что он вчерашний ? На то он и инкрементальный, что делается быстро, и, кстати, может занимать намного меньше места чем журнал. Так шта - делайте хоть каждые 5 мин. Если делать инкрементальный бэкап очень часто - то по сути это будет имитация журнала транзакций, но с худшей реализацией. Смысла в ней я не вижу. hvlad Скорость теряется за счёт не упорядоченной по физическим номерам страниц записи на диск. С логом (последовательно записываемым) этой проблемы нет. Но есть другая - нужно писать в лог намного больше инф-ции , а потом её же (не всю конечно) писать ещё раз в БД. Есть страница, содержащая данные как-то таблицы, меняем одну строку, говорим commit - что уходит на диск? Мне кажется что целиком вся страница. Поправьте если не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 12:00 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Apex hvladА кто сказал, что он вчерашний ? На то он и инкрементальный, что делается быстро, и, кстати, может занимать намного меньше места чем журнал. Так шта - делайте хоть каждые 5 мин. Если делать инкрементальный бэкап очень часто - то по сути это будет имитация журнала транзакций, но с худшей реализацией. Смысла в ней я не вижу.а) Это ни в коем случае не будет имитацией журнала тр-ций. Слишком разные процессы б) С отсутствием жизненной необходимости журнала тр-ций мы уже смирились, не так ли ? :) в) Реализация не обязана быть худшей Apex hvlad Скорость теряется за счёт не упорядоченной по физическим номерам страниц записи на диск. С логом (последовательно записываемым) этой проблемы нет. Но есть другая - нужно писать в лог намного больше инф-ции , а потом её же (не всю конечно) писать ещё раз в БД. Есть страница, содержащая данные как-то таблицы, меняем одну строку, говорим commit - что уходит на диск? Мне кажется что целиком вся страница. Поправьте если не так.Конечно. А что пойдёт в журнал тр-ций ? Даже если только изменённые данные + данные до изменения (а не старая + новая страницы), то что пойдёт в журнал при изменении 10 записей на странице в 10 разных апдейтах в однй тр-ции ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 12:55 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
hvlad б) С отсутствием жизненной необходимости журнала тр-ций мы уже смирились, не так ли ? :) Не так. Про жизненную необходимость я и не говорил, я говорил про возможности восстановления. Если у тебя полетит один из дисков - т.е. только часть БД, то все что ты поимеешь - базу по состоянию, пусть даже 5 минут назад (последний инкрементальный бэкап). В случае с журналом я поимею ее вплоть до последней зафиксированной транзации перед сбоем. Разница есть. hvladКонечно. ОК. Давай рассуждать дальше. Итак, имеем 10 измененных строк в 10 разных страницах. Перед commit без журнала надо сбросить на диск все 10. Так? С журналом надо сбросить только одну страницу, содежращую записи обо всех изменения+некую доп. информацию - что в совокупности ненамного больше самой изменившейся информации, но гораздо меньше 10 страниц данных. Идем дальше. Разумеется даже с журналом, наши 10 грязных страниц надо рано или поздно сбросить на диск, и разумеется тут мы проигрываем, т.к. надо сбросить 10 грязных страниц+страницу журнала, вместо просто 10 грязных страниц. Это когда транзакция одна. Теперь рассмотрим случай когда транзакций много. 10 транзакций последовательно меняют 10 строк в 10 разных страницах. Итого на диск уходит 100 страниц (уходят эти же 10, но каждая по 10 раз). С журналом уходит 10 старниц журнала с измененными данными + 10 страниц грязных данных. Поправь меня, если я где-то допустил ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:33 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
iscrafm pavelvp iscrafmа ты наверное, несохраненным вовремя журналом? Сам то понял, что сказал? я понял, а ты? Судя по всему нет. Я это делал :-) Журнал сохранён всегда! На то он и журнал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:49 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
pavelvp Я это делал :-) Журнал сохранён всегда! На то он и журнал. т.е. Вы backup логов не делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:00 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
iscrafmт.е. Вы backup логов не делаете? тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:06 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
iscrafm pavelvp Я это делал :-) Журнал сохранён всегда! На то он и журнал. т.е. Вы backup логов не делаете? STANDBY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:10 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) STANDBY с этим то как раз понятно, это горячее резервирование, зеркало. Вопрос только был вроде в том, что если БД накрылась, и архива логов нет (standby и ли вручную), то база востанавливается по журналу на момент слета. А с наличием архива конечно все понятно, можно не разжевывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:51 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
iscrafmВопрос только был вроде в том, что если БД накрылась, и архива логов нет (standby и ли вручную), то база востанавливается по журналу на момент слета. А с наличием архива конечно все понятно, можно не разжевывать :) Ну а если ещё и сервер уничтожен направленным взрывом, то так и вообще капец :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 14:56 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
pavelvp iscrafmВопрос только был вроде в том, что если БД накрылась, и архива логов нет (standby и ли вручную), то база востанавливается по журналу на момент слета. А с наличием архива конечно все понятно, можно не разжевывать :) Ну а если ещё и сервер уничтожен направленным взрывом, то так и вообще капец :-) можно не язвить, а почитать о чем говорил человек, к которому это все обращено было изначально. :) Тонкости всегда в деталях... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 15:00 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Apex hvlad б) С отсутствием жизненной необходимости журнала тр-ций мы уже смирились, не так ли ? :) Не так. Про жизненную необходимость я и не говорил, я говорил про возможности восстановления. Если у тебя полетит один из дисков - т.е. только часть БД, то все что ты поимеешь - базу по состоянию, пусть даже 5 минут назад (последний инкрементальный бэкап). В случае с журналом я поимею ее вплоть до последней зафиксированной транзации перед сбоем. Разница есть.Я спорил не с наличием разницы. А с утверждением о несерьёзности систем без явных журналов. Shadow позволяет иметь не меньшую степень надёжности ApexОК. Давай рассуждать дальше. Итак, имеем 10 измененных строк в 10 разных страницах. Перед commit без журнала надо сбросить на диск все 10. Так? С журналом надо сбросить только одну страницу, содежращую записи обо всех изменения+некую доп. информацию - что в совокупности ненамного больше самой изменившейся информации, но гораздо меньше 10 страниц данныхНе совсем так. В журнал однозначно нужно записывать как старые данные, так и новые. Это минимум в 2 раза больше объёма изменённых данных ApexИдем дальше. Разумеется даже с журналом, наши 10 грязных страниц надо рано или поздно сбросить на диск, и разумеется тут мы проигрываем, т.к. надо сбросить 10 грязных страниц+страницу журнала, вместо просто 10 грязных страниц. Это когда транзакция одна. Теперь рассмотрим случай когда транзакций много. 10 транзакций последовательно меняют 10 строк в 10 разных страницах. Итого на диск уходит 100 страниц (уходят эти же 10, но каждая по 10 раз)Да. Но это только если эти тр-ции работают строго последовательно. Т.е. тр-ция2 не трогает страницу, изменённую тр-цией1 пока тр-ция1 не закоммитится. А это характерно только для невысокой нагрузки. ApexС журналом уходит 10 старниц журнала с измененными данными + 10 страниц грязных данных. Поправь меня, если я где-то допустил ошибку.В журнал таки пойдёт несколько больше 10-и страниц. А именно - не менее 210 "записей" (100 о старых данных, 100 о новых, 10 о коммитах). Но не в этом суть... О чём спорим ? а) о призводительности б) о надёжности в) о сравнительном объёме журнала и инкрементного бекапа г) о "серьёзности" (не знаю что это такое) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 15:08 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
hvlad Shadow позволяет иметь не меньшую степень надёжности При бОльших требованиях к аппаратному обеспечению (обеспечить журнализацию проще, чем работу еще одного сервера). hvlad ApexОК. Давай рассуждать дальше. Итак, имеем 10 измененных строк в 10 разных страницах. Перед commit без журнала надо сбросить на диск все 10. Так? С журналом надо сбросить только одну страницу, содежращую записи обо всех изменения+некую доп. информацию - что в совокупности ненамного больше самой изменившейся информации, но гораздо меньше 10 страниц данныхНе совсем так. В журнал однозначно нужно записывать как старые данные, так и новые. Это минимум в 2 раза больше объёма изменённых данных Верное уточнение, я это подразумевал, но явно не упомянул. Однако уточню и я: в 2 раза больше, только если имеем развнозначный update. Для insert или delete имеем почти тот же объем, что и объем новых/старых данных. hvlad ApexИдем дальше. Разумеется даже с журналом, наши 10 грязных страниц надо рано или поздно сбросить на диск, и разумеется тут мы проигрываем, т.к. надо сбросить 10 грязных страниц+страницу журнала, вместо просто 10 грязных страниц. Это когда транзакция одна. Теперь рассмотрим случай когда транзакций много. 10 транзакций последовательно меняют 10 строк в 10 разных страницах. Итого на диск уходит 100 страниц (уходят эти же 10, но каждая по 10 раз)Да. Но это только если эти тр-ции работают строго последовательно. Т.е. тр-ция2 не трогает страницу, изменённую тр-цией1 пока тр-ция1 не закоммитится. А это характерно только для невысокой нагрузки. А если все-таки трогает, до того как первая закомитилась? Т1 внесла изменения в страницу А, Т2 внесла изменения в А, Т1 сказала commit - страница пошла на диск(?), Т2 сказала commit - что тогда? Страница опять пошла на диск или проверила, что она уже была сброшена на диск после чего Т2 в нее не вносла изменений и повторно можно не сбрасывать? hvlad Но не в этом суть... О чём спорим ? а) о призводительности б) о надёжности в) о сравнительном объёме журнала и инкрементного бекапа г) о "серьёзности" (не знаю что это такое) ? Я считаю, что СУБД с журналом транзакций имееют приимущество по совокупности пунктов а и б, перед СУБД не имеющими таковой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 15:57 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Apex забанен hvlad Shadow позволяет иметь не меньшую степень надёжности При бОльших требованиях к аппаратному обеспечению (обеспечить журнализацию проще, чем работу еще одного сервера).Нет. Читайте внимательнее - я уже говорил, что shadow располагается на том же сервере. Это страничная копия файла БД Apex забанен hvlad ApexИдем дальше. Разумеется даже с журналом, наши 10 грязных страниц надо рано или поздно сбросить на диск, и разумеется тут мы проигрываем, т.к. надо сбросить 10 грязных страниц+страницу журнала, вместо просто 10 грязных страниц. Это когда транзакция одна. Теперь рассмотрим случай когда транзакций много. 10 транзакций последовательно меняют 10 строк в 10 разных страницах. Итого на диск уходит 100 страниц (уходят эти же 10, но каждая по 10 раз)Да. Но это только если эти тр-ции работают строго последовательно. Т.е. тр-ция2 не трогает страницу, изменённую тр-цией1 пока тр-ция1 не закоммитится. А это характерно только для невысокой нагрузки. А если все-таки трогает, до того как первая закомитилась? Т1 внесла изменения в страницу А, Т2 внесла изменения в А, Т1 сказала commit - страница пошла на диск(?), Т2 сказала commit - что тогда? Страница опять пошла на диск или проверила, что она уже была сброшена на диск после чего Т2 в нее не вносла изменений и повторно можно не сбрасывать?Грязная страница, будучи сброшенной на диск, перестаёт быть грязной :) Конечно она будет записана только 1 раз Apex забанен hvlad Но не в этом суть... О чём спорим ? а) о призводительности б) о надёжности в) о сравнительном объёме журнала и инкрементного бекапа г) о "серьёзности" (не знаю что это такое) ? Я считаю, что СУБД с журналом транзакций имееют приимущество по совокупности пунктов а и б, перед СУБД не имеющими таковой.Считать что угодно и как угодно - ваше право. Истина от этого не зависит PS А чего забанен-то ? Али я пропустил самое интересное ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 16:18 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
hvladНе совсем так. В журнал однозначно нужно записывать как старые данные, так и новые. Это минимум в 2 раза больше объёма изменённых данных Не совсем понятно - зачем? В журнал пишутся только новые закоммиченные данные Накат журнала - это взять бэкап(со старыми данными) и последовательно провести изменения по журналу на новые данные. Сделав n-1 таких операций - будем иметь "старые данные" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 16:42 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
landy hvladНе совсем так. В журнал однозначно нужно записывать как старые данные, так и новые. Это минимум в 2 раза больше объёма изменённых данных Не совсем понятно - зачем? В журнал пишутся только новые закоммиченные данные Накат журнала - это взять бэкап(со старыми данными) и последовательно провести изменения по журналу на новые данные. Сделав n-1 таких операций - будем иметь "старые данные"Затем, что журнал позволяет не только накат закоммиченного, но и откат не закоммиченного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 16:48 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
landyВ журнал пишутся только новые закоммиченные данные не в оракле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 16:53 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Затем, что журнал позволяет не только накат закоммиченного, но и откат не закоммиченного. Для отката используется обычно WAL механизм, при этом не обязательно писать эти данные в журнал(в общем случае) транзакций, для этого использовать WAL файл, который содержит данные только между чекпоинтами В журнал обычно пишутся только закоммиченные транзакции. Хотя в Oracle (и в Oracle RDB кстати) пишуться и старые и новые данные, что позволяет "проиграть" состояние БД в обратную сторону. Но это ИМХО фичи Просто уточниим - мы обсуждаем конкретную БД или в общем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:04 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
landyмы обсуждаем конкретную БД или в общем? когда речь заходит о преимуществах чего-то над чем-то, то "в общем" говорить становится затруднительно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:25 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Ну насколько я понял - все свалилось к обсуждению вопроса - нужны ли журналы транзакций? Для меня - пока в Postgres не было механизмов наката по журналам(PITR) я его смотрел, но не рассматривал как БД для серьезного использвания. Насчет инкрементальных бэкапов - насколько я понимаю - они должны делаться относительно какой-то точки отсчета(первоначальный бэкап БД). Кроме того(во всяком случае в RDB это так) каждый последующий инкрементальный бэкап содержит все изменения с полного бэкапа(т е он растет). Для восстановления БД нужно накатить последний инкрементальный бэкап на полный бэкап БД. В других БД это так же я думаю(т е как выполняя последующие инкрементальные бжкапы мы можем узнать что забэкапили на предыдущем, т е точка отсчета все равно полный бэкап)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:39 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
hvladЭто страничная копия файла БД Я вообще понял, что они на одной машине, просто думал, что там второй сервер (SQL-сервер) БД поднимать надо. hvladСчитать что угодно и как угодно - ваше право. Истина от этого не зависит Так вот хочется ее выяснить, подтвердив при этом свою правоту, либо развеяв свои заблуждения. hvladPS А чего забанен-то ? Али я пропустил самое интересное ? Нежная психика модератора не пережила моего хамского поста:) P.S. заметьте, я не обижаюсь:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 18:33 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
landyНу насколько я понял - все свалилось к обсуждению вопроса - нужны ли журналы транзакций? Для меня - пока в Postgres не было механизмов наката по журналам(PITR) я его смотрел, но не рассматривал как БД для серьезного использвания. Насчет инкрементальных бэкапов - насколько я понимаю - они должны делаться относительно какой-то точки отсчета(первоначальный бэкап БД). Кроме того(во всяком случае в RDB это так) каждый последующий инкрементальный бэкап содержит все изменения с полного бэкапа(т е он растет). Для восстановления БД нужно накатить последний инкрементальный бэкап на полный бэкап БД. В других БД это так же я думаю(т е как выполняя последующие инкрементальные бжкапы мы можем узнать что забэкапили на предыдущем, т е точка отсчета все равно полный бэкап)?В Firebird инкрементальный бекап N+1-го уровня - дельта от N-го уровня. 0-ой уровень - полный бекап ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 19:02 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Позвольте подытожить: В БД с журналами принудительно записывается журнал. На другой диск. В результате после смерти базы журнал накатывается на последний бэкап, что занимает время. В БД без журналов принудительно записывается сама база. В случае с shadow - на оба диска. В результате после смерти базы мы сразу имеем ее полную копию. В итоге вторые БД чуть медленее в работе, но быстрее в восстановлении. Что и подтверждается всей вышетекущей дискуссией. Если я чего упустил - поправьте. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 21:38 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Ошибка в том, что базы данных с журналами позволяют: 1. Log Shipping - доставка лога на другой SQL Server (в том числе, и другой физически сервер) 2. Mirroring - зеркалирование баз данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 22:15 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
Aron 1. Log Shipping - доставка лога на другой SQL Server (в том числе, и другой физически сервер) Да, репликация чуть проще реализуется. Т.е. маленький плюс к масштабированию. Увы, фича не эксклюзивна. Без логов она работает ничуть не хуже. AAron 2. Mirroring - зеркалирование баз данных. А это-то как связано с журналом? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 22:24 |
|
||
|
PostgreSQL 8.2: сравнения с Oracle и MS SQL
|
|||
|---|---|---|---|
|
#18+
nvladShadow позволяет иметь не меньшую степень надёжности Если из-за ошибок пользователя, администратора или приложения будут потеряны данные - Shadow не поможет. А журнал транзакций позволит восстановить состояние БД до нужного момента времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 22:35 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34203754&tid=1552961]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 164ms |

| 0 / 0 |
