мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
dbc_agbdbconvertor [15.04.2022 05:57] Анисютин ↷ Имя страницы dba_agbdbconvertor изменено на dbc_agbdbconvertor |
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 3 в виде службы.\\ | + | * копирование с сервера AGBIS дистрибутива Firebird X.\\ |
- | * выполняется конвертация базы данных для работы Firebird 3 (для Backup используется gbak.exe Firebird 2, а для восстановления gbak.exe Firebird 3).\\ | + | * установка сервера Firebird X в виде службы.\\ |
+ | * установка клиента Firebird X в папку agbis\. \\ | ||
+ | * замещение клиента Firebird X в системной папке.\\ | ||
+ | * выполняется конвертация базы данных для работы Firebird X (для Backup используется gbak.exe текущего Firebird , а для восстановления gbak.exe Firebird X).\\ | ||
* выполняется проверка новой базы данных.\\ | * выполняется проверка новой базы данных.\\ | ||
- | * выполняется переключение на Firebird 3 (отключение Firebird 2 и смена его порта, включение службы Firebird 3 через порт, который раньше использовал Firebird 2).\\ | + | * выполняется переключение на Firebird X (отключение старого Firebird и смена его порта, включение службы Firebird X через порт, который раньше использовал старый 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/Restory".\\ | |
- | Логирование процесса происходит в папку Temp в два файла: | + | |
- | * restory.log\\ | + | |
- | * backup.log\\ | + | |
- | + | ||
- | В случае успешного завершения должно появится сообщение "База данных успешно пересоздана - выполнены Backup/Restore".\\ | + | |
{{:pasted:20210302-122735.png}}\\ | {{:pasted:20210302-122735.png}}\\ | ||
- | В папке с базой данных появится файл типа arm_20210302_162659.fdb, где суффикс показывает дату и время выполнения оптимизации.\\ | + | В папке с базой данных появится файл типа **arm_20210302_162659.fdb**, где суффикс показывает дату и время выполнения оптимизации.\\ |
Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.\\ | Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.\\ | ||
Строка 90: | Строка 160: | ||
Нажимается кнопка "Да".\\ | Нажимается кнопка "Да".\\ | ||
Ждем завершения процесса.\\ | Ждем завершения процесса.\\ | ||
- | В случае успешного завершения должно появится сообщение "База данных успешно пересоздана - выполнены Backup/Restore".\\ | + | В случае успешного завершения должно появится сообщение "База данных успешно пересоздана - выполнены Backup/Restory".\\ |
{{:pasted:20210302-122735.png}}\\ | {{:pasted:20210302-122735.png}}\\ | ||
В папке с базой данных появится файл типа arm_20210302_162659.fdb, где суффикс показывает дату и время выполнения оптимизации.\\ | В папке с базой данных появится файл типа arm_20210302_162659.fdb, где суффикс показывает дату и время выполнения оптимизации.\\ | ||
- | |||
- | |||
- | При установке клиента возможно не получится переписать библиотеки. | ||
- | В этом случае будет выдано предупреждение | ||
- | {{:pasted:20210324-145154.png}}\\ | ||
- | |||
- | |||
Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.\\ | Если потребуется откатить изменения, то достаточно переименовать этот файл в исходный.\\ | ||
Строка 108: | Строка 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> | ||
- | * [[:|Проекты]]\\ | + | * [[:документация|Документация]]\\ |