Настройка работы по сети или через интернет

Основные термины:

БД - База данных. Файл базы данных по умолчанию находится в папке C:\OPSURT_DB\OPSURT_DB_[version].FDB. C этим файлом непосредственно работает система управления базы данных СУБД Firebird (поставляется в комплекте).

Сервер (компьютер) - ЭВМ, на которой находится БД, там же создаются резервные копии. На этой машине устанавливается "серверная часть". Сервер может быть только один.

Клиент (компьютер) - это ПК, который подключается к серверу. На нём устанавливается клиентская часть. Количество одновременно подключенных клиентов неограничено.

Возможные варианты подключения:

Автономная работа (только один компьютер)

Это вариант применяется по умолчанию при установке. На компьютер устанавливается как клиентская, так и серверная часть. Дополнительных настроек не требуется.

Настройка подключения по локальной сети

  1. Настроить локальную сеть. (Если Вы не знаете как это сделать - обратитесь к ближайшему системному администратору.)
  2. Установить ПО. Выбрать один главный компьютер для хранения БД (сервер) и установить на него "серверную часть" (можно одновременно установить "клиентскую часть", чтобы на нём тоже можно было работать, например: приходовать товар).

    На остальных ПК - устанавливается ТОЛЬКО клиентская часть!

  3. Добавить исключение. На компьютере сервере добавьте правило для брандмауэра Windows: Пуск -> Панель управления -> Брандмауэр Windows -> Дополнительные параметры -> Правила для входящих подключений -> Создать правило -> Для программы -> Путь программы: %ProgramFiles% (x86)\Firebird\Firebird_2_5\bin\fbserver.exe (путь к фалу у Вас может быть отличаться!) -> Разрешить подключение -> Далее -> Готово. Если вы используете антивирусы или фаерволы, то добавьте вышеуказанный файл в исключения.
  4. Подключиться клиентом к серверу, для этого указать в настройках клиента IP адрес сервера.
    Кнопка сетевых настроекнастройки сетевых параметров программы

    Поле "Путь" - это путь к файлу базы данных НА СЕРВЕРЕ. Если Вы не перемещали файл в другое место, то менять это поле не нужно.

  5. Возможные ошибки подключения:
    • Connection reject by remote interface. Означает, что соединение блокируется программно. Попробуйте выполнить п.3, а также временно отключить антивирус/фаервол.
    • Unable to complete network request to host. Говорит о физической изоляции сервера. Нужно выяснить, на каком этапе обрывается соединение. Попробуйте соединить компьютеры "напрямую" или через "Switch", но без маршрутизаторов (роутеров). Если после этого соединение успешно установилось, то на маршрутизаторе нужно добавить разрешающее правило для встроенного фаервола на порт 3050. (См. инструкцию вашего роутера или обратитесь за помощью к системному администратору).
    • Прочие ошибки. Смотрите в ответах

Локальный компьютер как интернет-сервер

  1. Выполните настройки для локальной сети (смотрите предыдущий пункт). Если подключить сервер и клиент в локальную сеть, то они должны успешно подключаться.
  2. На клиенте укажите внешний ip адрес сервера. Существует много онлайн-сервисов, отображающих Ваш ip адрес, например: https://2ip.ru/. На компьютере-сервере в любом броузере откройте эту страницу. Именно этот ip адрес нужно указывать в строке подключения программы на клиентах.
  3. Если подключиться не удалось.
    • Настроить "проброс порта 3050" (Port forwarding). На роутере, который используется сервером для выхода в интернет, нужно настроить "Port forwarding" - проброс порта 3050. Инструкции у нас нет, т.к. это напрямую это зависит от производителя, модели и версии прошивки маршрутизатор, смотрите инструкцию к вашему устройству. В интернете много информации по этому поводу. Вот основные параметры:
      Public Port3050
      Traffic TypeTCP
      IP Address{Нужно указать локальный ip адрес сервера}
      Private port3050
  4. Настроить Dynamic DNS. Практически все интернет-провайдеры предоставляют временные внешние ip адреса. Т.е. после каждой перезагрузки маршрутизатора, ему будет присвоен новый ip-адрес, а значит каждый раз при запуске программы нужно будет заново узнавать ip адрес сервера и указывать его в строке подключения. Есть Выхода два:
    • Оформить у провайдера услугу "статический ip адрес". В этом случае ip адрес будет оставаться неизменным, даже после перезагрузки роутера.
    • Использовать сервис Dynamic DNS. Например: dyn.com, noip.com, hldns.ru. В этом случае на клиенте нужно будет указвать не ip адрес, а доменной имя, которое останется неизменным. В современных прошивках роутеров производители уже закладывают возможность настройки DynDNS, но большинство сервисов из-за их популярности сейчас стали платными. Подробную информацию о настройке этих служб ищите в интеренте, сейчас об этом много статей.

