Mdb_modify¶
- Table of contents
- Mdb_modify
Mdb_modify - это сервис, предназначенный для получения информации об изменениях, произошедших в МБД и раздачи этой информации работающим копиям ПО Digispot II.
Использование mdb_modify является обязательным, если количество одновременно работающих копий ПО Digispot II (Джин, Трек2 и пр.) превышает 20. Данный сервис входит в состав Медиа БД Advanced Engine, и не входит в состав Медиа БД Engine. Если не использовать сервис, то SQL-сервер будет перегружен вспомогательными запросами об произошедших изменениях. Эти запросы периодически посылают все рабочие места. При использовании сервиса mdb_mody запросы об изменениях посылает только он один, а полученные изменения сервис записывает в файлы, откуда их считывают все приложения.
Выполняемый файл сервиса называется mdb_mody_x.exe, где х -это номер поколения. На текущий момент- 4.
Установка и настройка¶
Подключение к БД¶
Для подключения к БД сервис использует предварительно сконфигурированный ODBC источник. Поэтому необходимо предварительно создать ODBC-источник, указав в нем параметры, необходимые для подключения к используемой на комплексе SQL-базе данных.
Это можно сделать в разделе Control panel -> Administrative tools -> Data sources (ODBC).
Для подключения к MS SQL Server 2005 и 2008 может потребоваться дополнительная установка соответствующего ODBC-драйвера: Native Sql Client. Дистрибутив клиента есть внутри дистрибутива сервера. Он называется sqlncli.msi.
Предварительная настройка БД и каталог для файлов обмена¶
Сервис сохраняет данные об изменениях в файлы 0.dat и 1.dat, которые затем считываются остальными рабочими местами. Каталог, в котором хранятся эти файлы, указывается непосредственно в БД. Перед установкой сервиса необходимо выбрать каталог для хранения этих файлов.
Программа сохраняет данные в файлы 0.dat и 1.dat поочередно, переходя на другой файл при достижении текущим файлом предельного размера 100 МБ. Переход между файлами 0.dat и 1.dat осуществляется не чаще, чем раз за 30 минут, за это время при очень активной работе с МБД (>100 активных подключений) возможно превышение файлом установленного лимита, в т.ч. в несколько раз.
Каталог, в котором будут хранится эти файлы, должен быть доступен со всех мест комплекса с правами, достаточными для чтения файлов, а сервис (учетная запись, с правами которой он работает) должен иметь права для создания и изменения файлов в этом каталоге.
Предположим, что в нашем случае путь выглядит так: \\server\share\folder
Путь к данному каталогу хранится непосредственно в БД. Его необходим внести туда специальным запросом (необходимо выполнить запрос в SQL Server Management Studio)
DELETE FROM [dbo].[PARAMETERS] where Name='MODIFY_EXCHANGE_PATH_2'
INSERT INTO [dbo].[PARAMETERS] (Name, Value, Type) VALUES ('MODIFY_EXCHANGE_PATH_2','\server\share\folder', 1)
Это нужно сделать 1 раз после создания БД. В случае смены пути хранения необходимо повторно выполнить данный запрос, указав в нем новый каталог хранения файлов.
В каталоге должно быть как минимум 1 GB свободного места.
Установка сервиса¶
Выполняемый файл является одновременно и инсталлятором сервиса.
При запуске mdb_mody_4.exe будет выдан запрос на установку сервиса на данном рабочем месте.
Чтобы успешно установить сервис, надо запустить mdb_mody_4.exe с правами локального Администратора. Устанавливаемый сервис имеет имя mdb_modify.
При установке сервис конфигурируется на запуск из того каталога, в котором запускается mdb_mody_4.exe. Поэтому необходимо изначально скопировать файл в требуемый каталог. В процессе работы программа создает в данном каталоге подкаталог LOGS в котором создает файлы логов. Необходимо убедиться, что у учетной записи, из под которой работает сервис, есть соответствующие права. По умолчанию, программа хранит 500 МБ логов, соответственно, в данном каталоге д.б. свободно не менее 500 МБайт свободного места.
После установки сервиса будет открыто окно его настройки:
Для минимальной настройки необходимо:
- Указать тип запуска (Startup type) = AUTOMATIC и нажать кнопку Apply
- Нажать кнопку Configure и указать:
- ODBC источник для подключения к БД и, если требуется, логин и пароль.
- Дополнительно можно указать таймаут опроса сервера и максимальный объем хранимых логов.
При минимальной настройке этого достаточно. Сервис можно запустить кнопкой Start и завершить работу инсталлятора кнопкой Exit.
Данные параметры сохраняются в реестре, в ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mdb_modify
Учетная запись¶
Учетная запись, с которой работает сервис, может быть установлена в свойстве сервиса mdb_modify в оснастке настройки сервисов.
Необходимые права¶
Пользователю, с правами которого будет работать данный сервис, необходимо предоставить следующие права:
- право:
Log on as a service
. Оно автоматически добавляется к праву пользователя при использовании окна, указанного выше. Явно его необходимо давать только в экзотических случаях. - чтение и изменение ветки реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mdb_modify
- чтение, создание и удаление файлов в каталоге обмена файлов
- чтение, создание и удаление файлов в каталоге <путь к mdb_modify.exe>\LOGS
- если при настройке подключения к SQL серверу используется система авторизации Windows, то данный пользователь должен иметь привилегии, необходимые для работы с базой данных.
Установка на кластер¶
Последовательность установки:
- На ноде создается ODBC источник
- Сервис устанавливается, как описано выше, на первую ноду кластера. Обычно сервис располагается на локальном кластерном носителе (диске), имеющем одинаковое символическое имя на всех нодах. Это удобнее, т.к. логи в этой ситуации хранятся в одном месте.
- В ресурсах ноды создается кластерный ресурс - сервис. Все необходимые для этого параметры приведены ранее.
- Процесс повторяется на остальных нодах
- В зависимостях данного ресурса необходимо указать (ресурсы, от которых зависит данный ресурс)
- Ресурс SQL-сервера
- Ресурс(ы) носителей, на которых находится сам сервис или каталог с файлами обмена.
- Внимательно проверяется учетная запись, с которой будет запускаться сервис - необходимые права описаны выше.
Контроль работоспособности¶
Сам сервис должен быть запущен (находится в состоянии Running)
Проверить, что сервис работает, проще всего проверив содержимое файлов лога. Программа пишет файлы в подкаталоге LOGS. Необходимо посмотреть самый последний по дате создания файл в этом каталоге, название файла выглядит так:mdb_modify_4.exe <дата> <время>.log
В нем каждые 5 сек должна появляться новая запись. Например:
01-05 17:04:42 Nothing has changed
01-05 17:04:47 Nothing has changed
01-05 17:04:53 Nothing has changed
01-05 17:04:58 Nothing has changed
Записи не должны содержать сообщений об ошибках. Если в течении нескольких минут в файле лога не появилось новых записей и программа не создала нового файла лога (она разбивает их по 1 МБ), то сервис не работает.
Кроме этого, о выходе сервиса из стоя говорят сообщения об ошибках, появляющиеся на рабочих местах ПО Digispot II (в окне ошибок и в логах), содержащие строки:
TDB_SERVICE_EXCHANGE::GetChanges
Can't lock file to exchange
Can't get modifications from exchange agent
Modify file sync
Bad modify file format
Выход сервиса из строя или его остановка приведут к тому, что на всех рабочих местах перестанут отображаться изменения, происходящие в БД (появление и удаление элементов, изменение названия, длительности и пр. ). Речь идет о фоновом отображении. При смене категории и/или типа отображаемого в окне МБД материала или нажатии кнопки Обновить, изменения будут отображены.
Почему "Зверушка"¶
Название сервис получил из за скрытности, незаметности и непонятности своего существования (для пользователей), про нее вечно забывают и вспоминают только когда возникают проблемы.