мета-данные страницы
  •  

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dba_agbdbadmin [22.09.2021 13:22]
Анисютин
dba_agbdbadmin [24.10.2022 10:28] (текущий)
gileva_ms
Строка 1: Строка 1:
 ====== Проект "​Агбис Сервисные работы"​ ====== ====== Проект "​Агбис Сервисные работы"​ ======
  
-Программу можно ​взять по адресу +===== Установка программы =====  
 + 
 +Программу можно загрузить по ссылке\\  
 +<​code>​ 
 +http://​agbis.co/​download/​admin_tools/​agbdbadmin.zip или http://​download.agbis.ru/​download/​admin_tools/​agbdbadmin.zip 
 +</​code>​ 
 +для тестирования\\
 <​code>​ <​code>​
 \\\WebDAV\AgbisShare\Agbis\_TestBuilds\Boris\agbdbadmin\agbdbadmin.exe \\\WebDAV\AgbisShare\Agbis\_TestBuilds\Boris\agbdbadmin\agbdbadmin.exe
 </​code>​ </​code>​
-{{:​pasted:​20210922-131954.png}}\\ 
  
-{{:pasted:20210922-132014.png}}\\+Папку AgbDBAdmin с программой AgbDBAdmin.exe следует разместить в папку с программами АГБИС.\\ 
 +Обычно это **e:\Agbis\agbDBAdmin\agbDBAdmin.exe**\\
  
-{{:​pasted:​20210922-132033.png}}\\+===== Запуск программы ===== 
  
 +Параметры задачи могут быть заданы в файле **agbDBAdmin.ini** или непосредственно в командной строке.\\
 +Параметры в командной строке имеют более высокий приоритет.\\
  
-Предназначен для выполнения следующих операций: +Пример **agbDBAdmin.ini**\\ 
-  ​восстановления базы данных +<​code>​ 
-  ​конвертации базы данных при изменении версии Firebird +AliasBase="​Agbis"​ 
-  * тестирования базы данных+FirebirdNum= 
 +CLIENT_DEP_ID= 
 +timeout= 
 +</​code>​
  
 +Если параметры не заданы,​ то из agbis.xml берется последняя активная запись базы данных и выполняется оптимизация.\\
  
-В левой колонке перечислен список работ обычно ​выполняемых при восстановлении базы данных.\\ +Программа запускается ​от имени администратора, для того чтобы ​была ​возможность установить необходимые службы и клиенты ​Firebird.\\
-Для удобства ​отдельные работы выполняются в отдельных формах.\\+
  
-{{:​pasted:​20210426-144527.png}}\\+==== Параметры задачи ====
  
-===== Формы ​===== +Файл agbis.xml ищется в родительской папке. Если agbis.xml не найден,​ то нужно будет задавать параметры БД "​Исходная"​ вручную.\\
  
-  * [[:​dba_TFormDBCopy|Форма "Копирование баз данных"​]]\\ +  * **AliasBase** - алиас ​"Исходной"​ БД для ​поиска в списке БД agbis.xml. По умолчанию берется ​последняя активная БД. 
-Используется ​для  +  ​* **FirebirdNum** ​версия Firebird для ​новой базы данных ​при конвертировании (используется только первая цифра). По умолчанию совпадает с версией "​Исходной" ​БД 
-  - переименования "​Рабочей" ​базы данных в "​Исходную" для того чтобы обеспечить монопольный доступ к базе данных, +  ​* **CLIENT_DEP_ID** ​номер подразделения ​в БД PC (client_dep_params.id). Используется для отправки ​отчета в PC при ​запуске из ReplIn. По умолчанию отчет не отправляется. 
-  - создания "​Клона"​ - копии "​Исходной" ​базы данных,​ +  * **timeout** - задержка в секундах ​перед выполнением основной части программы. Используется для остановки ReplIn перед обработкой БД. По умолчанию 0.
-  - возращения ​абочей" базы данных ​после завершения работ по восстановлению (переименования "Исправленной"​ или "Исходной" ​базы в "Рабочую" базу данных.+
  
