The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Вышла СУБД Firebird 3.0.2 с устранением опасной уязвимости"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Вышла СУБД Firebird 3.0.2 с устранением опасной уязвимости" +1 +/
Сообщение от Аноним (-), 27-Мрт-17, 15:17 
>Как то за десять лет администрирования ни разу не видел подобного

Это твои личные трудности. Объясняю на пальцах. Современный журнал это не просто один файл. Это _система_, которая может работать с файлами, а может и не работать с ними, например, журнал может быть в ОЗУ.

Журнальные файлы могут работать в режиме round-bobbin, в таком режиме транзакции пишутся по очереди, сначала в один файл, затем в другой, затем в третий, потом снова в первый. Альтернативно, журнальные файлы могут работать в режиме контрольных точек, в таком случае, в зависимости от левой пятки DBA, один (или несколько) файлов находятся в режиме RW, а остальные в RDONLY (они даже могут быть не открыты БД). И в том и другом случае обеспечивается определенный уровень надежности от сбоя -- откат произведется на самую последнюю верную транзакцию.

Поверх этого, накручивается система сжатия и архивирования журнальных файлов, т.е. посути 2й вариант выше, но предназначен для копирования журнальных файлов на внешние хосты (сервера) или внешние устройства (флешки, ленты и т.п.).

Журнальные файлы и их архивы активно применяются в современных БД по еще одной важной причине: в то время как файл БД может быть невероятно огромным, журнальные файлы (особенно в сжатом виде) весят _намного_ меньше. Стандартной практикой является фуллбэкап раз в 7-30 дней, а бэкапы журналов могут быть хоть по-часовыми (зависит от кол-ва коммитов).

Итого, сам смысл журнала никуда не девается. Это промежуточное звено между началом коммита и конечной записи его в файл БД. На основе расхождений данных и обеспечивается защита от сбоев (не 100%, т.к. диск может рассыпаться ... и без возможности восстановления). Другие технологии вроде полного бэкапа, UPS, рейды и т.п. решают _совершенно_ иные задачи (хоть и имеющие общую цель -- снизить риск утери _всех_ данных).

Поэтому, твой довод про то, что БД работает на файловом уровне не верен в корне. Если бы БД работала в raw-режиме, то ее не спасет тот же самый ресет, т.к. атомарность записи на диск не зависит от того как работает БД, а зависит от кол-ва данных, которые содержаться в транзакции. Тут-то и проявляется некомпетентность, т.к. считать что одна транзакция есть один insert это все что нужно. В сложных системах происходит десятки или даже сотни insert'ов в _одной_ транзакции. И если такая транзакция накроется, то и все insert'ы не попадут в файл БД и все будет тип-топ (т.е. не надо "до-инсерчивать" потерянные инсерты, как было бы в случае одиночных коммит=insert'ов).

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Вышла СУБД Firebird 3.0.2 с устранением опасной уязвимости, opennews, 25-Мрт-17, 23:56  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру