Работа с базами данных

Рассмотрим работу с базами данных для двух редакций системы: ELMA Экспресс и ELMA Стандарт. В версии ELMA Экспресс используется бесплатная база данных FireBird, для разработки и администрирования Firebird среда IBExpert. В качестве СУБД для ELMA Стандарт используется MS SQL Server, а SQLServerManagementStudio, утилита из Microsoft SQL Server 2005 и более поздних версий  для конфигурирования, управления и администрирования всех компонентов MicrosoftSQLServer.

При установке программы ELMA создается новая база данных, файл с базой данных при этом находится:

  • ELMA Экспресс: файл БД по умолчанию находится в папке UserConfig, соответственно примерный путь до данного файла: C:\\ELMA3-Express\UserConfig. Файл с расширением .fdb файл базы данных. Файл с расширением .fbk  резервный файл базы данных;
  • ELMA Стандарт: файл БД располагается в папке MSSQLserver, например: C:\ProgramFiles\MicrosoftSQLServer\MSRS11.MSSQLSERVER\MSSQL\DATA. Файл с расширением .mdf – файл БД, файл .ldf – лог-файл.
Внимание!
Резервное копирование базы данных автоматически не осуществляется. Его необходимо выполнять вручную, средствами СУБД. Во избежание потери информации рекомендуется периодически создавать резервные копии баз данных.

Рассмотрим основные операции с базами данных.

 

Резервное копирование базы данных Firebird

