Организация работы с базой данных ТЦУ через Интернет

Автор:   Мукан Андрей, mukan@andriy.co

Пожалуй, это самый распространенный вопрос пользователей ТЦУ – как подключится к базе данных ТЦУ удаленно, через Интернет. В этой статье я постараюсь кратко изложить основные этапы работ для решения этого вопроса.

Если вам необходимо работать с удаленной базой данных ТЦУ, то это возможно сделать только с использованием баз данных формата MS SQL Server. SQL Server может обеспечить возможность работы с базой данных по каналам связи с невысокой пропускной способностью (по сравнению с пропускной способностью локальной сети). В большинстве случаев, особенно при значительном числе рабочих мест (более 3-4), SQL Server также повышает быстродействие и производительность работы даже в локальной сети. Таким образом, установка и настройка MS SQL Server на работу с базой данных ТЦУ – это вопрос времени.

MS SQL Server и сервер базы данных

Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Это служба, установленная на компьютер под управлением Windows. Компьютер, на котором установлена служба MS SQL Server в дальнейшем будем назвать «сервер БД». Если к производительности сервера БД предъявляются высокие требования, то стоит отдать предпочтение специализированному оборудованию. В качестве же простого сервера БД можно использовать любой современный компьютер.

Технические требования к серверу БД

  • Процессор – Intel, 4-x ядерный. Чем выше тактовая частота процессора, тем лучше. Чем больше ядер, тем лучше. Процессоры AMD также вполне пригодны, однако технологии конвейеризации потоков данных в процессорах Intel больше подходят для работы с массивами данных, такими, как базы данных SQL Server. Идеальным вариантом является сервер на базе процессора Intel® Xeon, но бюджет такого сервера будет самым большим, зато и производительность вас порадует.
  • ОЗУ – 4 Гб и более (DDR3). SQL Server любит память. Объем ОЗУ должен быть больше размера базы данных. Стоит отдать предпочтение материнским платам с большим количеством слотов памяти. На первое время можно ограничиться минимумом, позже можно будет установить дополнительные планки памяти.
  • Жесткие диски – 2 физических жестких диска по 250 Гб и выше. На одном установлена система и MS SQL Server, на втором хранятся резервные копии базы данных (инструкция по настройке резервного копирования по расписанию для MS SQL Server). При желании и достаточном опыте можно использовать RAID-0,1,5, но в большинстве случаев увеличение объема ОЗУ дает более ощутимый выигрыш в общей производительности SQL Server, чем увеличение производительности дисковой подсистемы, особенно, если учитывать фактор стоимости комплектующих.
  • Операционная система (в порядке предпочтения): 64-разрядные Windows Server 2008 R2, Windows Server 2003 SP2, Windows 7 (Professional, Enterprise, Ultimate) SP1, Windows XP Professional SP3. Если у вашего сервера БД объем ОЗУ менее 4 Гб и наращивать ее вы не планируете, то можно использовать 32-разрядные ОС. После установки ОС и драйверов устройств желательно больше не устанавливать никаких приложений, кроме антивирусного ПО и включения брандмауэра Windows либо другого.
  • Microsoft SQL Server (в порядке предпочтения): 2012, 2008 R2, 2005 SP4. Разрядность MS SQL Server (64 или 32) обязательно должна соответствовать разрядности операционной системы. Возможно использование как бесплатной редакции Express, так и полной редакции MS SQL Server. Ссылки на дистрибутивы ищите на сайте корпорации Microsoft. Наши статьи по установке и настройке MS SQL Server 2005 - статья 1 и статья 2. Со времени написания статей многое изменилось. В частности, сейчас нет необходимости создавать базу данных вручную в SQL Server Management Studio, сделать это можно из самой ТЦУ, сконвертировав вашу базу из формата MS Access в формат MS SQL Server. Скоро мы опубликуем статью по установке MS SQL Server 2008 и конвертированию базы данных ТЦУ.

Для повышения надежности, производительности SQL Server и безопасности данных требуется соблюсти некоторые рекомендации

  • Сервер БД должен использоваться для работы только службы MS SQL Server. Ограничьте использование офисных и пользовательских приложений до минимума! Сервер БД лучше всего использовать вообще без клавиатуры, мыши и монитора. Любой пользователь, работающий на сервере БД, снижает его надежность, производительность и бесперебойность работы своими приложениями, что бы он там не делал :)
  • Сервер БД должен находиться в помещении с ограниченным доступом. Обязателен источник бесперебойного питания, с совмещенным или отдельным стабилизатором напряжения. Сервер БД желательно не выключать, чтобы обеспечить круглосуточный доступ к БД. Периодически необходимо проводить регламентные работы по проверке работоспособности необходимых служб, проверке служебных журналов, чистке компьютера от пыли, проверке работоспособности вентиляторов и т.д.

