[ELMA3] Ручное резервное копирование БД при обновлении системы
Копирование БД может осуществляться как в автоматическом режиме, так и в ручном.
Автоматическое резервное копирование (АРК) – копирование данных по заранее заданному сценарию. Преимуществом данного способа является отсутствие необходимости вмешательства пользователя в процесс создания резервного копирования.
АРК поддерживается для следующих СУБД:
- Firebird;
- MSSQL;
- PostgreSQL (при установке СУБД во время установки приложения ELMA).
Для отключения АРК необходимо остановить сервер и в конфигурационный файл configuration.config добавить backupEnabled="false". Данный файл находится в ..\Общая папка с файлами системы ELMA\UserConfig. Подробнее см. в статье "Отключение резервного копирования БД при старте сервера ELMA".
Ручное резервное копирование (РРК) – самостоятельное последовательное копирование данных пользователем.
РРК активируется для следующих СУБД:
- Oracle;
- PostgreSQL (когда сервер ELMA и PostgreSQL установлены на разных серверах);
- Firebird;
- MSSQL.
При работе РРК пользователю выводится уведомление на стартовом экране, которое информирует о ходе резервного копирования. Возможны следующие варианты:
1. Данное уведомление отобразится, если была отключена опция АРК (рис. 1).
Рис.1. Окно запуска сервера
В таком случае пользователю необходимо дождаться сообщения, что система самостоятельно справилась с резервным копированием БД (рис. 6) или дождаться открытия формы выполнения РРК (рис. 2).
Рис. 2. Форма выполнения РРК
При открытии формы выполнения РРК (рис. 2) необходимо ввести кодовое слово (рис. 3), которое находится в текстовом файле. Путь данного файла также указан в окне рис. 2.
Рис. 3 Кодовое слово
Кодовое слово генерируется автоматически при каждом выполнении РРК.
Следует отметить, если в ходе выполнения РРК будет осуществлено подключение к конфигурации или выполнен перезапуск сервера в Дизайнере ELMA, то в стартовом окне (рис. 4) Дизайнера ELMA или на странице перезапуска сервера (рис. 5) будет отображено уведомление с ссылкой, которая перенаправит пользователя на форму выполнения РРК (рис. 2).
Рис. 4 Стартовое окно Дизайнера ELMA
Рис. 5. Перезапуск сервера в Дизайнере ELMA
После выполнения РРК веб-приложение и Дизайнер ELMA продолжат загрузку.
2. Данное уведомление отобразится, когда сервер был просто перезапущен и никаких обновлений БД еще не было сделано (рис. 6).
Рис. 6. Окно запуска сервера
3. Данное уведомление отобразится, когда сервер ELMA самостоятельно осуществил резервное копирование (рис. 7).
Рис. 7 Окно запуска сервера
4. Данное уведомление отобразится, если администратор подтвердил (рис. 2), что резервная копия была сделана (рис. 8).
Рис. 8 Окно запуска сервера
РК для СУБД PostgreSQL
РК осуществляется с помощью приложения pg_dump.exe, которое расположено в ..\Общая папка с файлами системы ELMA\PostgreSQL\bin.
Для случаев, когда на сервере с ELMA установлено несколько экземпляров PostgreSQL и необходимо пользоваться определённым экземпляром, предусмотрена опция pathToPgDump. Она позволяет указать абсолютный путь к исполняемому файлу pg_dump, включая имя и расширение. Пример конфигурации секции:
<main.db connectionStringName="MainDB" type="EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLProvider, EleWise.ELMA.Extensions.PostgreSQL" backupEnabled="true" backupPath="C:\Work" pathToPgDump="C:\PostgreSQL\pg95\bin\pg_dump.exe"/>
Произошли изменения в файле конфигурации для PostgreSQL в разделе <configSections>.
В качестве типа в строке
<section name="main.db" type="EleWise.ELMA.Configuration.MainBaseSettingsSection, EleWise.ELMA.SDK, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cb29d04eca9b031d" />
теперь необходимо указывать
<section name="main.db" type="EleWise.ELMA.Extensions.PostgreSQL.PostgreSQLSettingsSection, EleWise.ELMA.Extensions.PostgreSQL" />
РК для СУБД MSSQL
При использовании СУБД MSSQL РК можно осуществить несколькими способами:
- backupPath="указан_путь" – выполняется сохранение РК по указанному пути. При указании локального пути (например, C:\Base\Backups) необходимо его существование на сервере БД. Также можно указать сетевой путь (например, ..\Server\ELMA-Backups).
- backupPath="" (т.е. указан пустой путь) – выполняется сохранение РК в выделенную для РК папку, которая настраивается в свойствах MSSQL.
- backupPath(не указан путь) – выполняется дополнительная проверка:
- В строке соединения присутствует параметр AttachDBFilename – папка для хранения РК извлекается из параметра.
- Строка соединения не содержит параметр AttachDBFilename – выполняется сохранение РК в выделенную папку для РК, которая настраивается в свойствах MSSQL.
Сохранение резервной копии
Все работы с РК фиксируются в log-журнале. Расположение log-журнала относительно веб-каталога сервера в ..\logs\Backup\backup-log-*.
В случае, если в конфигурационном файле не указан backupPath, а РК необходимо произвести, тогда СУБД:
- Firebird – попытается сохранить в папку с БД (при условии, что у пользователя (под которым запускается служба СУБД) есть права доступа на запись в папку);
- MSSQL – попытается сохранить в папку указанную по умолчанию (при условии, что у пользователя (под которым запускается служба СУБД) есть права доступа на запись в папку);
- PostgreSQL – попытается сохранить в папку, которая указана в backupPath (при условии, что у пользователя (под которым запущена ELMA) есть права доступа на запись в папку);
- Oracle – параметр backupPath не применяется, т.к. АРК не поддерживается для данной СУБД.