Если у Вас возникают технические сложности, то проконсультируйтесь с системным администратором или ИТ-специалистом: они подскажут как поступить в конкретном случае.

Linux хостинг

Этот вариант не бесплатный, но довольно удобный. На момент написания статьи стоимость нужного тарифа на хостинге Fozzy составляет 79 руб./месяц.

Преимущества хостинга:

Регистрация

Первое что нужно сделать, зарегистрироваться по нашей реферальной ссылке https://accounts.fozzy.com/aff.php?aff=17927. Для нас это небольшой бонус, которым мы пользуемся при оплате нашего хостинга, на котором ведём разработку этого проекта.

На сайте Fozzy выбираем услугу "Linux VPS (79 руб месяц)" и оплачиваем первый месяц. После этого на почту аккаунта придёт сообщение с доступами. В дальнейшем в инструкции под доступами будут подразумеваться данные, которые указаны под заголовком: "Данные доступа к серверу по протоколу SSH" и которые имеют вид:

IP-адрес: XXX.XXX.XXX.XXX
Логин: root
Пароль: XXXXXXXXXXX

Теперь настало время придумать пароль администратора (именно этот пароль будет используется для входа в AdminTool). По умолчанию в Windows это пароль masterkey, но в нашем случае, программа будет эксплуатироваться через интернет и использовать стандартный пароль опасно. Итак, придумываем пароль, сохраняем его в какой-нибудь текстовый файл и пока не закрываем.

Загрузка файлов на сервер

Cкачиваем дистрибутив сервера базы данных Firebird SQL Server.

Загружаем дистрибутив на хостинг. Для этого воспользуемся популярным файловым менеджером Filezilla. Вводим данные для подключения и подключаемся

Параметры подключения Filezilla

Далее переходим в папку "/var/opt" на сервере (это правая сторона файлового менеджера), в нёё будем загружать дистрибутив. Затем находим локальный файл Firebird SQL Server (в левой стороне файлового менеджера), который скачали ранее и закачиваем его на сервер.

Закачиваем файл на сервер Filezilla

В туже папку ("/var/opt") загружаем актуальный файл базы данных OPSURT_DB_XXX.FDB, по умолчанию он находится на локальном компьютере в папке C:\OPSURT_DB\.

Установка Firebird

Дистрибутив Firebird загружен на сервер, теперь его необходимо установить. Для этого скачиваем и устанавливаем программу Putty. Указываем ip адрес и нажимаем "Open".

Подключение Putty

Появится окно командной строки с надписью login as:

Авторизация Putty

Теперь из предоставленных доступов копируем логин пользователя (root) переходим в окно Putty и нажимаем ПРАВОЙ кнопкой мыши для вставки, затем нажимаем "Enter". Аналогично поступаем с паролем.

Перед копированием важно выделить только знаковые символы (без пробелов в начале и конце).

Если всё сделано правильно, вид окна будет следующим:

Успешная авторизация Putty

Теперь вводим команды. Одна строка - одна команда. После выполнения одной команды подтверждаем клавишей "Enter"

sudo apt-get install libncurses5
sudo apt-get install ia32-libs
sudo apt-get install xinetd
cd /var/opt
chmod -R 777 ./
tar -xvf FirebirdSS-2.5.9.27139-0.amd64.tar.gz
cd ./FirebirdSS-2.5.9.27139-0.amd64
sh install.sh

Зупустится установка, на экране появится надпись "Press Enter to start installation or ^C to abort". Жмём "Enter".

Теперь ждём надпись "Starting Firebird server: Please enter new password for SYSDBA user:". Копируем пароль администратора (который придумали и сохранили ранее), кликаем ПРАВОЙ кнопкой мыши по окну консоли и жмём "Enter".

Установка Firebird завершена.

Инициализация пользователей

Открываем AdminTool, при запуске указываем:

  1. путь к файлу базы данных на сервере /var/opt/OPSURT_DB_2020.1.FDB
  2. ip адрес сервера
  3. пароль (который указывали при уставновке Firebird)

Запуск AdminTool

Теперь нужно инициализировать всех пользователей. Для этого кликаем по пользователю правой кнопкой мыши и выбираем "Инициализировать" и вводим пароль пользователя. Повторяем операцию для всех остальных пользователей.

Инициализация пользователей в AdminTool

На этом работы завершены, можно открывать основное приложение и продолжать работу в программе.

Файл базы данных в облаке (не для одновременной работы!!!)

Метод не рекомендуется, так как при разовом одновременном подключении нескольких пользователей целостность данных будет нарушена!

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