1с сервер поставить отдельно от sql. Создание информационной базы на SQL-сервере

Обычно установка MS SQL Server не рассматривается, поскольку считается, что это достаточно просто – несколько раз нажал кнопку Далее и база данных установлена. Тем не менее, есть несколько нюансов, способных отравить жизнь даже опытному администратору, при условии, что он ранее не устанавливал MS SQL Server для 1С.

Создание виртуальных серверов

Первым делом необходимо создать один или два виртуальных сервера. Ранее мы уже писали о выборе оптимальной конфигурации виртуального сервера для 1С. При большой нагрузке вам понадобится два виртуальных сервера – один будет использоваться для 1С, а второй – для СУБД. В этой статье будем считать, что нагрузка умеренная, поэтому и 1С, и СУБД будут установлены на один сервер. Конфигурация виртуального сервера приведена в таблице.

Конфигурация виртуального сервера при умеренной нагрузке

Установка MS SQL Server для 1С

Скачайте последнюю версию MS SQL Server. Подробно процесс установки мы рассматривать не будем – он действительно прост. Зато мы остановимся лишь на необходимых настройках.

По умолчанию MS SQL Server загружается на системный диск С:. Выбрав пользовательский тип установки (рис. 1) можно изменить диск и каталог назначения (рис. 2).

Рис. 1. Средство загрузки MS SQL Server

Рис. 2. Выбор каталога загрузки

Далее нужно дождаться, пока инсталлятор загрузит необходимые файлы (рис. 3), после чего вы увидите окно Центра установки SQL Server (рис. 4). Центр установки позволяет не только установить SQL Server, но и выполнить различные операции по обслуживанию сервера баз данных. В нашем случае нас пока интересует установка, поэтому перейдите в раздел Установка и выберите команду Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке.

Рис. 4. Центр установки SQL Server

Рис. 5. Раздел Установка

Запустится инсталлятор, первые несколько шагов не нуждаются в комментариях. А вот о выборе компонентов нужно поговорить отдельно. Для работы 1С не нужны абсолютно все компоненты, достаточно двух — Службы ядра СУБД и Соединение с клиентскими средствами . Ранее можно было выбрать компонент Средства управления , в последнем выпуске SQL Server (2017) установка средств управления производится отдельно — из раздела Установка . Итак, выберите два основных компонента, задайте каталоги установки (ранее мы выбирали каталог загрузки) и нажмите кнопку Далее .

Рис. 6. Выбор компонентов сервера

Нажимайте кнопку Далее, пока не перейдете в раздел Конфигурация сервера (рис. 7). На вкладке Параметры сортировки убедитесь, что выбрана кодировка Cyrillic_General_CI_AS. Если вы выбрали русский язык (рис. 2), то эта кодировка будет выбрана по умолчанию, а вот если вы предпочитаете английский язык на сервере, то кодировку придется сменить.

В разделе Настройка ядра СУБД на вкладке Конфигурация сервера установите смешанный режим проверки подлинности (рис. 8), а также установите пароль для учетной записи системного администратора сервера БД (sa ). Также нужно назначить администраторов сервера. Если вы работаете под CloudAdmin или другим пользователем с административными правами, просто нажмите кнопку Добавить текущего пользователя .

Следующая вкладка — Каталоги данных — очень важная. Пользовательские базы данных и база tempdb должны храниться на самом производительном диске. В идеале добавить SSD-диск для хранения баз данных. Хотя расположение базы можно указывать при ее создании, задание правильных настроек по умолчанию избавляет вас от лишней работы, а также от ситуации, когда база создается средствами 1С и оказывается в каталоге по умолчанию, т.е. на системном диске. Сразу можно также указать каталог для хранения резервных копий.

Рис. 9. Каталоги данных (пути по умолчанию)

Остальные параметры можно оставить по умолчанию. Нажмите кнопку Далее , а затем кнопку Установить и подождите, пока SQL Server будет устанавливаться.

Вернитесь в окно Центра установки, выполните установку средств управления SQL Server (рис. 10). Откроется браузер со страничкой, откуда можно скачать средства управления. Загрузите файл инсталлятора и производите установку. Устанавливать средства управления на сервере не обязательно, их можно установить на компьютере администратора, но поскольку у нас виртуальный сервер, мы не будем усложнять его настройку и установим средства управления SQL Server на этом же компьютере.

Настройка MS SQL Server для работы с 1С:Предприятие

