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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dba_agbdbadmin [26.04.2021 14:43]
Анисютин
dba_agbdbadmin [24.10.2022 10:28] (текущий)
gileva_ms
Строка 1: Строка 1:
 ====== Проект "​Агбис Сервисные работы"​ ====== ====== Проект "​Агбис Сервисные работы"​ ======
  
-Прогамму можно взять ​по адресу \\\WebDAV\AgbisShare\Agbis\_TestBuilds\Boris\agbdbadmin\agbdbadmin.exe+===== Установка программы ===== 
  
-Предназначен для выполнения следующих операций:​ +Программу можно загрузить по ссылке\\  
-  * восстановления базы данных +<​code>​ 
-  * конвертации базы ​данных при изменении версии Firebird +http://​agbis.co/​download/​admin_tools/​agbdbadmin.zip ​или http://​download.agbis.ru/​download/​admin_tools/​agbdbadmin.zip 
-  * тестирования ​базы данных+</​code>​ 
 +для тестирования\\ 
 +<​code>​ 
 +\\\WebDAV\AgbisShare\Agbis\_TestBuilds\Boris\agbdbadmin\agbdbadmin.exe 
 +</​code>​
  
 +Папку AgbDBAdmin с программой AgbDBAdmin.exe следует разместить в папку с программами АГБИС.\\
 +Обычно это **e:​\Agbis\agbDBAdmin\agbDBAdmin.exe**\\
  
-В левой колонке ​перечислен список работ обычно выполняемых ​при восстановлении базы данных.\\ +===== Запуск программы ===== 
-Для удобства отдельные ​работы выполняются в отдельных формах.\\+
  
-===== Формы ​===== +Параметры задачи могут быть заданы в файле **agbDBAdmin.ini** или непосредственно в командной строке.\\ 
 +Параметры в командной строке имеют более высокий приоритет.\\
  