-  * [[:​dba_TFormDBFirstAid|Форма "Первичное восстановление структуры базы ​данных"]]\\ +Пример ​команды\\ 
-Исправление ошибок в структуре ​"Клона" ​базы данных с помощью программ Surgeon FirebirdFirstAid и GFIX+<​code>​ 
 +AgbDBAdmin.exe AliasBase="Agbis" ​FirebirdNum=3 
 +</​code>​
  
-  ​* [[:dba_TFormDBBackup|Форма "​Оптимизацияонвертирование"​]]\\ +Хост, порт и файл ​**"​Исходной"​** базы данных берутся из agbis.xml  
-Выполняется программой GBAK операции Backup/​Restory ​+Если база данных работает под Firebird 2, то будет выполнена конвертация базы данных для работы под Firebird 3.\\ 
 +Если база данных работает под Firebird 3, то будет выполнена оптимизация базы данных.\\ 
 +Настройки выставляются как значения по умолчанию и перед выполнением операций их можно изменить.\\ 
 + 
 +<alert info> 
 +Подключение к **"​Исходной"​** базе данных должно быть локальным,​ так как для выполнения операций требуется прямой доступ к файлам для  
 +переименования и копирования,​ а также используется режим Embedded Firebird.\\ 
 +</​alert>​ 
 + 
 +===== Режимы работы =====  
 + 
 +Для удобства пользователя добавлена возможность выбора режима работы в соответствии с уровнем его подготовки:​\\ 
 +  * Экспресс 
 +  * Нормальный 
 +  * Эксперт 
 + 
 +===== Режимы работы "​Нормальный"​ =====  
 + 
 +Предназначен для использования сотрудниками технической поддержки.\\  
 +Предназначен для пошагового выполнения процедуры восстановления.\\ 
 +В частности возможно конвертирование базы данных при изменении версии Firebird.\\ 
 +Доступно расширенное тестирования базы данных.\\ 
 + 
 +При этом некоторые операции возможно выполнить в ручном режиме сторонними средствами.\\ 
 + 
 +{{:​dba_agbdbadmin_tformmain_detail.png}}\\ 
 + 
 +==== Этапы выполнения ==== 
 + 
 +Процесс восстановления база данных проходит несколько этапов:​ \\ 
 +  - Подготовка базы данных к восстановлению.\\ 
 +  - Восстановление структуры записей базы данных.\\ 
 +  - Оптимизация базы данных.\\ 
 +  - Тестирование БД **Новая**.\\ 
 +  - Возвращение в режим обслуживания пользователей.\\ 
 + 
 +В процессе восстановления будут использоваться разные файлы базы данных.  
 +Для того чтобы отслеживать эти изменения создаются объекты с параметрами баз данных,​ которые будем называть  
 + 
 +  * БД **Исходная** 
 +  * БД **Переименованная** 
 +  * БД **Копия** 
 +  * БД **Новая** 
 +Кроме этого будет использоваться еще один объект,​ который ссылается на базу данных с данными для сверки \\ 
 +  * БД **Эталонная** 
 + 
 +Ниже рассматривается движение базы данных по этапам восстановления 
 + 
 +=== Подготовка базы данных к восстановлению === 
 + 
 +Требования:​ 
 +  * Требуется гарантировать возвращение базы данных в рабочее состояние.\\ 
 +  * Так как в результате процедур восстановления база данных может быть разрушена,​ то перед восстановлением должна обязательно быть сделана резервная копия.\\ 
 +  * В момент выполнения процедур восстановления база данных должна работать в монопольном режиме,​ чтобы исключить конфликты обработки записей.\\ 
 + 
 +Объект БД **Исходная** содержит параметры:​ имя файла, порт и др. - которые соответствуют рабочему режму базы данных,​ когда база данных выполняет свои основные функции,​ к ней подключаются пользовательские приложения.\\ 
 +После завершения процедуры восстановления база данных должна соответствовать этим параметрам.\\ 
 + 
 +Для гарантии восстановления рабочего режима базы данных и обеспечения монопольного доступа выполняется  
 +отключение всех пользователей,​ переименование файла базы данных и создание копии файла базы данных.\\ 
 + 
 +БД **Переименованная** содержит параметры переименованной базы данных. По умолчанию в имени файла базы данных добавляется подчерк.\\ 
 +Пусть, например,​ БД **Исходная** имеет файл D:​\DB\TestConv\ARM.fdb,​ тогда БД **Переименованная** будет иметь файл D:​\DB\TestConv\ARM_.fdb\\ 
 +БД **Копия** содержит параметры переименованной базы данных. По умолчанию в имени файла базы данных добавляется суффикс "​_clone"​.\\ 
 +Пусть, например,​ БД **Исходная** имеет файл D:​\DB\TestConv\ARM.fdb,​ тогда БД **Копия** будет иметь файл D:​\DB\TestConv\ARM_clone.fdb\\ 
 + 
 +C БД **Переименованная** никакие действия не выполняются. Переименование делается только с целью блокировать изменения базы данных на время восстановления и  
 +таким образом избежать потери данных при замене исходной базы данных исправленную.\\  
 +Все обработки будут выполняться в БД **Копия** и БД **Новая**.\\ 
 + 
 +Операции выполняются на [[:dba_TFormDBCopy_Prepare|форме "​Переименование и копирование базы данных"]]\\ 
 + 
 +=== Восстановление структуры записей базы данных === 
 + 
 +В процессе работы при аварийном отключении питания,​ при появлении физических дефектов на жестком диске или по другим причинам могут теряться записи.  
 +База данных продолжает работать однако происходит потеря данных и ее целостность нарушается. Это рано или поздно приводить к потере доступа и к остальным данным.  
 +Поэтому нужно своевременно устранять эти ошибки. Часть ошибок может быть устранена в автоматическом режиме. 
 +Однако ​потерянные записи таким образом восстановить невозможно. Поэтому восстановление выполняется в два этапа:​ 
 +  - добавляются фиктивные записи,​ для того чтобы можно было завершить процедуры восстановления и оптимизации. При этом составляется список документов, которые требуют восстановления.\\ 
 +  - исправляются ​ испорченные документы вручную на основании бумажных документов или из более ранних резервных копий, которые подключаются как БД **Эталонная**. 
 +Второй этап может выполняться позже после завершения работы программы восстановления.\\ 
 + 
 +Все операции выполняются в БД **Копия**.\\ 
 + 
 +Операции выполняются на [[:​dba_TFormDBFirstAid|форме "​Первичное восстановление структуры базы данных"]]\\ 
 + 
 +=== Оптимизация базы данных === 
 + 
 +В процессе работы данные размещаются на различных страницах в результате чего для чтения одной записи может потребоваться считывание нескольких страниц  
 +размещенных достаточно далеко друг от друга.\\ 
 +В момент создания бэкапа из базы данных удаляется ​уже неиспользуемая информация:​ удаленные записи,​ удаленные значения BLOB-полей. 
 +После восстановления базы данных размер базы может существенно сократиться,​ а также записи располагаются на страницах компактно. 
 +В результате быстродействие работы базы данных может возрасти в несколько раз. 
 +Для выполнения операции Backup/​Restory требуется,​ чтобы успешно завершился предыдущий этап.\\ 
 + 
 +**Backup** делается из БД **Копия** ​программой GBAK, **Restory** выполняется в БД **Новая** другой программой GBAK.\\ 
 +Операция Backup/​Restory формируется конвейер программ GBAK. Это позволяет сократить требуемый объем свободного места на диске, так как не создается промежуточный фал бэкапа,​ а сразу делается резервная копия. 
 +И дополнительно сокращается время выполнения операции.\\ 
 + 
 +Есть возможность для операции **Backup** использовать одну версию Firebird, а для **Restory** другую версию Firebird.\\ 
 +В этом случае получится конвертирование базы данных под новую версию Firebird.\\  
 +В этом случае есть особенность - нужно переключить работу приложений на новую версию Firebird.\\ 
 + 
 +Операции выполняются на [[:​dba_TFormDBBackup|форме "​Оптимизация/​Конвертирование"​]]\\ 
 + 
 +=== Тестирование БД **Новая** === 
 + 
 +Во время ​операции Backup/​Restory ​возможна потеря данных. Поэтому требуется проверка результата выполнения этой операции.\\ 
 +  * Сравнение структуры 
 +  * Активация индексов базы данных 
 + 
 +Для проверки выполняется сравнение БД **Новая** и БД **Эталонная**\\ 
 +В качестве БД **Эталонная** по умолчанию используется БД **Переименованная**,​ то есть фактически БД **Исходная**.\\ 
 +Однако можно заменить БД **Переименованная** на любую другую.  
 + 
 +== Сравнение структуры == 
 + 
 +Сейчас просто сравнивается количество объектов разного типа. 
 + 
 +  * Сравнение количества доменов 
 +  * Сравнение количества таблиц 
 +  * Сравнение количества представлений 
 +  * Сравнение количества процедур 
 +  * Сравнение количества триггеров 
 +  * Сравнение количества генераторов 
 +  * Сравнение количества исключений 
 +  * Сравнение количества UDF 
 +  * Сравнение количества ролей 
 +  * Сравнение количества индексов
  
 +Операции выполняются на [[:​dba_TFormDBVerify|форме "​Проверка успешности оптимизации/​конвертации"​]]\\
   * [[:​dba_TFormDBVerify|Форма "​Проверка успешности оптимизации/​конвертации"​]]\\   * [[:​dba_TFormDBVerify|Форма "​Проверка успешности оптимизации/​конвертации"​]]\\