Мы только что выполнили установку SQL Server и средств управления. Осталось настроить сервер для работы с 1С. Используя средства управления, подключитесь к серверу SQL Server. Щелкните на сервере в списке слева правой кнопкой мыши и выберите команду Свойства (рис. 11). Убедитесь, что кодировка Cyrillic_General_CI_AS. В противном случае сервер придется переустановить.

Рис. 11. Свойства сервера

Если с кодировкой все в порядке, перейдите в раздел Память . Укажите доступный SQL-серверу объем ОЗУ, в противном случае SQL-сервер будет стремиться утилизировать всю доступную память. Если 1С будет установлена на этом же сервере, то такое поведение SQL Server нельзя назвать оптимальным — для 1С тоже нужно оставить доступные ресурсы.

Закройте окно свойств. Перейдите в раздел Безопасность, Имена входа . Щелкните правой кнопкой мыши на разделе Имена входа и выберите команду Создать новое имя входа . Создайте новую учетную запись пользователя, от имени которого будет подключаться 1С — использовать учетную запись администратора (sa), предоставив 1С максимальные права, мягко говоря, неправильно.

Введите имя пользователя, установите проверку подлинности через SQL Server (рис. 13). Далее перейдите в раздел Роли сервера и выберите dbcreator, processadmin и public (рис. 14).

Рис. 13. Создание новой учетной записи пользователя для 1С

На этом все. Мы установили SQL Server и средства управления, выполнили базовую настройку сервера и создали учетную запись для работы 1С. В большинстве случаев параметры SQL-сервера по умолчанию более чем подходят для обеспечения производительной работы сервера 1С:Предприятие.

Эта статья содержит информацию о процедуре установки 1С в клиент-серверном варианте.

Установка платформы 1С описана в другой нашей статье – “Администрирование 1С”, в разделе “Установка 1С”. Установка на сервер почти полностью совпадает с установкой на локальный компьютер, с одной лишь разницей. В серверном варианте при выборе устанавливаемых компонент необходимо выбрать “Сервер 1С:Предприятия” и “Администрирование сервера 1С:Предприятия”.

Установить 1С на клиентских компьютерах, с которых будет осуществляться подключение к серверу.

Установка на клиентских компьютерах ничем не отличается от способа, описанного ранее в статье “Администрирование 1С”.

Создать информационную базу в SQL.

Создание информационной базы в SQL тоже очень похоже на создание базы в файловом варианте. Разница заключается в том, что на этапе выбора типа расположения информационной базы необходимо выбрать “На сервере 1С:Предприятия”.

В пункте “Кластер серверов” укажите имя (а лучше IP-адрес) сервера, на который устанавливали SQL.

В пункте “Имя информационной базы” укажите любое имя, которое хотите дать базе.

Тип СУБД – SQL.

Пользователь базы данных и его пароль – тот самый суперпользователь, о котором говорилось выше, на этапе установки MS SQL.

Смещение дат оставьте по умолчанию.

Необходимо отметить пункт “Создать базу данных в случае ее отсутствия” и нажать “Далее”.

Теперь база успешно создана на сервере SQL и добавлена в список доступных баз. Внизу на картинке можно увидеть результат проделанной работы.

Стоить отметить, что созданная база пока еще пустая. Это каркас, место, выделенное в SQL под вашу информационную базу. Для того, чтобы загрузить свою базу в этот каркас – необходимо воспользоваться средствами Выгрузки/Загрузки информационной базы. Процедура Выгрузки/Загрузки также описана в другой нашей статье “Администрирование 1С”.

Для того, чтобы довести систему до идеального состояния в дальнейшем необходимо будет настроить “план обслуживания” созданной базы данных. План обслуживания – это набор процедур, которые SQL будет выполнять регулярно по заданному расписанию. Например, будет регулярно делать резервные копии и удалять временные файлы. Работа с SQL выходит за рамки темы статьи и будет описана в одной из следующих.

2 февраля 2015 в 16:04

Максимально эффективная по скорости работы - серверная схема, для клиент-серверной 1С 8.х

Предисловие

Постоянно сталкивался с высказываниями ИТ специалистов «сеть нагружена на 20%… процессоры на 50%… очередей к дискам мало… Значит сеть и сервера справляются… смотрите код в 1С проблемы исключительно там».

На самом деле происходило следующее (сервер 1С и SQL разнесены на разные компьютеры): сеть практически использовалась по максимуму(эти "20% загрузки сетевого интерфейса " = «20% полезные данные» + «80% потеря на служебной обработке» ). И соответственно из-за малой ширины канала обмена «полезными» данными - SQL сервер с «Сервером 1С» постоянно ожидали друг друга, что вело к малой утилизации ресурсов CPU и дисковой системы.