-  * [[:​dba_TFormDBCopy|Форма "​Копирование баз данных"​]]\\ +Пример **agbDBAdmin.ini**\\ 
-Используется для ​ +<​code>​ 
-  - переименования ​"Рабочей" ​базы данных в "​Исходную"​ для того чтобы обеспечить монопольный доступ к базе данных,​ +AliasBase="Agbis
-  - создания "​Клона"​ - копии "​Исходной"​ базы данных,​ +FirebirdNum= 
-  - возращения "​Рабочей"​ базы данных после завершения работ по восстановлению (переименования "​Исправленной"​ или "​Исходной"​ базы в "​Рабочую"​ базу данных.+CLIENT_DEP_ID= 
 +timeout= 
 +</​code>​
  
-  * [[:​dba_TFormDBFirstAid|Форма ервичное восстановление структуры базы данных"​]]\\ +Если параметры не заданы, то из agbis.xml берется последняя активная запись ​базы данных ​и выполняется ​оптимизация.\\
-Исправление ошибок ​в структуре "​Клона" ​базы данных ​с помощью ​программ Surgeon FirebirdFirstAid ​и GFIX+
  
-  * [[:​dba_TFormDBBackup|Форма ​птимизиция/Конвертирование"​]]\\ +Программа запускается от имени администратора, для того чтобы была возможность установить необходимые службы и клиенты Firebird.\\
-Выполняется программой GBAK операции Backup/​Restory ​+
  
 +==== Параметры задачи ====
 +
 +Файл agbis.xml ищется в родительской папке. Если agbis.xml не найден,​ то нужно будет задавать параметры БД "​Исходная"​ вручную.\\
 +
 +  * **AliasBase** - алиас "​Исходной"​ БД для поиска в списке БД agbis.xml. По умолчанию берется последняя активная БД.
 +  * **FirebirdNum** - версия Firebird для новой базы данных при конвертировании (используется только первая цифра). По умолчанию совпадает с версией "​Исходной"​ БД
 +  * **CLIENT_DEP_ID** - номер подразделения в БД PC (client_dep_params.id). Используется для отправки отчета в PC при запуске из ReplIn. По умолчанию отчет не отправляется.
 +  * **timeout** - задержка в секундах перед выполнением основной части программы. Используется для остановки ReplIn перед обработкой БД. По умолчанию 0.
 +
 +Пример команды\\
 +<​code>​
 +AgbDBAdmin.exe AliasBase="​Agbis"​ FirebirdNum=3
 +</​code>​
 +
 +Хост, порт и файл **"​Исходной"​** базы данных берутся из agbis.xml ​
 +Если база данных работает под 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_TFormFirebird|Форма дентификация базы данных"]]\\ +Для того чтобы база данных могла отвечать ​на запросы пользователей нужно восстановить базу данных ​указанную в объекте БД **Исходная**.\\ 
-Показывает ​параметры, которые используются при идентификации базы данных+Восстановление выполняется ​в зависимости от результатов выполнения процедур восстановления.\\ 
-Позволяет ​изменить ​DEP_ID ​в базе данных. (Требует доработки)+  * Если при восстановлении возникла ошибка, ​то в качестве БД **Исходная** берется БД **Переименованная**,​ то есть просто просто возвращаем к работе старую базу данных.\\ 
 +  * Если при ​восстановлении выполнен этап **Восстановление структуры записей ​базы данных**, а этап **Оптимизация базы данных** и дальше не выполнялись,  
 +    то в качестве БД **Исходная** берется БД **Копия**, то есть файл БД **Копия** переименовываем в файл БД **Исходная**.\\ 
 +  * Если при восстановлении выполнены все этапы,  
 +    ​то в качестве БД **Исходная** ​берется БД **Новая**, ​то есть файл БД **Новая** переименовываем в файл БД **Исходная**.\\
  
 +Операции выполняются на [[:​dba_TFormDBCopy|форме "​Возвращение в режим обслуживания пользователей"​]]\\
 +
 +
 +===== Режимы работы "​Экспресс"​ ===== 
 +
 +Предназначен для выполнения работ по восстановлению базы данных в режиме максимальной автоматизации.\\
 +{{:​dba_agbdbadmin_tformmain_express.png}}\\
 +В этом случае для работы доступна только одна форма [[:​dba_TFormExpressRecovery| "​Экспресс восстановление"​]]\\
 +Работа по восстановлению не требует специальных знаний по архитектуре базы данных АГБИС.\\
 +Достаточно знать в какой папке размещается файл базы данных.\\
 +Работа может выполняться,​ например,​ системными админиcтраторами.\\
 +<alert info>
 +Если повреждения оказываются более серьезными и в автоматическом режиме их исправить не удается, ​
 +то система будет возвращена в состояние до момента запуска восстановления.\\
 +</​alert>​
 +В этом случае рекомендуется обратится в отдел технической поддержки АГБИС для проведения восстановления.\\
 +Если будут предоставлены журналы выполнения восстановления,​ то процесс выяснения проблем в базе данных и самого восстановления займет меньше времени.\\
 +
 +===== Режимы работы "​Эксперт"​ ===== 
 +
 +Предназначен для использования сотрудниками технической поддержки.\\ ​
 +
 +Предназначен для пошагового выполнения процедуры восстановления и настройки базы данных для работы на новом компьютере.\\
 +К возможностям доступным в режиме работы "​Нормальный"​ добавляются возможности по переключению номера подразделения,​ установка и настройка Firbird и др.\\
 +{{:​dba_agbdbadmin_tformmain_Expert.png}}\\
 +
 +Для выполнения операций используются формы:​\\ ​
 +  * [[:​dba_TFormFirebird|Форма "​Подразделения"​]]\\
 +Показывает список подразделений из таблицы DEPS\\
 +  * [[:​dba_TFormFirebird|Форма "​Идентификация базы данных"​]]\\
 +Показывает параметры,​ которые используются при идентификации базы данных.\\
 +Позволяет изменить DEP_ID в базе данных. (Требует доработки)\\
   * [[:​dba_TFormFirebird|Форма "​Настройка Firebird"​]]\\   * [[:​dba_TFormFirebird|Форма "​Настройка Firebird"​]]\\
-Позволяет настроить службы Firebird. +Позволяет настроить службы Firebird.\\ 
-Переустановить клиентов Firebird. (Требует доработки)+Переустановить клиентов Firebird. (Требует доработки)\\
  
  
 ===== Дополнительная информация ===== ===== Дополнительная информация =====
  
-  * [[: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|Форма "​Подразделения"​]]\\