-Сравниваются количество доменов,​ таблиц,​ представлений,​ процедур,​ триггеров,​ генераторов,​ исключений,​ ролей, UDF, индексов в "​Исходной"​ и "​Исправленной"​ базах данных. 
  
-  ​* [[:​dba_TFormDBIndexes|Форма "​Активация индексов базы данных"​]]\\+== Активация индексов базы данных ==  
 + 
 +В момент оптимизации базы данных часть индексов может не включится. Это может произойти,​ например,​ из-за потерянных записей и, как следствие,​ нарушении целостности базы данных.\\ 
 +Запускается процедура включения всех индексов БД **Новая**.\\ 
 + 
 +Операции выполняются на [[:​dba_TFormDBIndexes|форме "​Активация индексов базы данных"​]]\\
 Выполняются работы,​ которые делались через xStarter и программу «Восстановление базы данных» (RecoveryDB). Выполняются работы,​ которые делались через xStarter и программу «Восстановление базы данных» (RecoveryDB).
  
-  * [[:​dba_TFormFirebird|Форма "​Подразделения"​]]\\ +=== Возвращение в режим обслуживания ​пользователей ​===
-Показывает список подразделений из таблицы DEPS+
  
 +Для того чтобы база данных могла отвечать на запросы пользователей нужно восстановить базу данных указанную в объекте БД **Исходная**.\\
 +Восстановление выполняется в зависимости от результатов выполнения процедур восстановления.\\
 +  * Если при восстановлении возникла ошибка,​ то в качестве БД **Исходная** берется БД **Переименованная**,​ то есть просто просто возвращаем к работе старую базу данных.\\
 +  * Если при восстановлении выполнен этап **Восстановление структуры записей базы данных**,​ а этап **Оптимизация базы данных** и дальше не выполнялись, ​
 +    то в качестве БД **Исходная** берется БД **Копия**,​ то есть файл БД **Копия** переименовываем в файл БД **Исходная**.\\
 +  * Если при восстановлении выполнены все этапы, ​
 +    то в качестве БД **Исходная** берется БД **Новая**,​ то есть файл БД **Новая** переименовываем в файл БД **Исходная**.\\
 +
 +Операции выполняются на [[:​dba_TFormDBCopy|форме "​Возвращение в режим обслуживания пользователей"​]]\\
 +
 +
 +===== Режимы работы "​Экспресс"​ ===== 
 +
 +Предназначен для выполнения работ по восстановлению базы данных в режиме максимальной автоматизации.\\
 +{{:​dba_agbdbadmin_tformmain_express.png}}\\
 +В этом случае для работы доступна только одна форма [[:​dba_TFormExpressRecovery| "​Экспресс восстановление"​]]\\
 +Работа по восстановлению не требует специальных знаний по архитектуре базы данных АГБИС.\\
 +Достаточно знать в какой папке размещается файл базы данных.\\
 +Работа может выполняться,​ например,​ системными админиcтраторами.\\
 +<alert info>
 +Если повреждения оказываются более серьезными и в автоматическом режиме их исправить не удается, ​
 +то система будет возвращена в состояние до момента запуска восстановления.\\
 +</​alert>​
 +В этом случае рекомендуется обратится в отдел технической поддержки АГБИС для проведения восстановления.\\
 +Если будут предоставлены журналы выполнения восстановления,​ то процесс выяснения проблем в базе данных и самого восстановления займет меньше времени.\\
 +
 +===== Режимы работы "​Эксперт"​ ===== 
 +
 +Предназначен для использования сотрудниками технической поддержки.\\ ​
 +
 +Предназначен для пошагового выполнения процедуры восстановления и настройки базы данных для работы на новом компьютере.\\
 +К возможностям доступным в режиме работы "​Нормальный"​ добавляются возможности по переключению номера подразделения,​ установка и настройка Firbird и др.\\
 +{{:​dba_agbdbadmin_tformmain_Expert.png}}\\
 +
 +Для выполнения операций используются формы:​\\ ​
 +  * [[:​dba_TFormFirebird|Форма "​Подразделения"​]]\\
 +Показывает список подразделений из таблицы DEPS\\
   * [[:​dba_TFormFirebird|Форма "​Идентификация базы данных"​]]\\   * [[:​dba_TFormFirebird|Форма "​Идентификация базы данных"​]]\\
 Показывает параметры,​ которые используются при идентификации базы данных.\\ Показывает параметры,​ которые используются при идентификации базы данных.\\
 Позволяет изменить DEP_ID в базе данных. (Требует доработки)\\ Позволяет изменить DEP_ID в базе данных. (Требует доработки)\\