Ведение: Сначала хочу заострить внимание на том что же такое 1С платформа?.

Итак начнем с главного 1С - построенная на ORM (объектно-реляционном отображении)-система и программист в ней работает не напрямую с реляционным представлением, а с объектами.
ru.wikipedia.org/wiki/ORM

Программист в среде 1С - пишет объектную логику, а за сборку/разборку и запись объектов в «плоский вид» по таблицам базы данных отвечает сама платформа.

Основные "+" и "-" с точки зрения ORM:

"+" Программист в среде ORM получает преимущество в скорости разработки приложения из-за уменьшения количества кода и его простоты по сравнению с исключительно реляционным программным кодом (пример SQL запросы). А также освобождается от написания кода работающего непосредтсвенно с записями в таблицах Реляционной СУБД.* 1

"-" Сложности для создателей «платформ» ORM и проблемы производительности:

Использование реляционной базы данных для хранения объектно-ориентированных данных приводит к «семантическому разрыву», заставляя программистов писать программное обеспечение, которое должно уметь как обрабатывать данные в объектно-ориентированном виде, так и уметь сохранить эти данные в реляционной форме. Эта постоянная необходимость в преобразовании между двумя разными формами данных не только сильно снижает производительность, но и создает трудности для программистов, так как обе формы данных накладывают ограничения друг на друга.

*1«Уточнение». Несмотря на то, что 1С 8.х позволяет работать с реляционно-подобным кодом (только чтение) в объекте 1С «Запрос» - это все-таки не напрямую один-в-один транслируемый в реляционную СУБД запрос к таблицам хранения данных, а прежде всего «Объектный запрос» - также не минующий стадию сборки разборки объектов. Поэтому зачастую вместо много-тысяче строчных «Объектных запросов» - наиболее оптимально по быстродействию кода и скорости разработки - написать объектный не ряляционно-подобный код.

Глава 1: Расмотрим модель клиент-серверной 1С 8.х

Отмечу основные «узкие» места влияющие на производительность:

1) Первое узкое место - это коммуникационная среда передачи данных .
На рисунке стрелками показаны потоки обмена данными, где «красные» - это Реляционная СУБД<->Объектная СУБ, «оранжевые» - синхронизация между Объектными СУБД.
Т.к. при использовании отдельных серверов для СУБД и кластеров 1С – коммуникационная среда это сетевые соединения – то существуют существенные задержки в передаче данных многочисленными мелкими порциями – как из-за латентности самой физической реализации интерфейсов, так и из-за латентности узлов в этой сети.

Рассмотрим на примере сетевого стандарта Ethernet Gigabit (график зависимости скорости передачи данных… ниже )
на примере работы Сервера 1С с MS SQL (по умолчанию размер коммуникационных пакетов 4 кб) :

На графике видно, что при использовании пакетов ДАННЫХ =4 кб пропускная способность рассмотренной сети всего 250 Мегабит/с. (как правильно заметили в комментария к публикаци: это не пакеты протоколов например уровня TCP , а пакеты ДАННЫХ которые генерируют приложения участвующие в обмене)

Из практики: такое разнесение на Два отдельных сервера
MS SQL (сервер №1)< - Ethernet Gigabit ---> «Сервер 1С»(сервер №1)
проигрывало по скорости работы платформы
на 50%
варианту MS SQL (сервер №1) < - Shared Memory (без сети через участок памяти) ---> «Сервер 1С»(сервер №1)… и это уже «на одном высоконагруженном пользовательском сеансе»

2) Узкое место - это количество отдельных компьютеров «кластеров 1С» , чем их больше тем больше затраты на синхронизацию и как следствие уменьшение производительности системы.

3) Узкое место - количество отдельных процессов сервера 1с , чем их больше тем больше затрат на их синхронизацию… Но тут скорей всего необходимо найти «золотую середину» - для обеспечения стабильности. 2*
2* «Уточнение» - для MS Windows существует такое правило:
Процессы дороже чем потоки, что означает применительно к данному случаю на практике следующее: скорость обмена между двумя потоками внутри одного процесса значительно превышает, скорость обмена между потоками находящихся в разных процессах.

Поэтому например «Файловая 1С 8.х» всегда превышает по скорости однопользовательской работы платформы в клиент-серверном варианте. Все просто т.к. в случае «Файловой 1С 8.х» поток «Реляционной СУБД» общается с потоком «Объектной СУБД» внутри одного единого процесса.