Интернет

  • Если доступ к базе данных удаленных рабочих мест осуществляется через Интернет, то сервер должен быть подключен к Интернету напрямую, либо через маршрутизатор. Здесь самое важное – качество услуги вашего Интернет-провайдера. Излишне говорить, что подключение должно быть бесперебойным.
  • Крайне нежелательно использовать интернет-канал, к которому, кроме самого сервера БД также подключены пользователи вашей локальной сети. Любая активность пользователей в Интернете ограничивает пропускную способность канала связи, что снижает скорость работы пользователей на удаленных рабочих местах. Если иное подключение невозможно, ограничьте использование приложений в локальной сети, активно нагружающих Интернет-канал.
  • Для высокой скорости работы на удаленных рабочих местах в ТЦУ с подключением к БД через Интернет в значительной степени важна не столько скорость передачи данных, сколько низкое время отклика (ping) от сервера. Лучшая скорость достигается при величине отклика на ping до 50 мс. Хорошее значение для отклика – 50-80 мс, удовлетворительное – 80-150 мс, если время отклика выше 200 мс, то работа удаленных рабочих мест с ТЦУ будет затруднительна. По этой причине в большинстве случаев не рекомендуется использование мобильного (беспроводного) интернета. Однако, если в качестве удаленных рабочих мест используется Shopdesk, то требования к времени отклика и скорости канала связи Интернета на стороне сервера БД менее суровы. Идеальным можно считать вариант, когда удаленные рабочие места и сервер БД находятся в сети одного провайдера. В этом случае время отклика минимально, в сетях многих кабельных провайдеров работа удаленных рабочих мест с сервером БД почти не отличается по скорости от работы в локальной сети.
  • Скорость канала на отдачу должна быть высокой. Обычно пользователи знают одно значение скорости – «скорость интернета», которое характеризует скорость канала на прием данных. Однако при использовании SQL Server более важной величиной является пропускная способность канала на отдачу данных. При больших выборках (список документов или отчет за большой период времени) SQL Server отдает удаленному рабочему месту большую порцию данных. Именно для этого ваш интернет-канал должен обеспечить быструю отдачу, чтобы справляться с пиковыми нагрузками.
  • Пожалуй, это самое главное – узнайте у вашего Интернет-провайдера о возможности и присвоения вашему интернет-подключению на стороне сервера внешнего (“белого”) статического IP-адреса. Подключите эту услугу. Но не расстраивайтесь, если провайдер не имеет возможности дать вам статический внешний IP-адрес. У вас остается возможность использовать службы динамических имен, такие как DynDNS.com (Википедия о DynDNS) или NO-IP.com (Википедия о No-IP)
  • От статического IP-адреса плавно переходим к настройке подключения со стороны удаленных рабочих мест к серверу БД. На эту тему будет отдельная статья, а пока упомяну лишь о том, что необходимо в брандмауэре на сервере БД открыть TCP/UDP порты 1433 и 1434. Если интернет подключен к маршрутизатору, то дополнительно в нем необходимо настроить «проброску» этих портов на сервер БД.
  • На стороне удаленных рабочих мест интернет может быть любым, важна скорость приема данных. Выше – лучше. Однако, как говорилось об этом выше, наилучший результат в скорости работы с удаленной базой данных показывают рабочие места, которые находятся в сети того же Интернет-провайдера, к сети которого подключен сервер БД.

Хочу обратить ваше внимание, что эти требования – предпочитаемые. В действительности конфигурация вашего сервера БД может сильно отличаться от указанной выше. Например, MS SQL Server вполне сносно может работать и на ноутбуке с двухъядерным процессором и 2 Гб ОЗУ. Даже если при этом вы активно работаете на нем с офисными и другими приложениями. И даже если еще 5 пользователей вашей сети активно используют Интернет через единственный канал. Однако вы должны понимать, что обеспечить высокую производительность SQL Server на таком оборудовании и в таких условиях не сможет. Впрочем, если у вас удаленных рабочих места не много и (или) они не работают постоянно, а ваш бюджет ограничен, то на первое время вполне подойдет такое решение.

