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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dbc_agbdbconvertor [17.03.2021 19:17]
admin
dbc_agbdbconvertor [15.04.2022 06:06] (текущий)
Строка 2: Строка 2:
  
 <ifauth @programmers> ​ <ifauth @programmers> ​
-Проект **"​Агбис Конвертор БД"​**\\ 
 E:​\_Projects\Agbis.dxe\AgbDBAdmin\agbDBConvertor.dpr\\ E:​\_Projects\Agbis.dxe\AgbDBAdmin\agbDBConvertor.dpr\\
 </​ifauth>​ </​ifauth>​
  
-Программа выполняет запуск программы gbak.exe из состава Firebird для выполнения двух операций Backup и Restore.\\ +Программа прежде всего предназначена для выполнения конвертации базы данных для работы с новой версией сервера Firebird в режиме автоконвертации без диалогового окна.\\ 
-При выполнении ​Backup/​Restore ​происходит оптимизация базы данных. +Программа выполняет запуск ​двух ​программ ​**gbak.exe** из состава Firebird для выполнения двух операций ​**Backup и Restory**.\\ 
-Напримерпри удалении ​фотографий объем данных сильно уменьшается, однако размер ​файла базы данных остается прежний и уменьшается только после ​Backup/Restore.\\ +Если вторая программа **gbak.exe** берется ​из состава Firebird старшей версии,​ то в результате ​выполняется **конвертация** данных к новой версии Firebird.\\ 
-Кроме ​этого происходит дефрагментация страниц данных, обновление индексов и тому подобное. ​Это может ​существенно увеличить скорость работы ​базы данных.\\+Если вторая ​программа **gbak.exe** берется из состава Firebird ​исходной версии, то в результате выполняется **оптимизация** данных в рамках текущей версии Firebird.\\ 
 + 
 +Перед выполнением конвертации создается резервная копия базы данных.\\ 
 +В случае возникновения ошибок в процессе конвертирования,​ выполняется откат - резервная копия возвращается на место исходной базы данных и система возвращается к ситуации до начала конвертирования.\\ 
 +Если конвертирование ​проходит успешно,​ то новая база заменяет исходную, ​а новый Firebird переключается ​на работу через порт на котором работал старый Firebird.\\ 
 +В результате,​ приложения не требуют дополнительной настройки подключений,​ сразу начинают работать с новой базой через новый Firebird.\\ 
 +Старый Firebird отключается,​ чтобы не перехватывал работу с базой.\\ 
 +Новый Firebird автоматически скачивается с серверов АГБИС и устанавливается как служба.\\ 
 + 
 +===== Подготовка к применению ===== 
 + 
 +<alert info> 
 +1. Подключение к **"​Исходной"​** базе ​данных ​должно быть локальным,​ так как для выполнения операций используется режим Embedded Firebird. 
 +Программа должна иметь локальный доступ к файлу базы данных.\\ 
 +2. На время выполнения конвертора отключаются все программы от базы данных,​ останавливаются ​службы (агенты)поэтому операцию следует согласовывать с клиентом.\\ 
 +3. Останавливается,​ а затем заменяется,​ сервер Firebird, что может повлечь остановку других программ, которые работают с другими ​базами ​данных.  
 +В этом случае потребуется ​дополнительная настройка серверов Firebird и подключений приложенийизменение портов и порядка запуска служб Firebird.\\ 
 +4. В процессе конвертации создается ​две копии базы данных,​ поэтому следует проверить, что на диске свободного места в 2.5 раза больше чем размер самой базы данных.\\ 
 +</​alert>​ 
 + 
 +===== Установка программы =====  
 + 
 +Программу можно загрузить ​по ссылке \\ 
 +ПРОВЕРИТЬ\\  
 +<​code>​ 
 +http://​agbis.co/​download/​admin_tools/​agbdbconvertor.zip 
 +</​code>​ 
 + 
 +Папку agbDBConvertor с программой **agbDBConvertor.exe** следует разместить в папку с программами АГБИС.\\ 
 +Обычно это **e:​\Agbis\agbDBConvertor\agbDBConvertor.exe**\\ 
 + 
 +==== Параметры командной строки ==== 
 + 
 +  * **/run** – выполняется без видимого ​окна, все настройки должны быть ​переданы через параметры командной строки или ini файла.\\ 
 +  * **AliasBase** – алиас "Исходной"​ БД в списке из agbis.xml. По умолчанию,​ если AliasBase не задан, берется последняя активная база из списка в agbis.xml\\ 
 +  * **FirebirdNum** – номер версии Firebird для новой базы данных при конвертировании. По умолчанию совпадает с версией "​Исходной" БД, то есть выполняется оптимизация.\\ 
 +  * **CLIENT_DEP_ID** – номер подразделения в БД PC (client_dep_params.id). Используется для отправки отчета в PC. По умолчанию отчет не отправляется.\\ 
 +  * **timeout** – задержка в секундах перед выполнением основной части программы. Используется для задержки перед началом выпонения обработки БДчтобы дать возможность завершить работу ReplIn. По умолчанию 0.\\ 
 + 
 +Все параметры могут быть заданы через файл agbDBConvertor.ini.\\ 
 +Значение параметра в командной строке имеет приоритет перед значение в ini-файле.\\ ​  
 +Файл **agbis.xml** ищется в родительской папке. То есть, если запускается D:​\Agbis\agbDBConvertor\agbDBConvertor.exe,​ то будет считываться D:​\Agbis\agbis.xml\\ 
 + 
 +===== Запуск программы ===== 
 + 
 +==== Запуск программы интерактивном режиме ==== 
 + 
 +<​code>​ 
 +agbDBConvertor.exe 
 +</​code>​ 
 + 
 +Считываются параметры из agbDBConvertor.ini и открывается форма ​для ввода параметров.\\ 
 +{{:​dbc_TFormDBConvertor1.png}}\\ 
 +Можно выбрать файл базы данных, порт для подключения к базе данных и версию Firebird для новой базы данных.\\ 
 +Кнопка **"​Конвертация БД"​** запускает процесс.\\ 
 +Более подробно можно посмотреть в разделе [[:​dbc_TFormDBConvertor|Форма "​Конвертор базы данных"​]]\\ 
 + 
 +Дополнительно,​ пункт главного меню **[[:​dba_TFormFirebird|"​Настройка Firebird"​]]** открывает форму для просмотра и натройки параметров Firebird. \\ 
 + 
 +==== Запуск программы режиме автоконвертации ==== 
 + 
 +<​code>​ 
 +agbDBConvertor.exe /run AliasBase="​Agbis"​ FirebirdNum=3 CLIENT_DEP_ID=2 timeout=1 
 +</​code>​ 
 + 
 +Так как задан параметр **/run**, то после запуска программы сразу запускается процесс конвертации. Все параметры заданы в командной ​строке.  
 +Если параметры не позволяют найти и открыть базу данных,​ то процесс атоматически завершается. Результат ​работы ​можно увидеть в логах в папке Logs\ \\ 
 + 
 +Возможен вариант\\ 
 +<​code>​ 
 +agbDBConvertor.exe /run  
 +</​code>​ 
 +В этом случае,​ так как задан ​параметр **/run**, то после запуска программы также сразу запускается процесс конвертации,​ но параметры берет из файла agbDBConvertor.ini.\\ 
  
 ===== Особенности применения ===== ===== Особенности применения =====
  
-  ​* Оба процесса запускаются в виде конвейера программ gbak.exe, поэтому промежуточный файл .fbk не создается.\\+Подключение к **"​Исходной"​** базе данных должно быть локальным,​ так как для выполнения операций используется режим Embedded Firebird.\\ 
 +Программа должна иметь локальный доступ к файлу базы данных.\\ 
 + 
 +При выполнении Backup/​Restory происходит оптимизация базы данных.\\ 
 +Например,​ при удалении фотографий объем данных сильно уменьшается,​ однако размер файла базы данных остается прежний и уменьшается только после Backup/​Restory.\\ 
 +Кроме этого происходит дефрагментация страниц данных,​ обновление индексов и тому подобное. Это может существенно увеличить скорость работы базы данных.\\ 
 + 
 +  ​* Оба процесса запускаются в виде конвейера программ ​**gbak.exe**, поэтому промежуточный файл .fbk не создается.\\
   * Для выполнения Firebird используется в режиме Embedded, что приводит к сокращению времени выполнения операции приблизительно 5 - 6 раз.\\   * Для выполнения Firebird используется в режиме Embedded, что приводит к сокращению времени выполнения операции приблизительно 5 - 6 раз.\\
-  * Если для восстановления указывается Firebird ​3, то кроме оптимизации выполняется конвертация базы данных для работы Firebird ​3+  * Если для восстановления указывается Firebird ​X старшей версии, то кроме оптимизации выполняется конвертация базы данных для работы Firebird ​X указанной версии.  
-    * копирование с сервера AGBIS дистрибутива Firebird ​3.\\ +    При этом выполняются следующие операции
-    * установка Firebird ​в виде службы.\\ +    * копирование с сервера AGBIS дистрибутива Firebird ​X.\\ 
-    * выполняется конвертация базы данных для работы Firebird ​(для Backup используется gbak.exe Firebird ​2, а для восстановления gbak.exe Firebird ​3).\\+    * установка сервера Firebird ​в виде службы.\\ 
 +    * установка клиента Firebird X в папку agbis\. \\ 
 +    * замещение клиента Firebird X в системной папке.\\ 
 +    * выполняется конвертация базы данных для работы Firebird ​(для Backup используется gbak.exe ​текущего ​Firebird , а для восстановления gbak.exe Firebird ​X).\\
     * выполняется проверка новой базы данных.\\     * выполняется проверка новой базы данных.\\