Операция резервного копирования для Firebird может быть выполнена различными способами, такими как использование bat-файла (https://www.elma-bpm.ru/kb/article-326.html), в среде IBExpert и др.

Важно
Необходимо перед началом резервного копирования добиться отключения всех активных подключений к БД посредством отключения БД (см. ниже) или остановки веб-сервера ELMA (или сервера IIS).

Рассмотрим бэкап в IBExpert: в меню Services выберите BackupDatabase. Появится окно Database Backup, в котором в закладке Backup Files уже установлены некоторые необходимые значения. Вы можете изменить имя файла копии и его размер. Как мы видим, резервная копия базы данных Firebird будет иметь расширение .fbk.

В нижней части экрана в разделе Output из выпадающего списка выберите вариант On Screen, чтобы протокол копирования выводился на экран в вкладке Output.

Нажмите на кнопку Start Backup. Текущей станет вкладка Output, в которой будут отображены все сообщения копирования. Вы можете выполнить копирование в произвольное количество файлов копии. Для этого на панели инструментов нажмите на кнопку Append file и в появившейся строке установите нужные характеристики файла копии.

 

Операция резервного копирования для MS SQL

Операция резервного копирования базы данных MS SQL может быть выполнена несколькими способами. Рассмотрим вариант резервного копирования в среде SQLManagementStudio. Для этого необходимо в списке баз данных выбрать необходимую БД и в контекстном меню выбрать пункт Задачи, далее выбрать команду Создать резервную копию.


Откроется диалоговое окно Резервное копирование базы данных. Заполните необходимые поля. Резервная копия базы данных при этом будет иметь расширение .bak. В разделе Параметры (левого меню можно сжать резервную копию БД при установке флажка Сжимать резервные копии.

Дополнительную информацию можно найти в Справке SQLManagementStudio.

 

Резервное копирование базы данных Oracle

Резервное копирование базы данных Oracle можно выполнить несколькими способами. Подробнее о них см. на странице Резервное копирование базы данных Oracle.

 

Восстановление базы данных

Операция восстановления базы данных производится из бэкап-файла и загружает данные из бэкап-файла в выбранную базу данных. Для Firebird это файлы расширения .fbk, для mssql  .bak. При этом, не стоит путать понятия восстановления и подключения базы данных; подключение базы данных означает подключение самого файла БД, а бэкап подразумевает сначала процедуру восстановления из бэкап-файла. 

Важно

Перед процедурой восстановления в текущую базу данных остановите работу веб-сервера (либо службу IIS) или отключите БД (см ниже).

Операцию восстановления для Firebird так же, как и бэкап, можно проводить, например, через bat-файл (https://www.elma-bpm.ru/kb/article-326.html) и др.

Восстановление в IBExpert

Рассмотрим процедуру восстановления в IBExpert: для этого в контекстном меню Services выберите пункт RestoreDatabase. Появится диалоговое окно DatabaseRestore. В закладке Files уже установлены все необходимые значения. В поле Restore into указано Existing database.

Нажмите на строку FileName. В правой части поля появится кнопка с тремя точками. Нажмите на эту кнопку и в окне открытия файла выберите файл копии. Установите флажок Replace existing database (заменять существующую базу данных).

Вы можете также изменить размер страницы базы данных, выбрав его из выпадающего списка Page Size.

От размера страницы зависит эффективность работы с базой данных: файл базы данных разбивается на страницы фиксированного размера, считывание и запись информации с диска происходит постранично. Для увеличения быстродействия желательно устанавливать размер страницы 16384 байт.

Рекомендации по выбору размера страницы:

  • для дисковых накопителей с файловой системой NTFS 4096 байт. Перед этим следует убедиться, что размер кластера у NTFS-диска установлен в 4096 байт;
  • для дисков с FAT32 – 8192 или 16384 байта.

Нажмите на кнопку Start Restore. Появится окно ввода имени и пароля пользователя. Вы можете выполнить восстановление в качестве пользователя SYSDBA. База данных будет восстановлена с резервной копии.

Если вы хотите восстановить резервную копию в базу данных с другим именем, то в выпадающем списке Restore into нужно выбрать пункт New database, в поле Database File нужно ввести полный путь к новому (или существующему) файлу базы данных, в поле File Name нужно ввести путь к файлу резервной копии или воспользоваться кнопкой обзора для выбора этого файла.

Восстановление в SQL Server

Операция восстановления может быть выполнена несколькими способами, рассмотрим вариант резервного копирования в среде SQLManagementStudio. Для этого необходимо выбрать пункт Базы данных и в контекстном меню выбрать пункт Задачи, далее выбрать команду Восстановить базу данных. Откроется диалоговое окно Восстановление базы данных. Заполните необходимые данные.

Дополнительную информацию можно найти в Справке SQLManagementstudio.

Восстановление базы данных Oracle

Восстановить базу данных Oracle можно несколькими способами. Подробнее о них см. на странице Восстановление из бэкапа базы Oracle.

 

Плановое обслуживание базы данных

Планы обслуживания используются для создания потока задач, необходимых для гарантии оптимальной производительности базы данных, ее регулярного резервного копирования и отсутствия в ней несогласованности. Прежде всего, планы обслуживания касаются настройки автоматического резервного копирования базы данных для исключения возможности потери данных. Оптимально проводить резервное копирование БД хотя бы еженедельно, но необходимо учитывать и производительность ваших систем.

В SQL данная операция осуществляется в SQL Management Studio через Мастер планов обслуживания:

  1. Раскройте сервер.
  2. Откройте папку Управление.
  3. Нажмите правой кнопкой мыши на кнопку Планы обслуживания и выберите пункт Мастер планов обслуживания. Мастер запустится, и после этого можно будет создать план в соответствии с индивидуальными задачами обслуживания. Здесь вы можете настроить резервное копирование как баз данных, так и например журналов транзакции.

Для Firebird также можно настроить плановое обслуживание БД, используя bat-файл или другие команды. Способы настройки планового обслуживания рассмотрены в Интернете, например, на ресурсе: http://www.ibase.ru/devinfo/gbak.html.

 

Отключение и подключение БД

Если база данных используется в сети несколькими клиентами, то во избежание повреждения или потери данных бывает полезным выполнить ее остановку, чтобы закрыть доступ клиентам к базе данных на время выполнения операции. При этом файл базы данных остается на своем месте, перестает быть активна только привязка файла базы данных к СУБД, что делает невозможной работу с этим файлом. Впоследствии базу данных можно присоединить и продолжить работу с ней.

В SQL данная операция выполняется после нажатия на кнопку Задачи – Отсоединить. Операция подключения базы данных осуществляется после нажатия на кнопку Задачи – Присоединить.

Firebird: для отключения БД нужно выбрать в меню Services  Database Shutdown. В появившемся окне из выпадающего списка выбрать одну из зарегистрированных в IBExpert баз данных или набрать имя файла базы данных. Выбрать режим: Forced, Deny Transaction или Deny Attachment, задать время ожидания и щелкнуть по кнопке Shutdown.

Чтобы перевести базу данных в активное состояние нужно выбрать в меню Services  Database Online, в появившемся окне выбрать из списка или ввести вручную имя файла базы данных и щелкнуть по кнопке Bring Online.

 

Подключение ELMA к базе данных

Информация о подключении сервера ELMA к базе данных указывается в конфигурационном файле configuration.config (папка ELMA/UserConfig). Соответственно, можно изменить путь до базы (для FDB) или имя БД (для SQL) в случае создания новой БД. Для FDB – новую БД необходимо также переместить в папку UserConfig.

В том случае, если осуществляется подключение системы ELMA к БД, которая ранее использовалась в другой системе ELMA, при запуске данной БД может потребоваться дополнительная активация компонентов (в случае, если набор компонентов в данных системах был различен).

В таком случае при запуске БД будет отображена форма активации, на которой требуется ввести ключ активации сервера, полученный у менеджера или партнёра компании ELMA.

Список компонентов, которые требуется активировать, а также информация о редакции системы, регистрационный ключ и токен сервера доступны по ссылке Посмотреть список требуемых компонентов, расположенной ниже кнопки Активировать.

Вся информация в данном окне может быть скопирована в буфер обмена с помощью кнопки Копировать в буфер. Для возвращения к предыдущему окну необходимо нажать на ссылку < Назад.

Настройка портов, учетных записей

Для версии ELMA:Экспресс можно изменять порт подключения к СУБД, а также учетные данные. Это можно осуществить в конфигурационном файле в папке UserConfig:

 

Использование журналов транзакции (или журналов резервного копирования)

Каждая база данных SQL Server содержит журнал, в который записываются все транзакции и все изменения базы данных, выполняемые каждой транзакцией. Журнал транзакций — это важная составляющая базы данных, и понимание и управление этим журналом является важной частью роли администратора базы данных

Можно создавать резервные копии Журналов транзакции, используя операции Резервное копирование, аналогично резервной копии БД, но в поле Тип выбрать Журналы транзакции, или используя Мастер планов обслуживания и также указать копирование журнала.

СУБД Firebird не использует отдельный журнал для сохранения выполненных транзакций, и использует единственный файл для хранения всех данных.

 

Передача базы данных в службу технической поддержки

Передача базы данных в службу технической поддержки позволяет наиболее оперативно решать ошибки, поэтому нужно относиться к этой процедуре с пониманием. При этом оригиналы всех документов, файлы остаются у вас. Для передачи вы можете использовать файл БД (путь до файлов БД указан в начале статьи), однако предпочтительней использовать бэкап базы данных. Размер бэкапа гораздо меньше файла БД, его размер можно уменьшить еще больше, если добавить его в архив. Файлы бэкапов БД прекрасно поддаются архивированию. При создании архива используйте разбитие файла на части. Рекомендуем использовать части по 50-95 Мбайт. Файлы такого размера отлично загружаются на сайт технической поддержки http://support.elma-bpm.ru

На сайте технической поддержки прикрепляйте файлы как обычные вложения.

По запросу сотрудников технической поддержки иногда потребуется прислать ldf-файл (для MSSQL), когда это действительно необходимо, обычно присылать файл с логами не нужно.