Проект "Агбис Сервисные работы"

Установка программы

Программу можно загрузить по ссылке

http://agbis.co/download/admin_tools/agbdbadmin.zip или http://download.agbis.ru/download/admin_tools/agbdbadmin.zip

для тестирования

\\\WebDAV\AgbisShare\Agbis\_TestBuilds\Boris\agbdbadmin\agbdbadmin.exe

Папку AgbDBAdmin с программой AgbDBAdmin.exe следует разместить в папку с программами АГБИС.
Обычно это e:\Agbis\agbDBAdmin\agbDBAdmin.exe

Запуск программы

Параметры задачи могут быть заданы в файле agbDBAdmin.ini или непосредственно в командной строке.
Параметры в командной строке имеют более высокий приоритет.

Пример agbDBAdmin.ini

AliasBase="Agbis"
FirebirdNum=
CLIENT_DEP_ID=
timeout=

Если параметры не заданы, то из agbis.xml берется последняя активная запись базы данных и выполняется оптимизация.

Программа запускается от имени администратора, для того чтобы была возможность установить необходимые службы и клиенты Firebird.

Параметры задачи

Файл agbis.xml ищется в родительской папке. Если agbis.xml не найден, то нужно будет задавать параметры БД «Исходная» вручную.

  • AliasBase - алиас «Исходной» БД для поиска в списке БД agbis.xml. По умолчанию берется последняя активная БД.
  • FirebirdNum - версия Firebird для новой базы данных при конвертировании (используется только первая цифра). По умолчанию совпадает с версией «Исходной» БД
  • CLIENT_DEP_ID - номер подразделения в БД PC (client_dep_params.id). Используется для отправки отчета в PC при запуске из ReplIn. По умолчанию отчет не отправляется.
  • timeout - задержка в секундах перед выполнением основной части программы. Используется для остановки ReplIn перед обработкой БД. По умолчанию 0.

Пример команды

AgbDBAdmin.exe AliasBase="Agbis" FirebirdNum=3

Хост, порт и файл «Исходной» базы данных берутся из agbis.xml Если база данных работает под Firebird 2, то будет выполнена конвертация базы данных для работы под Firebird 3.
Если база данных работает под Firebird 3, то будет выполнена оптимизация базы данных.
Настройки выставляются как значения по умолчанию и перед выполнением операций их можно изменить.

Подключение к «Исходной» базе данных должно быть локальным, так как для выполнения операций требуется прямой доступ к файлам для переименования и копирования, а также используется режим Embedded Firebird.

Режимы работы

Для удобства пользователя добавлена возможность выбора режима работы в соответствии с уровнем его подготовки:

  • Экспресс
  • Нормальный
  • Эксперт

Режимы работы "Нормальный"

Предназначен для использования сотрудниками технической поддержки.
Предназначен для пошагового выполнения процедуры восстановления.
В частности возможно конвертирование базы данных при изменении версии Firebird.
Доступно расширенное тестирования базы данных.

При этом некоторые операции возможно выполнить в ручном режиме сторонними средствами.


Этапы выполнения

Процесс восстановления база данных проходит несколько этапов:

  1. Подготовка базы данных к восстановлению.
  2. Восстановление структуры записей базы данных.
  3. Оптимизация базы данных.
  4. Тестирование БД Новая.
  5. Возвращение в режим обслуживания пользователей.

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

  • БД Исходная
  • БД Переименованная
  • БД Копия
  • БД Новая

Кроме этого будет использоваться еще один объект, который ссылается на базу данных с данными для сверки

  • БД Эталонная

Ниже рассматривается движение базы данных по этапам восстановления

Подготовка базы данных к восстановлению

Требования:

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

Объект БД Исходная содержит параметры: имя файла, порт и др. - которые соответствуют рабочему режму базы данных, когда база данных выполняет свои основные функции, к ней подключаются пользовательские приложения.
После завершения процедуры восстановления база данных должна соответствовать этим параметрам.

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

БД Переименованная содержит параметры переименованной базы данных. По умолчанию в имени файла базы данных добавляется подчерк.
Пусть, например, БД Исходная имеет файл D:\DB\TestConv\ARM.fdb, тогда БД Переименованная будет иметь файл D:\DB\TestConv\ARM_.fdb
БД Копия содержит параметры переименованной базы данных. По умолчанию в имени файла базы данных добавляется суффикс «_clone».
Пусть, например, БД Исходная имеет файл D:\DB\TestConv\ARM.fdb, тогда БД Копия будет иметь файл D:\DB\TestConv\ARM_clone.fdb