-    * выполняется переключение на  Firebird ​(отключение Firebird ​и смена его порта, включение службы Firebird ​через порт, который раньше использовал Firebird ​2).\\+    * выполняется переключение на  Firebird ​(отключение ​старого ​Firebird и смена его порта, включение службы Firebird ​через порт, который раньше использовал ​старый ​Firebird).\\ 
 + 
 +Таким образом новая версия Firebird замещает старую и все программы переключаются на работу с новой базой данных без дополнительных настроек.\\
  
-<alert info> 
 При выполнении оптимизации/​конвертации останавливается служба Firebird.\\ При выполнении оптимизации/​конвертации останавливается служба Firebird.\\
 Поэтому нужно предупредить пользователей,​ чтобы они смогли завершить работу программ,​ которые используют доступ к базе данных.\\ Поэтому нужно предупредить пользователей,​ чтобы они смогли завершить работу программ,​ которые используют доступ к базе данных.\\
 Операция длительная,​ в зависимости от объема базы данных может занимать до часу времени.\\ Операция длительная,​ в зависимости от объема базы данных может занимать до часу времени.\\
 +
 +<alert info>
 В случае возникновения ошибок исходная база остается без изменений. \\ В случае возникновения ошибок исходная база остается без изменений. \\
 Полученную базу с ошибками и логи выполнения операции требуется передать в техническую поддержку АГБИС для выяснения причин.\\ Полученную базу с ошибками и логи выполнения операции требуется передать в техническую поддержку АГБИС для выяснения причин.\\
 В случае успешного завершения исходная база будет переименована и сохранена в прежнем каталоге. Со временем ее можно будет удалить для экономии места.\\ В случае успешного завершения исходная база будет переименована и сохранена в прежнем каталоге. Со временем ее можно будет удалить для экономии места.\\
 </​alert>​ </​alert>​
- 
- 
  
 ===== Термины =====  ===== Термины ===== 
Строка 41: Строка 124:
  
   * **"​Новая"​** база данных - это база данных,​ которая получается в результате создания резервной копии с помощью программ gbak.exe.\\   * **"​Новая"​** база данных - это база данных,​ которая получается в результате создания резервной копии с помощью программ gbak.exe.\\
-После проверки целостности ​ 
-    - **"​Исходная"​** база данных переименовывается и становится резервной копией 
-    - **"​Новая"​** база данных переименовывается и становится "​Исходной"​ 
  
