Ручное резервное копирование БД при обновлении системы

Копирование БД может осуществляться как в автоматическом режиме, так и в ручном.

Автоматическое резервное копирование (АРК) – копирование данных по заранее заданному сценарию. Преимуществом данного способа является отсутствие необходимости вмешательства пользователя в процессе создания резервного копирования.

АРК поддерживается для следующих СУБД:

  • 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 РК можно осуществить несколькими способами:

  1. backupPath="указан_путь" – выполняется сохранение РК по указанному пути. При указании локального пути (например, C:\Base\Backups) необходимо его существование на сервере БД. Также можно указать сетевой путь (например, ..\Server\ELMA-Backups).
  2. backupPath="" (т.е. указан пустой путь) – выполняется сохранение РК в выделенную для РК папку, которая настраивается в свойствах MSSQL.
  3. backupPath(не указан путь) – выполняется дополнительная проверка:
    1. В строке соединения присутствует параметр AttachDBFilename – папка для хранения РК извлекается из параметра.
    2. Строка соединения не содержит параметр AttachDBFilename – выполняется сохранение РК в выделенную папку для РК, которая настраивается в свойствах MSSQL.

Сохранение резервной копии

Все работы с РК фиксируются в log-журнале. Расположение log-журнала относительно веб-каталога сервера в ..\logs\Backup\backup-log-*.

В случае, если в конфигурационном файле не указан backupPath, а РК необходимо произвести, тогда СУБД:

  • Firebird – попытается сохранить в папку с БД (при условии, что у пользователя (под которым запускается служба СУБД) есть права доступа на запись в папку);
  • MSSQL – попытается сохранить в папку указанную по умолчанию (при условии, что у пользователя (под которым запускается служба СУБД) есть права доступа на запись в папку);
  • PostgreSQL – попытается сохранить в папку, которая указана в backupPath (при условии, что у пользователя (под которым запущена ELMA) есть права доступа на запись в папку);
  • Oracle – параметр backupPath не применяется, т.к. АРК не поддерживается для данной СУБД.