4)Узкое место – одно-поточность пользовательского сеанса , т.к. каждый отдельно взятый - пользовательский сеанс не распараллеливается платформой на несколько, то его работа ограничивается использованием ресурсов одного ядра CPU => следовательно желательна максимальная скорость каждого ядра, в этом случае быстродействие платформы 1C например на 10-ядерном CPU по 1 ггц - будет значительно уступать быстродействию платформы на 4-ех ядерном CPU по 3 Ггц – естественно до определенного количества потоков.

Глава 2(Итог): Рассмотрим не масштабируемый и масштабируемый варианты - наиболее эффективных схем для платформы 1с 8.х. для OS Windows (пологаю для Linux ситуация аналогична)

1-Вариант(не масштабируемый). В расчете на 100 «высоконагруженных пользовательских сеанса»

1) эффективен обычный 2-ух сокетный сервер с 4-ех ядерными CPU по 3 Ггц.

3) MS SQL < - Shared memory --> «Сервер 1С»

2-Вариант(масштабируемый). начиная со 100 «высоконагруженных пользовательских сеанса» и далее ….
Тут логичней всего пойти по пути немецкой 1с-ки «Sap HANA»))
Собирать модульный «Супер-компьютер» от фирмы SGI – состоящий из «лезвий» на 2-х сокетных материнских платах, каждое лезвие соединяется друг с другом сложной топологией сверх-быстрого интерконнекта на основе NUMA-чипов, и все находится под управлением единой OS. Т.е. программы внутри такого сервера по определению имеют доступ к ресурсам любого «лезвия».

1) добавляем «лезвия» по необходимой нагрузке… из расчета примерно одно «лезвие» на 100 пользователей.

2) быстрая дисковая система на SSD

3) MS SQL < - Shared memory --> «Сервер 1С»

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

Установка технологической платформы и конфигурации на локальный диск

Поскольку ни одно прикладное решение 1С не может работать без своего движка – платформы – установка на локальный компьютер делится на два принципиальных шага:

Пошаговое руководство, как установить 1С, подробнейшим образом описано в документации, прилагаемой к каждой лицензионной версии типовой или отраслевой конфигурации. Точное следование его указаниям позволит выполнить установку самостоятельно и без затруднений.

Установка сервера 1С:Предприятие на MSSQL

Для понимания нижеописанного необходимо разъяснить два понятия:

  • клиент – персональный компьютер или программное обеспечение, единица сети, генерирующая запросы к серверу с целью получения или обработки каких-либо данных;
  • сервер – мощный компьютер со значительными производственными возможностями или программное обеспечение, формирующий ответы на запросы клиента.

Клиент-серверная архитектура предполагает взаимодействие клиентского приложения с сервером информационных баз данных посредством специального приложения – сервера 1С:Предприятия.

Установка MSSQL на серверную машину описывается во многих руководствах с возможной вариативностью в зависимости от SQL-версии и версии серверной операционной системы. В общем случае установить 1С на сервер можно, следуя пошаговым действиям:

  1. В имеющемся дистрибутиве необходимо запустить файл установки setup.exe (для продолжения потребуются Microsoft.NET Framework и операционный установщик Windows Installer):
  2. Предлагается несколько вариантов дальнейшего развития событий: первичная установка, модификация уже установленных компонентов, обновление или их поиск. На этом этапе программа проверяет соответствие минимальным требованиям MSSQL к операционной системе:
  3. Необходимо ввести ключ продукта, полученный при покупке лицензионной программы. После внимательного и вдумчивого прочтения лицензионного соглашения на английском языке необходимо установить свое согласие в виде галочки:

    Переход к последующему шагу осуществляется при нажатии кнопки Next («Далее»).

  4. При нажатии на кнопку Install предлагается множество настроек, галочки в которых устанавливаются по необходимости: можно выбрать все (Select All) или только самые необходимые (DatabaseEngineServices, ClientToolsConnectivity, ManagementToolBasic с включением подчиненных составляющих):
  5. Настройки на последующих шагах рекомендуется оставить по умолчанию, переход осуществляется по кнопке Next:
  6. Выбираются директории для хранения пользовательских данных (база SQL 1C), логов, временных файлов и файлов резервного копирования информационных баз (бэкапов).
  7. Следующий шаг добавляет текущего пользователя, который будет обладать правами администратора системы (кнопка «Add Current User»):
  8. Настройки на последующих страницах остаются по умолчанию, если ситуация не требует иного. При нажатии кнопки Install запускается непосредственный процесс установки: цветовая линейка показывает динамику выполняемой процедуры. После успешного завершения установки будет выдано соответствующее сообщение и останется только закрыть установщик нажатием на кнопку Close (Закрыть).

