r_keeper_7 можно связать только с MS SQL версии 2012 и выше. В статье рассмотрена настройка связи с MS SQL 2012.

Установка SQL сервера

Для установки SQL сервера:

  1. Установите MS SQL Server 2012 или выше. Можно использовать выпуск Express.

    Во время установки сервера используйте смешанный режим аутентификации и задайте пароль для пользователя — sa
  2. MS SQL состоит из двух компонентов. Установите второй компонент - SQL Management Studio, запустите его и создайте новую базу, например с именем RK7.
  3. В Диспетчере конфигурации SQL Server включите протокол TCP/IP. Для этого:
    1. Раскройте ветку Сетевая конфигурация SQL Server.
    2. Выберите Протоколы MSSQLSERVER.
    3. Дважды нажмите по строке TCP/IP.
    4. В открывшемся окне на вкладке Протокол включите поле Включено.
    5. Убедитесь, что во вкладке IP-адреса в блоке IPAll указан порт. По умолчанию порт 1433, но вы можете указать любой свободный порт.
    6. Перезапустите SQL Server.

Режим версионности строк

Вы можете перевести базу в режим версионности строк — Row Versioning. Это необязательный режим, поэтому эту настройку можно пропустить. 

По умолчанию SQL Server работает в режиме Read Commited, который подразумевает блокирование данных во время запроса. Это может сильно помешать в случае многопользовательской работы. Начиная с версии 2005, поддерживается режим READ COMMITTED using row versioning. В этом режиме блокировки могут помешать только в том случае, когда разные пользователи пишут в одно и то же место,. Чтение данных никогда не блокируется и никого не блокирует.

Для включения режима версионности строк выполните скрипт:

ALTER DATABASE RK7 SET READ_COMMITTED_SNAPSHOT ON;
SQL

Подробнее читайте в официальной документации Microsoft: в статьях Using Row Versioning-based Isolation Levels или SQL Server 2005 Row Versioning-Based Transaction Isolation.

Восстановление базы данных из резервной копии

Вы можете восстановить базу данных из резервной копии:

  1. Запустите MS SQL Server Management Studio и пройдите авторизацию
  2. Слева в окне Обозреватель объектов выделите группу Базы данных
  3. Вызовите контекстное меню правой кнопкой мыши и выберите пункт Восстановить базу данных
  4. В открывшемся окне в разделе Общие укажите источник Устройство, а затем нажмите кнопку с тремя точками.

  5. Выберите тип носителя Файл и нажмите кнопку Добавить.
  6. Укажите путь к файлу и нажмите ОК.
  7. Проверьте базу на ошибки, нажав кнопку Проверка носителя резервной копии, и затем нажмите ОК.
  8. Дождитесь восстановления базы. После успешного восстановления система сообщит о завершении процесса:

Готово. База появится в списке баз данных.

Настройки в менеджерской станции

Чтобы настроить станцию, выполните следующие действия:

  1. Зайдите в справочник  Сервис > Экспорт данных > Настройки Внешних БД и сделайте копию предустановленной настройки «Microsoft SQL Server». Присвойте ей уникальное имя и смените статус настройки на Активный.
  2. В поле Основное > Строка соединения нажмите на кнопку в конце строки или дважды нажмите на поле ввода.
  3. Откроется окно ConnectionString. Нажмите кнопку Build...,
  4. Откроется окно Свойства канала передачи данных. Настройте связь с базой данных, созданной ранее:
    1. Перейдите во вкладку Поставщик данных и убедитесь, что выбран Microsoft OLE DB Provider for SQL Server.
    2. Во вкладке Соединение выберите сервер из списка, введите имя пользователя и пароль. Если нужного сервера нет в списке, то необходимо вручную ввести его имя.
      Если SQL-север установлен на том же компьютере, что и сервер справочников или отчетов, укажите адрес 127.0.0.1. Если на другом — укажите его IP-адрес и убедитесь, что сервер доступен по сети.
      Имя сервера также можно посмотреть при запуске SQL Server Management Studio.
      Введите имя пользователя и пароль.
      Выберите базу данных на сервере и нажмите Проверить подключение.
    3. Если проверка соединения прошла успешно, то нажмите ОК.
    4. В окне Свойства канала передачи данных нажмите ОК. Поле Строка соединения примет вид:

      Provider=SQLOLEDB.1;Password=[пароль];Persist Security Info=True;User ID=sa;Initial Catalog=[имя базы];Data Source=[имя сервера или IP-адрес].
      CODE
  5. Сохраните настройки.

