Решение проблем с базой данных
Обслуживание базы данных SH4
Общая информация
SDB server manager (Sdbman.exe) - основное приложение для диагностики и обслуживания баз данных SH4.
Так как формат базы данных (*.SDB, *.SDL) зашифрован, других средств для работы с базами данных SH4 нет.
Основной функционал приложения Sdbman:
- создание резервной копии базы данных
- восстановление базы данных из резервной копии
- выполнение запросов к базе (собственные процедуры, поддержки SQL-языка нет)
- встроенные инструменты для диагностики и ремонта структуры базы данных
- статистическая информация по работе сервера склада
- информация о подключениях к серверу клиентов
- управление ролями и правами пользователей
- сервисные настройки для оптимизации быстродействия базы данных
Меню "Пользователи"
В данном меню находятся следующие пункты:
- Список пользователей
- Список ролей
- Список соединений
Создание ролей и назначение прав подробно описано в руководстве пользователя по системе StoreHouse v4 ftp://ftp.ucs.ru/books/storehouse_v4_user_manual.pdf
В списке соединений можно посмотреть информацию по всем клиентам, подключенным на данный момент к серверу SH4.
В списке соединений указывается следующая информация:
- Пользователь - пользователь SH4, вошедший в систему на клиентском рабочем месте
- Компьютер - имя компьютера, на котором запущен клиент
- Идентификатор - служебный идентификатор соединения
- Протокол - протокол, используемый клиентом для подключения к серверу
- IP-адрес - IP-адрес клиентского компьютера (хоста)
Список соединений можно использовать для анализа сообщений системы типа "Превышен лимит подключений к серверу" - т.к. лицензионный ключ защиты содержит ограничение на кол-во возможных одновременных подключений клиентов к серверу склада, каждое подключение клиентского приложения, включая сервисные приложения (Sh4Utils, инвентаризация и т.д.), будет учитываться ограничением лицензии.
Меню "Обслуживание"
В данном меню находятся следующие пункты:
- "Резервное копирование" - операция ручного создания резервной копии базы данных
- "Размер файла БД..." - отображает статистику по рабочей базе данных и позволяет изменять размер базы данных
Размер базы данных указывается в страницах или в мегабайтах (1 страница = 4Кб или 1Мб = 256 страниц) - параметры взаимосвязаны, т.е. изменение одного влечет за собой изменение другого.
При создании базы данных по умолчанию устанавливается размер в 35 000 страниц (приблизительно 137Мб) - как правило, базы данных такого размера хватает примерно на 2-3 года работы предприятия общественного питания.
Увеличивать размер базы рекомендуется постепенно, т.е. добавляя к первоначальному размеру не более 30000-50000 страниц. Задавать максимальный размер количества страниц в базе сразу не рекомендуется, т.к. это может усложнить процедуры связанные с перемещением и обслуживанием файла БД такого размера.
Примечание
Система не позволит установить новый размер базы данных, который меньше текущегоВ системе есть два похожих сообщения: "страничный кэш исчерпан" и "недостаточно страниц в базе данных", которые относятся к разным сущностям сервера склада. Иногда это приводит к путанице между понятиями "количество страниц в базе данных" и "страничный кеш" - в каждом случаев необходимо выполнить соответствующие настройки
- "Диагностика" - диагностика и автоматическое восстановление структуры базы данных.
Если в процессе работы с базой данных возникают сообщения, ссылающиеся на "страницы", "индексы", "ключи", вероятнее всего есть структурные повреждения базы данных - в таком случае необходимо воспользоваться диагностикой и восстановить структуру базы данных.
Применение диагностики с последующими процедурами резервного копирования и восстановления из резервной копии, позволяют восстановить работоспособность более чем в 90% случаев при возникновении структурных ошибок в базе данных SH4.
Если резервная копия стандартными средствами не выполняется, вероятнее всего, база данных содержит серьезные структурные нарушения и продолжать работу в такой базе не рекомендуется. В таких случаях необходимо восстановить базу данных из созданной ранее резервной копии или обратиться в техническую поддержку
Меню "Прочее"
В данном меню находятся следующие пункты:
- "Ограничения на работу с отрицательными остатками ..." - возможность запретить расходование в минус расходными и/или прочими накладными
"Оптимизация вычисления себестоимости" - включение опции хранения себестоимости накладных в закрытом периоде
Как следует из названия опции, оптимизация работает для закрытого периода. Таким образом, данную опцию имеет смысл использовать только совместно с операцией закрытия периода в приложении Sh.exe, меню "Сервис" ⇒ "Закрытие периода":
Операцию закрытия периода желательно выполнять регулярно и как можно ближе к текущей дате, что обеспечит высокую производительность системы при построении списков документов, отчетов и т.д. Особенно заметно это будет на достаточно больших базах, информация в которых накапливалась несколько лет.
"Снять блокировки..." - удаление блокировок документов, установленных всеми пользователями либо конкретным пользователем
"Доп. ограничения на открытый период..." - задание количества дней от текущей даты в течени которых возможно изменение документов в складе
Система будет автоматически закрывать документы для редактирования, которые введены ранее указанного кол-ва дней.
Обработка параметра:
- для версий склада ниже 4.99.ххх: при указании значения 1 разрешается править документы со вчерашнего дня, при значении 2 - с позавчерашнего и т.д.
- для версий склада 4.99.ххх и выше: при указании значения 1 разрешается править документы с сегодняшнего дня, при значении 2 - со вчерашнего и т.д.
"Статистика" - список всех объектов системы с возможностью просмотра детальной информации по каждому объекту
Статистика и информация по объектам системы может быть полезной в различных аспектах - обслуживании базы данных, локализация технических проблем в работе системы и т.д.
Например, можно посмотреть общую статистику по серверу SH4:
- дата и время последней успешной операции создания резервной копии базы данных (Last backup) - исходя из значения этого параметра, который хранится в самой базе, сервер выполняет автоматические операции по созданию резервных копий.
- сетевые протоколы, поддерживаемые сервером (Net protocols)
- размер используемого (выделенного) страничного кэша (Server cache allocated pages)
- максимальный размер страничного кэша (Server cache max pages)
- размер области базы данных, заполненной полезной информацией (Db commited pages) - по этому показателю можно делать вывод, насколько база уже заполнена и как скоро потребуется увеличение размера и/или операция удаления документов
- максимально возможный размер базы данных в страницах и Мб (Db file version)
- версия базы данных (Db file version)
- размер лог-файла сервера (Server log file size)
- размер файла журнала транзакций (Dblog file size)
- размер файла базы данных (Dbfile size)
- версия сервера (Server version)
"Выполнить запрос" - сервисный инструмент для работы со встроенными или внешним процедурами
Для получения информации по встроенным процедурам сервера достаточно указать наименование процедуры в поле "Процедура" и выполнить запрос (с помощью вызова контекстного меню или с помощью соотв. иконки на панели задач).
Для работы с внешними процедурами требуется указание в поле "Библиотека" полного пути к сервисной библиотеке (библиотека, как правило, предоставляться вместе с инструкцией по решению проблемы - пример такой библиотеки ShFix.dll ftp://ftp.ucs.ru/storehouse/sh4/shfix)
Параметры конфигурации сервера (SdbsConf)
SDB server configuration utility (SdbsConf.exe) - основное приложение для настройки параметров конфигурации сервера SH4.
Параметры конфигурации сервера подробно описаны в документе статье об установке StoreHouse 4.
В данном разделе рассмотрены особенности и рекомендации для некоторых параметров, связанных с сервисным обслуживанием:
- Backup directory (Каталог резервных копий) - полный путь к директории, в которой будут храниться резервные копии баз данных. Рекомендуется для каждого сервера создавать отдельную директорию для хранения резервных копий , что-бы в будущем было проще ориентироваться в принадлежности резервных копий тому или иному серверу.
- Backup options (Параметры резервного копирования) - включение/отключение автоматического режима резервного копирования БД и указание параметров резервного копирования.
Важно!
Рекомендуется всегда включать режим автоматического резервного копирования с опциями "Backup time" и "Stop server on error" - отсутствие актуальных резервных копий самая частая причина невозможности оперативно восстановить работу системы в случае поломки БД!Параметры резервного копирования:
- Backup time (Время резервирования) - выполнять резервное копирование в конкретное время суток, рекомендуемый режим
- On database loading (При запуске сервера) - выполнять резервное копирование во время запуска сервера, ненадежный режим
- On sever shutdown (При остановке сервера) - выполнять резервное копирование во время остановки сервера, ненадежный режим (например, при выключении ПК сервер сначала выполнит резервное копирование и только затем завершит работу)
- Stop server on error (Остановка сервера при ошибке) - при включении опции сервер будет остановлен после неудачной попытки резервного копирования и клиенты получат сообщение о невозможности продолжать работу, это рекомендуемая опция
С выключенным параметром "Stop server on error" сервер будет продолжать работу даже в случае возникновения каких-либо проблем в процессе создания резервной копии - это может привести к тому, что Заказчик лишится возможности быстрого решения возможных проблем, в том числе связанных со структурным нарушением целостности базы данных.
В случае несвоевременной реакции на возникшие проблемы в базе данных, существует несколько вариантов решения, которые не всегда могут устроить Заказчика:
- восстановить базу данных из ранее созданной резервной копии, что может привести к утере части актуальных данных
- обратиться в службу поддержки компании ЮСИЭС для восстановления базы данных - операция в большинстве случае дает положительный результат (в некоторых случаях с незначительной потерей актуальных данных), но требует определенного времени на выполнение работ, в течении которого работа Заказчика в системе SH4 должна быть приостановлена
Дата последней успешной операции резервного копирования хранится в базе данных - эта дата используется сервером для планирования операций автоматического резервного копирования. Если при попытке принудительно выполнить автоматическое резервное копирование (например, с помощью перезапуска сервера) резервная копия не создается, это может говорить о том, что сервер уже выполнял операцию в пределах периода, заданного в параметрах резервного копирования (проверить дату и время последней созданной резервной копии можно с помощью приложения Sdbman.exe в меню "Прочее" ⇒ "Статистика".). Вручную резервное копирование можно выполнить в любой момент. Если же требуется создание именно автоматической резервной копии (например, в случае восстановления пользователя и пароля администратора базы данных), необходимо временно изменить системную дату компьютера, чтобы согласно заданным параметрам операция выполнилась автоматически - после успешного завершения операции дату необходимо установить в текущее значение.
Automatic recovery (Автоматическое восстановление) - устанавливает режим автоматического восстановления БД при сбоях (например, при нештатном отключении питания), восстановление происходит при запуске сервера и использует для восстановления информацию из журнала транзакций (Database Log)
Автоматическое восстановление базы данных
Технология предназначена для восстановления баз данных StoreHouse из резервных копий. Операция восстановления происходит полностью в автоматическом режиме.
Конфигурация с автоматическим восстановлением БД может использоваться для сетевых ресторанов, где есть необходимость развертывания локальных (удаленных) БД на едином (центральном) сервере.
Важно!
Для возможности автоматического восстановления БД сервер StoreHouse должен быть запущен в качестве службы!Состав комплекса
В состав комплекса входят следующие файлы:
- Shrinit.exe - утилита для инициализации параметров
- Shrinit.ini - конфигурационных файл для утилиты shrinit.exe
- Shr.exe - утилита для выполнения восстановления БД из резервной копии
- SDBSERV.INI - пример конфигурационного файла для запуска Shr.exe
Дистрибутив можно загрузить с FTP-севрера ftp://ftp.ucs.ru/storehouse/sh4/Shr
Настройка и запуск
Перед запуском Shr.exe необходимо выполнить единоразовую процедуру инициализации параметров с помощью утилиты Shrinit.exe
Shrinit.exe
Утилита Shrinit.exe используется для инициализации (сохранения) параметров - эта операция выполняется единоразово, затем утилиту Shrinit.exe и конфигурационный файл Shrinit.ini можно удалить.
Содержимое конфигурационного файла Shrinit.ini:
[NTUSER] - необязательные параметры для персонализации пользователя Windows: Shr.exe необходимы права на запись к реестру, на остановку и запуск сервисов Name=Администратор Password= [SHUSER] - обязательные параметры: имя и пароль администратора, устанавливаемые для создаваемых при восстановлении баз данных Name=Admin Password=
Shr.exe
Утилита Shr.exe выполняет восстановление базы данных из резервной копии.
Формат запуска утилиты - командная строка вида:
Shr.exe<пробел><имя сервера SDBServ>
Примечание
Имя сервера, передаваемое в командной строке, должно соотв. имени сервера (Server name), заданное в SdbsConf.exeНапример, для восстановление базы для сервера SDBSERV запускаем с командной строки (или bat-файла) Shr.exe SDBSERV
Все параметры утилита Shr.exe считывает из INI-файла - для каждого сервера должен быть создан свой конфигурационный файл, имя которого совпадает с именем сервера.
Например, для сервера с именем SDBSERV должен быть создан и настроен конфигурационный файл SDBSERV.INI
Важно!
Для возможности автоматического восстановления БД сервер StoreHouse должен быть запущен в качестве службы!Содержимое INI-файла:
[Options] SrvNetName= - сетевое имя сервера, используемое для соединения с сервером. По умолчанию совпадает с именем сервера, формат зависит от типа подключения BkpPath= - маска, по которой ищутся файлы резервных копий, берется первый найденный попавшийся. Обязательный параметр LibName= - полный путь к библиотеке Sh_crtdb.dll. Обязательный параметр FilePath= - каталог, в котором создаются файлы восстановленной БД. Обязательный параметр MaxFileSize=0 - макс. размер файла БД в мегабайтах: 0 - размер не ограничен (по умолчанию) CreateLog=0 - режим логирования: "0" - выводить на экран (по умолчанию), остальные непустые значения - сохранять в файл DeleteFiles=0 - режим удаления файлов устаревшей БД и исходного бэкап-файла при успешном завершении операции: "0" - не удалять (по умолчанию), остальные непустые значения - удалять
Рассмотрим подробно каждый параметр:
- SrvNetName - сетевое имя сервера или строка подключения к серверу. Формат зависит от типа подключения - при использовании локального подключения или подключения по протоколу NetBIOS, указывается имя сервера (например, SDBSERV), тогда как при подключении по протоколу TCP/IP необходимо указывать строку в специальном формате:
- <IP-адрес сервера>:pT - строка подключения без использования таймаута и порта подключения, например SrvNetName="127.0.0.1:pT"
- <IP-адрес сервера>:pTt<таймаут подключения в мс> - строка подключения с использованием таймаута и без использования порта подключения, например SrvNetName="127.0.0.1:pTt20000"
- <IP-адрес сервера>:pTt<таймаут подключения в мс>a<порт подключения> - строка подключения с использованием таймаута и порта подключения, например SrvNetName="127.0.0.1:pTt20000a10124"
Важно!
Для подключения к серверу склада, запущенного как служба, необходимо использовать подключение только по протоколу TCP/IP. При использовании протокола TCP/IP всегда указывайте параметр таймаута для избежания ситуации, когда утилита Shr.exe будет терять связь с сервером после его перезапуска.- BkpPath - маска для поиска резервных копий в определенном каталоге. В качестве маски может быть задан как шаблон (например, C:\UCS\SDBSrv\Backup\*.bkp), так и путь к конкретному файлу (например, C:\UCS\SDBSrv\Backup\sh4_backup.bkp). В случае указания шаблона утилита будет использовать для восстановления первый найденный файл резервной копии, остальные будут игнорироваться - в такой конфигурации рекомендуется удалять резервные копии после их восстановления (DeleteFiles=1)
- LibName - полный путь к библиотеке SH_CRTDB.DLL из рабочего каталога склада
- FilePath - директория, в которой будет создаваться база данных и файл журнала транзакций после успешного завершения автоматического восстановления
- MaxFileSize - максимальный размер файла восстанавливаемой базы данных. Следует заметить, что при значении MaxFileSize=0 будет создаваться база данных размером, приблизительно в три раза превышающим размер самого архива. Рекомендуется использовать значение параметра MaxFileSize=0, т.к. в такой конфигурации всегда будет установлен необходимый и достаточный размер базы данных
- CreateLog - сервисный параметр. Вывод сообщения на экран (CreateLog=0) может потребоваться в случае решения возникших проблем при восстановлении, в рабочем режим достаточно журналирования операций в лог-файл (CreateLog=1)
- DeleteFiles - режим удаления "старой" базы данных и исходного файл резервной копии. Варианты использования зависят от требуемой конфигурации и, как правило, согласовываются с Заказчиком
Важно!
Для запуска утилиты Shr.exe требуются клиентские компоненты SH4 - DmCtrl.bpl, DoMan.dll, SdbCli.dll, RTL60.BPL и VCL60.BPL. Можно скопировать эти компоненты в каталог c Shr.exe из рабочего каталога SH4 либо скопировать утилиту Shr.exe в рабочий каталог SH4Пример
- На каждой удаленной точке сервер StoreHouse выполняет автоматическое создание резервной копии базы данных - параметры резервного копирования настраиваются с помощью SdbsConf.exe, рекомендуется настроить создание резервной копии в определенное время (см. далее)
- Через некоторое время после создания резервной копии (5-10 минут) файл архива передается на центральный сервер (варианты передачи данных в данной статье не рассматриваются)
- На сервере архивный файл копируется в директорию, которая указана в настройках INI-файла соотв. складского сервера
- Утилита Shr.exe выполняет автоматическое восстановление резервных копий (запуск утилиты можно настроить через планировщик Windows)
В центральном офисе сервера могут находится на одном компьютере, возможное кол-во одновременно запущенных серверов зависит от размеров ОЗУ (например, для запуска 16-ти серверов достаточно 2Гб оперативной памяти).
Примечание
Если длина имени сервера превышает 15 символов, подключение НЕ ПРОИСХОДИТ. Например, подключение к серверу KINOMAX_CHPOBEDA.INI (или KINOMAX_VOLGOGRAD.INI) не удалось, тогда как к KINOMAX_VORONEG.INI соединение устанавливается без проблем.