Если установка серверной части с таким множеством настроек кажется достаточно сложной, то для ее выполнения следует обратиться к или системному администратору локальной сети.

Установка технологической платформы 1С:Предприятие на сервер

Установка необходимой для работы конфигурации платформы, по сути, мало чем отличается от обычной, затем лишь исключением, что на определенном шаге необходимо выбрать установку компонент: «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятие»:

На последующих страницах установщика необходимо выбрать язык интерфейса по умолчанию, выбрать существующего или создать нового пользователя для идентификации при запуске сервиса. Безопасность подключения гарантируется вводом пароля с его подтверждением.

При нажатии на кнопку «Установить» будет запущен процесс установки технологической платформы «1С:Предприятие» на сервер:

В дальнейшем будет запрошена необходимость установки драйвера защиты в случае приобретения поставки с аппаратным ключом или активация программной лицензии. В случае успешной установки технологической платформы 1С:Предприятие 8 будет выдано системное сообщение.

Создание информационной базы на SQL-сервере

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

Далее следует заполнить все необходимые поля настроек параметров информационной базы: наименование базы данных и ее имя в серверном кластере, IP кластера серверов 1С:Предприятия и сервера базы данных, тип системы управления базами данных (СУБД) и т.д.:

Продвигаясь по следующим шагам с оставленными по умолчанию установками, завершающим действием будет создание на сервере информационной базы SQL.

Установка клиентской программы

Для возможности работы пользователей с информационной SQL-базой необходимо выполнить правильное ее подключение на клиентских станциях. Последовательность такого подключения:


Если были верно указаны настройки создания информационной базы на сервере 1С:Предприятия корректна выполнена настройка 1С клиент при запуске программы с клиентской рабочей станции будет осуществлено подключение к серверной машине.

Обновление статистики базы данных

(один или несколько раз в день)

Если вручную, то выполняем процедуры:

Exec sp_msforeachtable N"UPDATE STATISTICS ? WITH FULLSCAN" DBCC UPDATEUSAGE (dbname)

Через графический интерфейс:

Очистка процедураного кэша СУБД

(после обновления статистики)

Выполняем процедуру

DBCC FREEPROCCACHE

Реиндексация базы данных

(раз в сутки в не рабочее время)

Если вручную, то

Sp_msforeachtable N"DBCC DBREINDEX (""?"")"

Через графический интерфейс:

Используйте анализа фрагментированности для снижения нагрузки

Для больших баз данных нужно уменьшать ненужные операции по дефрагментации тех , для которых это не требуется.

Функция таблицы динамического управления sys.dm_db_index_physical_stats возвращает процент фрагментации в столбце avg_fragmentation_in_percent . Если значение в этом столбце превышает 25%, то для восстановления исходных параметров производительности рекомендуется выполнить дефрагментацию/реиндексацию этого индекса.

Еще проще, воспользовшись отчетом:

Настройте резервное копирование

Не забудьте настроить автоматический для вашей базы данных. Это существенно дешевле, чем не делать бэкап и без нервов:) . Хотя бы раз в неделю проверяйте, что не закончилось место и восстанавливайте бэкап в копию базы для проверки а спасет ли бэкап, "если что"...

Уменьшение размера базы (лога) данных

Уменьшить базу данных можно или с помощью графического интерфейса приложения SQL Server Management Studio.
Первый случай выполняется посредством вызова контекстного меню на необходимой базе и выбора Tasks - Shrink - Database.
Второй случай опишем несколько подробнее. Ниже приведен скрипт уменьшения лога:

DBCC shrinkdatabase(N"base1c", TRUNCATE_ONLY); /*усечение всей базы*/

use DBCC SHRINKFILE (N"base1c_Data", 101); /*усечение только файла данных до размера 101 мб*/

use DBCC SHRINKFILE (N"base1c_Log", 0); /*усечение только файла транзакций до размера 0 мб*/

CHECKPOINT; /*Записывает все данных из буферного кэша в текущей базе данных на диск*/

BACKUP LOG TO DISK = N"F:\log\base1c.bak" WITH TRUNCATE_ONLY /*очистка журнала транзакций */

где:
base1c - имя базы данных
F:\log\base1c.bak - путь к файлу бэкапа лога

Публикации по теме