Архивирование таблиц (базы данных)
Утилита архивирования ЛИНТЕР - lhb позволяет сохранять (со сжатием) базы данных целиком/выборочно.
При этом, работа lhb не останавливает работу других пользователей СУБД. lhb делает просто “сжатый снимок” базы данных на какой-то момент времени.
Таким образом, поврежденная база данных может быть всегда восстановлена из последнего lhb-архива.
lhb - мощная программа, обладающая возможностями, которые облегчат пользователю организацию необходимого алгоритма архивирования.
Здесь искушенный пользователь обнаружит следующие возможности:
Особый интерес, конечно же, представляет определение графика или сценария архивирования с помощью языка BSL, наиболее важными возможностями которого являются:
Сам сценарий или график на языке BSL составляет пользователь (с правами администратора). Здесь могут быть указаны периодичность и порядок автоматических действий архиватора, например:
Файл сценария может содержать определение периодичности действий (ежедневно + время, еженедельно + день недели + время, ежемесячно + число месяца + время), а также особенные даты, выходящие за пределы периодичности (когда требуется или, наоборот, исключено действие).
Например:
Variables: NUM = 1; Rights: Everyday ( time = ‘12:00’ ) { if ( CWEEKDAY() == “Sun” ) { /* New archive on Sunday */ move (FILENAME + TOSTR(NUM) + “.lhb” , “c:\arc” ); NUM =NUM +1; backup ( “s –u “ +NAME +”/” +PASSWORD + “ –f “ +FILENAME +TOSTR(NUM) +”.lhb –startinc” ); } else /* Incremental backup */ backup ( “s –u “ + NAME + ”/” + PASSWORD +“ –f “ + FILENAME + TOSTR(NUM) + ”.lhb –inc” ); Exception: /* for ‘everyday’ */ print(“Error=” +TOSTR(СERROR) +“ , LinError=” +TOSTR(LINERROR) +“ , SysError=” +TOSTR(SYSERROR) ); stop; } Special: before { /* just after the start */ print ( “Start backup system” ); backup(“s –u “ + NAME + ”/” + PASSWORD +“ –f “ + FILENAME + TOSTR(NUM) + ”.lhb –startinc” ); } after { /* after ‘stop’ or Ctrl-C */ print ( “Stop backup system” ); if ( ERROR != 0 ) logprint ( “Error present: “ + TOSTR(ERROR) ); } iferr { /* global */ print(“Error =” + TOSTR(СERROR) +“ , LinError=” +TOSTR(LINERROR) +“ , SysError=” +TOSTR(SYSERROR) ); stop; }