среда, 20 марта 2013 г.

Резервное копирование программой OBConvert

Зачем нужен инструмент для копирования данных OBConvert.exe?

1) Импорт из баз данных предыдущих версий
При выходе новых версий Планар 16 ПО в базе данных может поменяться внутренняя структура: появляются новые таблицы, процедуры, удаляются устаревшие, вносятся другие изменения. Чтобы новый сервер мог без ошибок работать с уже накопленными данными, необходимо выполнить копирование данных  в базу с новой структурой. Это и можно сделать данным инструментом.

2) Резервное копирование
Как многие знают, база данных может быть утеряна в результате неисправности компьютера, ошибок в работе аппаратуры и программного обеспечения. Например, она может повредиться при пропадании питания компьютера. 
Поэтому важно иметь резервную копию файла базы, чтобы можно было быстро восстановить работоспособность сервера в случае аварии. Причем, простое копирование файла базы недопустимо, так как в таком случае база повреждается (правда, можно остановить все программы, подключенные к базе, остановить сервер Firebird, а потом просто скопировать файл). Для создания копии нужно воспользоваться или штатным механизмом копирования Firebird (gbak.exe), или использовать данный инструмент.

В чем преимущество копирования через данную программу? При использовании штатного механизма копирования базы имеем в результате копию (*.fbk), для превращения которой в рабочую базу (*.fdb) требуется процедура восстановления (restore). То-есть, время готовности копии почти удваивается. При копировании через OBConvert.exe получаем сразу готовую базу *.fdb.

3) Улучшение структуры базы
База в процессе работы увеличивает свой размер, и в ней происходят разные явления, ухудшающие ее работу. Например, устаревает статистика индексов, накапливаются ошибки структуры и т.п.. Поэтому, периодически надо делать резервное копирование и восстановление в новую базу (что долго). DataCopy.exe позволит улучшить структуру базы данных, скопировав ее в новый пустой файл. Для наибольшего эффекта, копировать нужно в пустую базу, небольшого размера, где еще не накопился "мусор". Желательно иметь наготове пустой файл базы, и перед копированием заменять файл - получатель этим пустым файлом. Копировать каждый раз в тот же самый файл нежелательно, хотя и допустимо.  


4) Объединение двух баз

Иногда нужно объединить две базы в одну, в этом тоже поможет данная программа. В настройках указывается первая и вторая исходные базы, и все данные объединяются в один файл. При объединении важно, чтобы сетевые адреса объектов в базах не пересекались, иначе
пересекающиеся по адресу объекты будут проигнорированы.
 Есть ограничение: для доступа ко всем базам сейчас один и тот же пароль используется (вводится однократно при запуске копирования), что плохо. Чуть попозже пароль будет вводится отдельно для каждой базы.


5) Удаление устаревших данных

При копировании можно задать период, за какой переносить историю. Таким образом, можно избавиться от устаревших событий в базе.


6) Переход с предыдущих версий СУБД Firebird на версию 2.5

Последние версии  Планар16 ПО (2.5.7 и выше) работают с СУБД Firebird 2.5, ранее использовалась версия 1.5.
Firebird 2.5 не сможет корректно работать с имеющейся старой базой 1.5 без ее небольшой обработки (нужно сделать резервную копию  базы на Firebird 1.5,  потом восстановить ее в Firebird 2.5 (с переводом текстовых строк в Unicode)).
 
Более простой способ перевести базу данных на новый движок версии 2.5 - копирование данных с сервера предыдущей версии на сервер текущей. Для этого, временно установите последнюю версию Планар 16 ПО на любом компьютере, соединенном со старым пультом в локальную сеть. Укажите в программе копирования в качестве исходной базы старую версию пульта (IP адрес старого пульта: .....\Планар 16\Base\cupola.fdb). Укажите в качестве результирующей базу в новой версии пульта (IP адрес нового  пульта: .....\Планар 16\Base\cupola.fdb).
Проведите копирование, и на компьютере с последней версией пульта получите базу нового формата (скопируйте ее, она понадобится). Проверьте, что все объекты на месте, все настройки правильные. Теперь можно удалить старую версию пульта, окончательно установить новую.
После этого замените базу конвертированной.

Можно, конечно, не делать конвертирование, и оставить СУБД Firebird 1.5. Но, в этом случае, при установке Планар 16 ПО 2.5.7 откажитесь от установки Firebird 2.5 ( к моменту установки 1.5 должна быть установлена). 

