Архивирование только различающихся данных

Это специальный режим (задается ключом -diff) полного архивирования с одновременным восстановлением данных только в БД. Выполняется архивирование только различий оригинальной и архивной БД. Предполагается, что разархивирование производится в каталог, который уже содержит копию файлов БД, созданную lhb, или выполняется пофайловое копирование БД. После создания этой копии некоторые блоки БД могут поменяться, а некоторые будут неизменными. Вместо повторного архивирования всех данных БД lhb получает от ядра СУБД ЛИНТЕР только контрольные суммы блоков данных архивной БД. Она также высчитывает контрольные суммы блоков файлов архивируемой БД. При несовпадении контрольных сумм изменившиеся блоки архивируются. Таким образом может быть значительно снижен трафик данных, при некотором увеличении нагрузки на процессор и файловую систему. После архивирования всех различающихся файлов таблиц, системный журнал архивируется обычным образом. Это позволяет одновременно применять данный режим с инкрементным режимом и режимом ожидания.

Поскольку в данном режиме архивная БД уже существует, то в интервале от начала архивирования до его окончания она может прийти в некорректное состояние. Для исключения работы ядра СУБД ЛИНТЕР с такой БД, перед началом архивирования она приводится в непригодное для запуска СУБД ЛИНТЕР состояние – удаляются файлы системного журнала, рабочие файлы и файлы сортировки. После окончания архивирования эти файлы создаются вновь.

В случае если размер файла уменьшился или файл был удален в результате удаления таблицы, соответствующие файлы архивной БД также будут усечены или удалены.

Если БД архивируется в пустой каталог, то данный режим аналогичен режиму обычного архивирования, за исключением дополнительных накладных расходов на передачу контрольных сумм.

Необходимо различать данный режим с режимом инкрементного архивирования. При инкрементном архивировании необходимо предварительно создать полную копию архивируемой БД с контрольной точкой в БД (-startinc), после чего в архивируемую БД будет добавляться только системный журнал с накопленными изменениями. В режиме отличий контрольная точка необязательна, т.к. производится сверка не файлов системного журнала, а файлов таблиц БД.

Режим отличий может применяться совместно с инкрементным режимом. В этом случае вместо первоначального архивирования всей БД (-startinc) будет производиться архивирование только различающихся файлов таблиц. Работа с системным журналом в этих режимах осуществляется одинаково.

В режиме сохранения отличий никогда не учитываются устройства, хранимые в БД. Можно использовать только те устройства, которые указаны в переменных окружения. Это сделано с целью исключения потери файлов архивируемой БД при локальной работе.

В связи с этим необходимо быть особенно внимательным при назначении устройств при работе в режиме сохранения отличий. При неправильном указании каталога устройства размещенная в нем БД будет замещена, причем, в отличие от остальных режимов, без предварительного предупреждения и подтверждения данной операции. Это относится и к каталогам архивируемой БД (может произойти потеря информации).

В режиме сохранения отличий можно отключить компрессию ключом -nocompress. На быстрых сетях это может дать некоторое увеличение производительности, особенно при архивировании в пустой каталог.