А теперь рассмотрим конечные решения по серверу БД

  • Одним из интересных решений является заказ услуги хостинга MS SQL Server у провайдера (Википедия о виртуальном хостинге). В этом случае вы размещаете только базу данных в Интернете, на MS SQL Server хостинг-провайдера. Вам не нужны лицензии ни на MS SQL Server, ни на Windows. База данных доступна круглосуточно. Обычно uptime серверов по заявлению хостинг-провайдера составляет 99.99%. Хостинг-провайдер взимает ежемесячную плату. Не буду приводить ссылки на предложения по данному виду хостинга, они без труда находятся в Google. Из недостатков – MS SQL Server разделяет ресурсы сервера БД, на котором ваша база данных – одна из десятков, сотен, а то и тысяч БД. То есть, производительность сервера может быть существенно ограничена. Также недостатком является ограниченный размер вашей БД, его увеличение влечет за собой дополнительную плату. Такой вариант не подходит для баз, которые интенсивно наполняются данными и которые требуют высокой производительности. В этом случае оптимальным является следующий вариант.
  • Практически все требования по организации подключения к удаленной БД удовлетворяет услуга провайдера, называемая Collocation. В этом случае ваш сервер БД размещается в датацентре провайдера, где он будет обеспечен качественным Интернет-соединением, бесперебойным питанием и ограниченным доступом к оборудованию. Обладая полным контролем над своим сервером, вы можете разместить на нем и другие необходимые для работы службы, например, службу Barcode Terminal Hosting, обеспечивающую связь приложения для ваших торговых представителей TCUMobile с базой данных ТЦУ. Либо торговый сервер ТЦУ, который обеспечит обработку чеков от приложения Shopdesk. Размер базы данных не ограничен, производительность сервера ни с чем не разделяется. Однако потребуются лицензии на Windows и MS SQL Server, если возможностей Express будет недостаточно.
  • Что делать, если ваш бюджет не предусматривает покупку оборудования, но вам нужен полный контроль над операционной системой для обеспечения возможности работы вышеуказанных приложений (Barcode Terminal Hosting или торговый сервер ТЦУ)? В этом случае вы можете заказать у хостинг-провайдера аренду выделенного сервера (Википедия о хостинге выделенного сервере). Этот вариант подобен предыдущему, за исключением оплаты лицензии за ОС, но является самым дорогим из-за высокой арендной платы за сервер.
  • Более приемлемым по цене является вариант с арендой виртуального выделенного сервера (VPS) (Википедия о виртуальном выделенном сервере). Производительность виртуального выделенного сервера определяется его ресурсами, за которые вы платите арендную плату. Нужно больше ресурсов – выше плата. Как и в предыдущем случае, вы не платите за лицензию на ОС.

Итак, проведем сравнение различных вариантов организации работы с SQL Server, учитывая вышеизложенные требования:

Требования/Вариант Сервер БД находится у вас в офисе Сервер БД находится в датацентре провайдера (Collocation) Виртуальный хостинг Выделенный сервер Виртуальный выделенный сервер VPS
Производительность при схожих технических характеристиках серверов Самая высокая Самая высокая Средняя. Разделяется между множеством баз данных Высокая Высокая
Стабильность доступа к серверу БД и БД MS SQL Server Определяется бесперебойностью питания и качеством каналов связи в офисе Высокая. Обеспечивается хостинг-провайдером Высокая. Обеспечивается хостинг-провайдером Высокая. Обеспечивается хостинг-провайдером Высокая. Обеспечивается хостинг-провайдером
Максимальный размер базы данных Неограниченный Неограниченный Ограничен тарифным планом Неограниченный Ограничен ресурсами сервера
Первоначальное вложение средств в оборудование Разовое вложение в покупку сервера БД, а также стоимость лицензий на ОС и полную редакцию MS SQL Server при необходимости. Разовое вложение в покупку сервера БД, а также стоимость лицензий на ОС и полную редакцию MS SQL Server при необходимости. Отсутствует Отсутствует Отсутствует
Арендная плата Условный аналог – плата за электричество и Интернет Низкая Самая низкая Самая высокая Высокая
Стоимость техобслуживания сервера БД Низкая Низкая Отсутствует Низкая Низкая
Автоматическое резервное копирование базы данных Настраивается самостоятельно Настраивается самостоятельно Зависит от тарифного плана хостинга, либо выполняется только вручную Настраивается самостоятельно Настраивается самостоятельно
Рекомендуется для Малых, средних, крупных сетей с рабочими местами, требующих доступа к БД как в локальной сети, так и через Интернет Сетей с рабочими местами, требующими доступа к БД только через Интернет Малых сетей с небольшим количеством рабочих мест и невысоким документооборотом. Доступ к БД только через Интернет Сетей с рабочими местами, требующими доступа к БД только через Интернет Сетей с рабочими местами, требующими доступа к БД только через Интернет
Примечание Полный контроль над аппаратным и программным обеспечением. Однако на вас возлагается ответственность за безопасность данных Без установки дополнительного оборудования контроль над сервером не является полным. Если вы случайно выключите сервер, то включить самостоятельно не сможете Самый привлекательный вариант для хостинга небольших баз данных ввиду низкой стоимости Ориентирован на пользователей, которым нужен полный доступ к аппаратному и программному обеспечению Разумный баланс между стоимостью и возможностями. Возможности те же, что и у выделенного сервера, стоимость ниже.

Если вы выбираете размещение сервера БД в Интернете, то перед покупкой услуги убедитесь, что отклик от сервера БД имеет приемлемую величину (до 80 мс). Для этого желательно выбирать географически близкий сервер БД.

Вверх