-===== Подготовка к запуску =====  +После проверки целостности **"​Исходная"​** база данных переименовывается и становится резервной копией, а **"Новая"** база данных ​переименовывается и становится "​Исходной"​.\\ 
- +Кроме того ​новая версия Firebird ​переключается на работу через порт старой версии Firebird. 
-  - Скачать ​программу по ссылке {{http://​agbis.co/​download/​admin_tools/​agbdbconvertor.zip|agbdbconvertor.zip}}\\ +В результате все программы переключаются ​на работу с новой базой данных через новый Firebird без ​дополнительных настроек запуска этих программ.\\
-  - Распаковать и разместить в папке с "​Химчистка". В этой папке должен быть файл agbis.xml.\\  +
-<alert info> +
-Подключение к **"Исходной"** базе данных ​должно быть локальным, так как для выполнения ​операций используется режим Embedded ​Firebird.\\ +
-Программа должна иметь локальный доступ к файлу базы данных.\\ +
-</​alert>​+
  
 ===== Оптимизация базы данных =====  ===== Оптимизация базы данных ===== 
  
-Запускается программа ​agbdbconvertor.ехе от имени администратора.\\+Запускается программа ​**agbDBConvertor.ехе** от имени администратора.\\
 Права администратора нужны для включения/​выключения служб.\\ Права администратора нужны для включения/​выключения служб.\\
-Если доступен файл agbis.xml, то параметры подключения будут считаны из него и дополнительных настроек не потребуется.\\+Если доступен файл ​**agbis.xml**, то параметры подключения будут считаны из него и дополнительных настроек не потребуется.\\
 {{:​pasted:​20210302-122121.png}}\\ {{:​pasted:​20210302-122121.png}}\\
 На всякий случай,​ следует проверить путь к базе данных в поле "​Файл базы данных"​.\\ На всякий случай,​ следует проверить путь к базе данных в поле "​Файл базы данных"​.\\
Строка 65: Строка 140:
 Нажимается кнопка "​Да"​.\\ Нажимается кнопка "​Да"​.\\
 Ждем завершения процесса.\\ Ждем завершения процесса.\\
-В случае успешного завершения должно появится сообщение "​База данных успешно пересоздана - выполнены Backup/Restore".\\+В случае успешного завершения должно появится сообщение "​База данных успешно пересоздана - выполнены Backup/Restory".\\
 {{:​pasted:​20210302-122735.png}}\\ {{:​pasted:​20210302-122735.png}}\\
  
-В папке с базой данных появится файл типа arm_20210302_162659.fdb,​ где суффикс показывает дату и время выполнения оптимизации.\\+В папке с базой данных появится файл типа ​**arm_20210302_162659.fdb**, где суффикс показывает дату и время выполнения оптимизации.\\
 Если потребуется откатить изменения,​ то достаточно переименовать этот файл в исходный.\\ Если потребуется откатить изменения,​ то достаточно переименовать этот файл в исходный.\\
  
Строка 85: Строка 160:
 Нажимается кнопка "​Да"​.\\ Нажимается кнопка "​Да"​.\\
 Ждем завершения процесса.\\ Ждем завершения процесса.\\
-В случае успешного завершения должно появится сообщение "​База данных успешно пересоздана - выполнены Backup/Restore".\\+В случае успешного завершения должно появится сообщение "​База данных успешно пересоздана - выполнены Backup/Restory".\\
 {{:​pasted:​20210302-122735.png}}\\ {{:​pasted:​20210302-122735.png}}\\
  
Строка 96: Строка 171:
   - заменить порт Firebird 2,   - заменить порт Firebird 2,
   - включить службу Firebird 2.   - включить службу Firebird 2.
-Восстановление Firebird можно выполнить через программу agbdbconvertor.ехе с формы [[:dba_TFormFirebird|"​Настройка Firebird"​]]\\ +Восстановление Firebird можно выполнить через программу agbdbconvertor.ехе с формы [[:dbc_TFormFirebird|"​Настройка Firebird"​]]\\
- +
-===== Формы =====  +
- +
-  * [[:​dba_TFormDBBak|Форма "​Конвертор базы данных"​]]\\ +
-  * [[:​dba_TFormFirebird|Форма ​"​Настройка Firebird"​]]\\+
  
  
 ===== Дополнительная информация ===== ===== Дополнительная информация =====
  
 +  * [[:​dbc_TFormDBConvertor|Форма "​Конвертор базы данных"​]]\\
 +  * [[:​dba_TFormFirebird|Форма "​Настройка Firebird"​]]\\
 <ifauth @programmers> ​ <ifauth @programmers> ​
-  * [[develop:​dba_TDBSysInfo|Системная информация о базе данных]]\\ 
-  * [[develop:​dba_TDBBackup|Реализация "​Создания резервной копии"​]]\\ 
 </​ifauth>​ </​ifauth>​
  
-  * [[:|Проекты]]\\+  * [[:документация|Документация]]\\