C БД Переименованная никакие действия не выполняются. Переименование делается только с целью блокировать изменения базы данных на время восстановления и таким образом избежать потери данных при замене исходной базы данных исправленную.
Все обработки будут выполняться в БД Копия и БД Новая.

Операции выполняются на форме "Переименование и копирование базы данных"

Восстановление структуры записей базы данных

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

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

Второй этап может выполняться позже после завершения работы программы восстановления.

Все операции выполняются в БД Копия.

Операции выполняются на форме "Первичное восстановление структуры базы данных"

Оптимизация базы данных

В процессе работы данные размещаются на различных страницах в результате чего для чтения одной записи может потребоваться считывание нескольких страниц размещенных достаточно далеко друг от друга.
В момент создания бэкапа из базы данных удаляется уже неиспользуемая информация: удаленные записи, удаленные значения BLOB-полей. После восстановления базы данных размер базы может существенно сократиться, а также записи располагаются на страницах компактно. В результате быстродействие работы базы данных может возрасти в несколько раз. Для выполнения операции Backup/Restory требуется, чтобы успешно завершился предыдущий этап.

Backup делается из БД Копия программой GBAK, Restory выполняется в БД Новая другой программой GBAK.
Операция Backup/Restory формируется конвейер программ GBAK. Это позволяет сократить требуемый объем свободного места на диске, так как не создается промежуточный фал бэкапа, а сразу делается резервная копия. И дополнительно сокращается время выполнения операции.

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

Операции выполняются на форме "Оптимизация/Конвертирование"

Тестирование БД **Новая**

Во время операции Backup/Restory возможна потеря данных. Поэтому требуется проверка результата выполнения этой операции.

  • Сравнение структуры
  • Активация индексов базы данных

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

Сравнение структуры

Сейчас просто сравнивается количество объектов разного типа.

  • Сравнение количества доменов
  • Сравнение количества таблиц
  • Сравнение количества представлений
  • Сравнение количества процедур
  • Сравнение количества триггеров
  • Сравнение количества генераторов
  • Сравнение количества исключений
  • Сравнение количества UDF
  • Сравнение количества ролей
  • Сравнение количества индексов

Операции выполняются на форме "Проверка успешности оптимизации/конвертации"

Активация индексов базы данных

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

Операции выполняются на форме "Активация индексов базы данных"
Выполняются работы, которые делались через xStarter и программу «Восстановление базы данных» (RecoveryDB).

Возвращение в режим обслуживания пользователей

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

  • Если при восстановлении возникла ошибка, то в качестве БД Исходная берется БД Переименованная, то есть просто просто возвращаем к работе старую базу данных.
  • Если при восстановлении выполнен этап Восстановление структуры записей базы данных, а этап Оптимизация базы данных и дальше не выполнялись,

то в качестве БД Исходная берется БД Копия, то есть файл БД Копия переименовываем в файл БД Исходная.

  • Если при восстановлении выполнены все этапы,

то в качестве БД Исходная берется БД Новая, то есть файл БД Новая переименовываем в файл БД Исходная.

Операции выполняются на форме "Возвращение в режим обслуживания пользователей"

Режимы работы "Экспресс"

Предназначен для выполнения работ по восстановлению базы данных в режиме максимальной автоматизации.

В этом случае для работы доступна только одна форма "Экспресс восстановление"
Работа по восстановлению не требует специальных знаний по архитектуре базы данных АГБИС.
Достаточно знать в какой папке размещается файл базы данных.
Работа может выполняться, например, системными админиcтраторами.

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

Режимы работы "Эксперт"

Предназначен для использования сотрудниками технической поддержки.

Предназначен для пошагового выполнения процедуры восстановления и настройки базы данных для работы на новом компьютере.
К возможностям доступным в режиме работы «Нормальный» добавляются возможности по переключению номера подразделения, установка и настройка Firbird и др.

Для выполнения операций используются формы:

Показывает список подразделений из таблицы DEPS

Показывает параметры, которые используются при идентификации базы данных.
Позволяет изменить DEP_ID в базе данных. (Требует доработки)

Позволяет настроить службы Firebird.
Переустановить клиентов Firebird. (Требует доработки)

Дополнительная информация