Выполните выгрузку в БД SQL, используя созданную настройку:

  1. Перейдите в меню Сервис > Экспорт данных > Экспорт в другую БД.
  2. В поле Параметры соединения выберите созданную настройку.
  3. Укажите Имя пользователя и Пароль.
  4. В блоке Параметры экспорта оставьте флаги по умолчанию, если выгрузка происходит в чистую БД SQL.
  5. Нажмите Проверить.
  6. При удачном соединении кнопка ОК станет активной, нажмите ее. Запустится экспорт данных в БД SQL. В этот момент в SQL создаются таблицы.
    При успешной выгрузке окно с настройками экспорта данных закроется. Появится сообщение Экспорт завершен успешно.

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

  1. Перейдите в меню Настройки > OLAP Отчеты > Серверы Отчетов, выберите нужный сервер и настройте его:
    1. Пролицензируйте сервер справочников/отчетов согласно описанию в статье настройка сервера справочников.
    2. В группе Связь с внешней БД:
      • В поле Настройки связи с внешней БД выберите созданную настройку.
      • В поле Имя пользователя внешней БД пропишите имя пользователя БД SQL.
      • В поле Пароль пользователя внешней БД прописать пароль пользователя БД SQL.
    3. Укажите такие же настройке в группе Логи справочников:
      • В поле Настройки связи с внешней БД выберите созданную настройку.
      • В поле Имя пользователя внешней БД пропишите имя пользователя БД SQL.
      • В поле Пароль пользователя внешней БД пропишите пароль пользователя БД SQL.
    4. В группе Основное сделать следующее:
      1. В поле Источник данных кубов выберите параметр БД SQL.
      2. В поле Протоколирование запросов выберите подходящий параметр:

        • llAll протоколировать все запросы

        • llErroneous протоколировать запросы с ошибками

        • llNone — не протоколировать

      3. В поле Режим базы данных UDB выберите один из режимов: большой, средний, маленький, ультра легкий. Данный режим относиться к накопительной базе Check.udb.

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

        2. Средний  — частичная копия. Режим означает, что кроме данных заказов, все суммы будут сохраняется в check.udb.

        3. Маленький  — только чеки. Режим используется, если вы уверены, что будет иметься достаточно много накопительных данных — несколько ресторанов. В большинстве случаев рекомендуется использовать этот режим, чтобы база не становилась слишком большой.

        4. Ультралегкий  — только общие смены. В check.udb будет содержаться только информация об общих сменах и ссылки на них в базе SQL.
          Если вы решили изменить Режим базы данных UDB с большого на маленький при настроенной связи с SQL, то есть ресторан проработал в таком режиме уже продолжительное время, и выполнить ручной экспорт накопительных данных повторно, то размер файла Check.udb автоматически уменьшится. В результате большая часть информации из этой базы будет удалена, и в базу SQL экспортируются не все данные. Поэтому никогда не делайте экспорт накопительных данных, если вы используете режим базы данных UDB Маленький или Средний.
          Выбранный режим базы данных UDB никак не влияет на справочную информацию. Справочная информация всегда сохраняется на каждом сервере отчетов в полном объеме и может быть экспортирована повторно при необходимости.

    5. В секции Обработка данных выберите ресторан, данные с которых нужно собирать и видеть в отчетах.
  2. В конфигурационном файле сервера справочников rk7srv.INI и в файле сервера отчетов repsserv.ini пропишите параметр UseSQL=1.

    • Для сервера справочников параметр необходимо прописать в секции [RefServer]

    • Для сервера отчетов — в секции [Config].

  3. Перезагрузите сервер справочников и сервер отчетов.
Все изменения в настройках внешней БД происходят во время работы сервера при параметре UseSQL=0.

Если необходимо поменять настройки внешней БД:

  1. Остановите все серверы отчетов и сервер справочников, которые используют эту настройку.
  2. В конфигурационном файле сервера справочников rk7srv.INI или сервера отчетов repsserv.ini пропишите параметр UseSQL=0.
  3. Запустите нужный сервер.
  4. Поменяйте настройки.
  5. Вновь остановите сервер.
  6. В конфигурационном файле верните параметру UseSQL значение 1 — UseSQL=1.

Готово, можно продолжать работу.

Одновременно для нескольких ролей в r_keeper нельзя сделать связь с БД в SQL Server используя одного и того же пользователя в БД SQL. В r_keeper не сохранится информация о пользователе в настройках связи с внешней БД.

Оптимизация производительности

В целях экономии дискового пространства и некоторого увеличения производительности рекомендуется использовать Простую — Simple модель восстановления. 
Ознакомиться с различными моделями восстановления SQL, их различиями и особенностями вы можете в официальной документации Microsoft.

После изменения модели восстановления необходимо выполнить сжатие файла лога. Для этого:

  1. Нажмите правой кнопкой мыши на используемую базу данных
  2. Выберите Задачи > Сжать > Файлы  
  3. В открывшемся окне выберите тип файла Журнал
  4. Нажмите на кнопку ОК.

Возможные проблемы

Проблема: Иногда может не идти экспорт в только что созданную БД сервера SQL Server 2008 при выбранном провайдере Native Client. 
Решение: Выберите другой провайдер Microsoft OLE DB Provider for SQL Server, создайте заново чистую БД и повторите экспорт.

Проблема: Не строятся прямые отчеты
Решение: Если у роли отличаются права доступа на просмотр отчетов на разные объекты, то для построения прямых отчетов необходимо завести разных пользователей на SQL сервере. Затем настройте роли с такими пользователями в SQL. Для этого:

  1. В менеджерской станции r_keeper перейдите в меню Персонал > Работники
  2. Выберите роль, которой хотите предоставить доступ, и перейдите в ее Свойства
  3. Раскройте раздел Связь с внешней БД и дважды нажмите на поле SQL конфигурация
  4. Укажите Имя пользователя и Пароль для создания нового пользователя в SQL
  5. Войдите в MS SQL, используя созданные данные. В базе данных появится пользователь.