Как пользоваться?

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

После запуска программы на экране откроется окно:



 Исходная база 1

Первым делом надо указать путь к базе данных, которую будем копировать ("Исходная база"). Если программа OBConvert лежит в папке с базой, путь к базе настраивать не нужно, и после запуска исходная база и так уже правильно указана.
Путь к базе состоит из  имени сервера (или его IP адреса) и имени файла базы. Введите IP адрес или имя компьютера в первое окошко. Если и база, и программа находятся на одном компьютере,  вводим туда "127.0.0.1", как на рисунке (можно, конечно, ввести и сетевое имя компьютера).  Во второе окошко вводим путь к базе cupola.fdb, можно воспользоваться кнопкой "..." и указать файл с помощью диалога выболра файла.


Если база и программа копирования находятся на разных компьютерах, узнаем сетевое имя или адрес компьютера, записываем правильный путь к файлу базы cupola.fdb. Вводим имя сервера и путь к базе (тут не получится воспользоваться диалогом выбора файла). Аккуратно вводим путь к файлу базы данных, переписав его с компьютера, где лежит база.  


 Исходная база 2

Указываем базу 2, если надо объединить две базы в одну. Обычно этого не требуется, тогда оставляем эти поля пустыми. Путь к базе указывается так-же, как и для первой исходной базы.


Новая база

Это база, куда копируется исходная (исходные) база(базы). Программа копирования сама не создает результирующей базы, поэтому, необходимо указать уже существующий файл. Это должен быть файл  той же версии, что и исходные базы (или более новый). В архиве с программой OBConvert, как раз, есть пустой экземпляр базы,  который и надо использовать в большинстве случаев. Итак, нажмите кнопку "..." новой базы, зайдите в папку с программой и укажите файл CupolaNew.fdb. Все, настройка результирующей базы выполнена.

Что делать, если нет файла новой базы, или при копировании в него возникает ошибка?
Можно использовать копию исходной базы (перед копированием, обязательно выключаем все программы Планар 16 ПО)

Будьте аккуратны при указании новой базы. База, которую указали как "Новую" очищается, данные, имеющиеся в ней, стираются при копировании, и заменяются данными из исходных баз! Так что, не укажите случайно файл, который содержит нужные данные, иначе они будут утеряны.
Исходная база 1 и Исходная база 2 никак не изменяются и не могут быть повреждены при копировании. 



Период времени

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

Выбор списка таблиц

С помощью списка таблиц, можно выбрать информацию, которая будет перенесена в новую базу. Обычно, нужно выбирать таблицы, отмеченные галочками на рисунке.
Пояснение по назначению таблиц можно получить, указав мышкой на галочку.

Копирование

Для старта копирования нажмите кнопку Копировать. Появится окно с параметрами подключения к базе. Тут нужно ввести пароль пользователя SYSDBA в поле Password.
Если все в порядке, начнется копирование. Если появляются сообщения об ошибке, это означает, что настройки путей к базам или пароль неправильный. Проверьте настройки баз и повторите попытку, введя правильный пароль от программы администрирования.
Окно регистрации появляется для каждой базы данных.
После успешной регистрации запускается процесс копирования.  Прогресс копирования отображается в окне программы.


Что делать, если при копировании возникают ошибки

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


Где взять программу?

Взять программу можно здесь:
Ссылка для загрузки программы (12 МБ)

Также она входит в дистрибутив Планар 16 ПО, и после установки лежит в папке с базой. 

вторник, 12 марта 2013 г.

Резервное копирование базы программой Fibs

 Установка

Дистрибутив программы можно взять здесь: http://www.talatdogan.com/fibs.htm
Для установки запустите fibs202setup.exe. Далее, следуйте указаниям программы установки. Проверьте, что галочка "Install Fibs as service" включена, в этом случае программа будет установлена как сервис Windows.

Запуск

Программа запускается как сервис, при старте компьютера. При наступлении запланированного момента она выполняет копирование.
Чтобы произвести настройки задания копирования, запустить копирование или чтобы выполнить другие задачи, необходимо открыть главное окно программы. После установки в меню Пуск появляется папка"FIBS Firebird-Interbase Backup Scheduler 2.0.2" в которой лежит ярлык для запуска.Открыть главное окно можно через этот ярлык. Также, на панели задач около системных часов имеется соответствующий значок, щелкнув на который можно вызвать программу на экран.
Так выглядит главное окно:














Вверху окна кнопки меню, а ниже находится список с задачами копирования. Каждая строка - одно самостоятельное задание на копирование. Если строка помечена красным квадратиком - задание не активно (не будет автоматически выполняться).

Предварительная настройка

Нажмите кнопку Prefs чтоб проверить настройки программы.  Откроется окно

 













 Здесь надо указать папку, где лежит утилита Firebird для копирования базы. Обычно она лежит в папке Firebird\Firebird_x\Bin. Если файла gbak.exe нет в данной папке, придется запустить программу установки и поставить утилиты командной строки (или скопировать с другого компьютера нужные файлы).
Укажите также папку, где будут лежать файлы лога (журнала программы).
Можно также указать параметры SMTP сервера, если хотите получать уведомления по почте о копировании.



Настройка задания на копирование

Чтобы наша база автоматически копировалась, нужно добавить новое задание в список. Для этого зайдите в меню Task\New task (новая задача). Появится окно настроек:















Введите имя, под которым задача будет фигурировать (оно может быть любое, главное, чтоб понятно было, что это).

Затем, укажите путь к базе данных. Можно выбрать файл через диалог открытия файла, если база лежит на этом же компьютере. В этом случае поставьте галку local  и можно будет нажать кнопку для вызова диалога. Или же аккуратно укажите правильный путь к базе вручную, введя текст в окно Database. Не забудьте добавить к пути адрес сервера. Путь к базе вводится в формате Сервер:Путь к базе данных. В примере указан путь:
localhost:C:\Program Files\Planar\Планар 16\Base\CUPOLA.FDB. Здесь localhost - сетевое имя сервера (компьютера, где установлен охранный сервер). Остальная часть строки -
C:\Program Files\Planar\Планар 16\Base\CUPOLA.FDB - стандартный путь к файлу базы.
Вы, конечно же, вводите свои параметры, можно подглядеть их  в файле Base\Settings.ini.

Далее, указываем папку, куда программа положит копию базы BackupDir.

Плюс еще можно указать 3 места для размещения дополнительных копий. В примере используется сетевое хранилище (NAS), связь с которым производится по протоколу FTP. Указана строка ftp://user:password@website.com/backupdir. Это означает, что программа будет размещать копию в папке backupdir на сетевом хранилище website.com (это сетевое имя нашего вымышленного NAS, Вы ставите имя своего сервера). При подключении к сетевому хранилищу потребуется авторизация, поэтому мы указываем имя пользователя и пароль для доступа к нему (для примера user и password).  Можно, конечно, дополнительные копии не делать, но надежнее разместить несколько копий на разных носителях (например, на 2 разных локальных дисках и на сетевом хранилище).

Введите имя пользователя SYSDBA и его пароль, чтобы программа могла подключиться к базе.

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

Переключитесь на закладку Backup Options и введите дополнительные опции, как показано на рисунке:



Здесь важно  указать, что копию надо сжать в архив (Create GZIP Backup). И указать, что надо хранить 3 последние копии, и удалять прочие (см. правый нижний угол картинки). Дополнительно можно перед копированием проверить базу на ошибки (validate database before backup), но это длительная операция,  поэтому в примере она отключена.

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

Нажмите ОК, и задание будет добавлено. Тут же можно его протестировать. нажав кнопку Backup now. Для проверки работы задания рекомендую указывать в качестве базы не рабочую базу, а небольшую по объему базу (например, пустая база CupolaNew.fdb в папке с рабочей базой). Это позволит не ждать долго результатов, а убедиться что все работает как надо очень быстро. Если же указать многогигабайтную базу, результатов придется ждать долго, а потом окажется, что не ту папку указали и т.п.

Активация задания
 
 Если все настроено правильно, база копируется, копии появляются в нужных папках, в логе программы нет ошибок. Тогда можно активировать задание и проверить работу копирования в реальном режиме. Для активации задания выделите строку с заданием и найдите в меню Task соответствующую команду.

Недостатки программы

Программа делает ежедневное копирование. Нет возможности настроить копирование в определенный день. Если база большая, ежедневное копирование может быть проблемой (доп. нагрузка).  Что-же, это не единственная подобная программа, можно подыскать другую.