Сегодня рассмотрим второй способ восстановления базы данных клиент-банка ОАО «Белинвестбанк», этот способ уже будет по сложнее чем первый, но и с ним многие справятся, а вот третий уже будет сложным. И так приступим.
Если первый способ не подошел по каким-то неведомым нам причинам, то берем в руки более тяжелое оружие и приступаем.
- Подготовка к восстановлению
1.1. Необходимо закрыть все копии программы клиент-банк, закрыть сервера программы. Далее необходимо создать копию папки с установленной программой клиент-банк.
- Преобразование файла “Homebank.log” в sql-запрос
2.1. Приложение Sybase Central 3 запускается без инсталляции. Исполняемый файл – scview.exe (рис. 1).
![Рис. 1](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_7-300x241.jpg)
2.2. После запуска программы подключаем модуль Adaptive Server Anywhere, который находится в динамически подключаемой библиотеке scasany6.dll (рис. 2). Для этого заходим в пункт меню “Tools \ Plug-ins \ Change \ Other \ Browse”.
![Рис. 2](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_6-300x256.jpg)
2.3. Подтверждаем все последующие выборы и в Sybase Central’е получаем пункт меню “Adaptive Server Anywhere”, в котором есть “Servises” и “Utilities”, в утилитах пункт меню нужный для выполнения работы называется “Translate Log”.
2.4. Выполняем запуск утилиты “Translate Log” и по запросу указываем путь к файлу .\BASE\homebank.log (рис. 3).
![Рис. 3](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_5-300x238.jpg)
2.5. Указываем, куда положить sql-запрос (рис. 4).
![Рис. 4](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_4-300x239.jpg)
2.6. Продолжаем для всех запросов и всех пользователей (рис. 5).
![Рис. 5](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_3-300x236.jpg)
2.7. Пропускаем внутренние запросы. На всех последующих выборах по умолчанию подтверждаем (рис. 6). В итоге получаем файл “Homebank.sql”.
![Рис. 6](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_2-300x230.jpg)
- Выполнение sql-запроса
3.1. Удаляем нерабочую базу данных (файлы .\BASE\homebank.db и .\BASE\homebank.log). Далее необходимо в инсталляции программы найти папку “HBBackup”, в ней должен содержаться архив “Homebank.rar”, заходим в архив и там в каталоге «BASE» берем чистую базу homebank.db (либо найти этот же файл в резервной копии программы) и подкладываем в наш каталог.
3.2. Запускаем сервер базы данных. Для этого заходим “Пуск \ Программы \ Системные Технологии \ Электронные платежи \ {Локальный сервер SQL Anywhere \ Сетевой сервер SQL Anywhere}”, или запускаем исполняемый файл “dbeng6.exe” в каталоге .\Base со следующими параметрами (рис. 7).
![Рис. 7](http://www.mytravel.by/wp-content/uploads/restore-db-klient-bank-belinvestbank_1-300x95.jpg)
3.3. Выполнение SQL-скрипт файла. Далее выполняем ‘Пуск’, ‘Выполнить’ (можете, по-своему, использовать пакетные файлы, файловые менеджеры, важен рабочий каталог сессии операционной системы и параметры, передаваемые приложению при запуске). Выполняем команду “D:\HomeBank\base\ISQL.EXE -S HBServer -P sql -U DBA -D HOMEBANK -i homebank.sql -o homebank_l”. Эту строку можно скопировать прямо из этого текста для локальной версии программы. При других именах сервера и базы заменить на них HBServer и HOMEBANK, соответственно. Параметры утилиты Isql следующие: -s – имя сервера базы данных; -p – пароль для пользователя с правами администратора; -u – пользователь с правами администратора; -d – имя базы данных клиента; -i – входящий sql-запрос (в данном случае файл “homebank.sql”); -o – файл временных транзакций.
На экране будет отображаться черное окно приложения ISQL, но скрипт на самом деле выполняется. Внутри папки BASE будет появляется лог-файл выполнения запросов homebank_l и временный файл произвольного имени с текстом очередного выполняемого запроса. Можно видеть изменение размера HOMEBANK_L.
По завершении запросов скрипта исчезает черное окно приложения ISQL и перестает меняться размер HOMEBANK_L. База заполнена.
Учтите что для больших БД может понадобится много времени, при базе объемом примерно в 500 Мб, может понадобится часа 3-4 или больше, будет зависеть от мощности компьютера и процессора (по моим наблюдения я рекомендую запускать восстановление на компьютерах с процессором Intel, быстрее идет процесс восстановления).
3.4. Далее останавливаем сервер базы данных и запускаем программу клиент-банк. После запуска проверяем счета, запросы, параметры паспорта, криптозащиты и почты.
Если всё в порядке, то восстановление базы данных выполнено.
После процедуры восстановления необходимо сделать резервную копию файла базы данных “Homebank.db”, удалить файл “Homebank.log”, запустить приложение и проконтролировать его создание. В таком случае, в следующий раз, когда база данных будет повреждена, у вас будет резервная копия базы данных (файл “Homebank.db”) и файл с последующими транзакциями (“Homebank.log”).
Альтернативой данной работы является подкладывание взамен поврежденной базы данных homebank.db и лога к ней этих файлов из HBBackup\{Имя клиента в системе}\ddmmyyyy.rar.
А вообще, делайте резервное копирование перед уходом с работы и будет вам счастье.
Если справились, то хорошо, однако если работать программа стала ну очень медленно, то тогда уже придется перейти к третьему методу, иначе никак, если вы конечно хотите сохранить все предыдущие свои данные.