- 
   * [[:​dba_TFormFirebird|Форма "​Настройка Firebird"​]]\\   * [[:​dba_TFormFirebird|Форма "​Настройка Firebird"​]]\\
 Позволяет настроить службы Firebird.\\ Позволяет настроить службы Firebird.\\
Строка 57: Строка 237:
 ===== Дополнительная информация ===== ===== Дополнительная информация =====
  
-  * [[:dba_TFormDBCopy|Форма "Копирование ​баз данных"]]\\ +  * [[:dba_TFormExpressRecovery|Форма "Экспресс восстановление"​]]\\
  
 +  * [[:​dba_TFormDBCopy_Prepare|Форма "​Переименование и копирование базы данных"​]]\\
   * [[:​dba_TFormDBFirstAid|Форма "​Первичное восстановление структуры базы данных"​]]\\   * [[:​dba_TFormDBFirstAid|Форма "​Первичное восстановление структуры базы данных"​]]\\
   * [[:​dba_TFormDBBackup|Форма "​Оптимизация/​Конвертирование"​]]\\   * [[:​dba_TFormDBBackup|Форма "​Оптимизация/​Конвертирование"​]]\\
   * [[:​dba_TFormDBVerify|Форма "​Проверка успешности оптимизации/​конвертации"​]]\\   * [[:​dba_TFormDBVerify|Форма "​Проверка успешности оптимизации/​конвертации"​]]\\
   * [[:​dba_TFormDBIndexes|Форма "​Активация индексов базы данных"​]]\\   * [[:​dba_TFormDBIndexes|Форма "​Активация индексов базы данных"​]]\\
 +  * [[:​dba_TFormDBCopy_Revert|Форма "​Возвращение в режим обслуживания пользователей"​]]\\
  
   * [[:​dba_TFormFirebird|Форма "​Подразделения"​]]\\   * [[:​dba_TFormFirebird|Форма "​Подразделения"​]]\\