Поднимаем сервер 1C 8.x (Windows 2008 R2 + MSSQL 2008R2)
В данном обзоре будем детально описывать, процесс установки и настройки MSSQL 2008R2 применительно к 1с8.2. Создадим плоский образ для последующей автоматической установки, настроим SQL-сервер для размещения баз 1С, установим сервер 1с Предприятие 8.2., померим скорость работы 8-ки в тесте Гилева.
Итак, у нас есть, дистрибутив SQL Server 2008R2 Developer Edition. Скопируем содержимое оригинального диска, допустим в G:\SQL2008R2. Скачаем последние обновления и интегрируем их в дистрибутив. Для этого в корне нашей папки, создадим директорию SP.
Распакуем апдейты, командой:
SQLServer2008R2SP1-KB2528583-x64-ENU.exe /x: G:\SQL2008R2\SP SQLServer2008R2SP1-KB2528583-x86-ENU.exe /x: G:\SQL2008R2\SP
Включать в установку, пакеты для всех платформ необязательно. Затем из директории SP скопируем оригинальный setup.exe в корневую директорию дистрибутива.
robocopy G:\SQL2008R2\SP G:\SQL2008R2 Setup.exe
Скопируем все файлы, кроме Microsoft.SQL.Chainer.PackageData.dll из директории с апдейтами в директорию с дистрибутивом.
robocopy G:\SQL2008R2\SP\x64 G:\SQL2008R2\x64 /XF Microsoft.SQL.Chainer.PackageData.dll robocopy G:\SQL2008R2\SP\x86 G:\SQL2008R2\x86 /XF Microsoft.SQL.Chainer.PackageData.dll
Проверям, каждую из директорий на наличие файла DefaultSetup.ini, который должен содержать следующие секции:
;SQLSERVER2008 Configuration File [SQLSERVER2008] PID="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" PCUSOURCE=".\SP"
Все можно запускать установщик и следовать инструкциям мастера.
1) В разделе Planning, запускаем утилиту , которая проверит компьютер на наличие условий препятствующих успешной установке SQL Server.
2) Затем переходим в раздел Installation и выбираем там New Installation or add features to an existing installation. (Новая установка или добавление компонентов к существующей установке). На экране Setup Support Rules, проходим тест компонентов необходимых для успешной установки сервера. Единственное предупреждение, которое мы получаем, связанно с Windows Firewall, который находится во включенном состоянии и программа нам сообщает, что для доступа к SQL-серверу извне, необходимо открыть соответствующий порт. Чуть, позже, мы это обязательно сделаем.
3) Нажимаем далее, где на следующем экране Product Key, выбираем тип редакции, бесплатный вариант установки (Evaluation, Express и Express with Edvanced Services) или забиваем свой серийный номер соответствующей рабочей версии продукта.
4. Принимаем лицензионное соглашение, и в следующем разделе Setup Role нам доступны на выбор три сценария установки: SQL Server Feature Installation - установка SQL Server, где можно вручную выбрать отдельные компоненты, SQL Server Power Pivot for SharePoint - расширяет функциональность SharePoint 2010 и службы Excel, добавляя возможность обработки на сервере, взаимодействия и поддержки управления документами для книг PowerPivot, опубликованных на SharePoint и All Features with Default - установка и настройка всех компонентов по умолчанию. Выбираем первый вариант, нажимаем Далее.
5. На экране Feature Selection (Выбор компонентов) нас интересуют только Database Engine Services, SQL Server Replication, Management Tools - Basic, Management Tools - Complete. Примерно такой же функционал доступен в бесплатной версии SQL Express. Путь для установки, оставляем по умолчанию.
6. На экране Installation Rules, соглашаемся с выбором компонентов для установки и нажимаем Далее.
7. На экране Instance Configuration (Конфигурация экземпляра) выбираем: устанавливать экземпляр по умолчанию, или именованный экземпляр, где задаем своё значение. Экземпляр по умолчанию «MSSQLSERVER», выбираем в том случае, если на сервере баз данных планируется только один экземпляр. Следующий экземпляр, может быть только именованным. Подключение к серверу с экземпляром по умолчанию производится с указанием имени машины. Используется статический порт по умолчанию - tcp:1433. Именованный экземпляр следует выбирать в тех случаях, когда на одном компьютере планируется запускать несколько экземпляров. Бесплатный выпуск SQL Server Express по умолчанию предлагает именованный экземпляр, однако, если в качестве значения именованного экземпляра выбрать «SQLEXPRESS», то будет создан экземпляр по умолчанию :) Вариант установки SQL Server PowerPivot для SharePoint всегда устанавливается как именованный экземпляр «PowerPivot». Подключение к серверу в этом случае производится в формате servername\instancename, к примеру Serv\SQLExpress. Соединение происходит с использованием динамического порта и службы SQL Browser. Выбираем Default Instance и директорию по умолчанию.
8. На странице Disk Space Recuirements (Требования к свободному месту на диске) программа подсчитывает необходимое свободное место на диске для указанных компонентов.
9. На этапе Server Configuration (Конфигурация сервера), вкладка Service Acount, выбираем учетные записи для запуска служб SQL Server. Microsoft рекомендует создавать отдельные учетные записи для каждой из служб (локального пользователя или пользователя домена), но мы не будем так заморачиваться и зададим для SQL Server Agent и SQL Server Database Engine учетные записи предлагаемые по умолчанию -NT AUTHORITY\NetworkService, тип запуска Auto. SQL Server Browser по умолчанию настроен на запуск от NT AUTHORITY\LOCAL SERVICE (Позже, можно будет изменить). Вкладку Collation (Параметры сортировки) оставляем по умолчанию.
10. На экране Database Engine Configuration - Acount Provisioning (Настройка компонента Database Engine - провизионирование учетных записей) выбираем тип аутентификации Windows (по умолчанию) или Mixed (Смешанный режим SQL Server и Windows). Выбираем смешанный режим, задаем пароль для учетной записи sa, имеющей полный доступ к SQL-серверу и учетную запись администратора Windows. Нажимаем кнопку, добавить текущего пользователя.
На вкладке Data Directories (Каталоги данных) - задаем свои пути к базам данных, логам и бекапам или оставляем по умолчанию. В идеальном случае, с целью повысить производительность и отказоустойчивость, надо разносить базы (*.mdf) и логи (*.ldf) по разным физическим дискам. Системную базу данных temdb, желательно так же выносить на отдельный диск. О FILESTREAM на майкрософте сказано следующее:
FILESTREAM - дает возможность приложениям на основе SQL Server, хранить в файловой системе неструктурированные данные, такие как документы и изображения. Приложения могут эффективно использовать многопоточные API-интерфейсы и производительность файловой системы, одновременно обеспечивая согласованность между неструктурированными и соответствующими им структурированными данными. Подробнее, смотрим здесь. Похоже, что в нашем случае, это вещь бесполезная, пропускаем и нажимаем Next.
11. На экране Error Reporting (Отчет об ошибках) можно поставить галочку, которая позволит автоматически посылать отчеты об ошибках в Microsoft. Затем на экране Installation Configuration Rules cредство проверки конфигурации выполнит набор правил еще раз для оценки конфигурации компьютера с выбранными компонентами SQL Server. И наконец на экране Ready to Install мы увидим список всех компонентов готовых к установке. Так же обратим внимание на параметр Action, указывающий на то, что это Slipstream-установка. В самом низу, запомним путь до файла конфигурации, он нам понадобится позже. Нажимаем Install, дожидаемся окончания процесса установки.
12. Теперь, если нам нужно развернуть SQL-сервер снова с такими же параметрами, мы можем воспользоваться тем самым файлом конфигурации, который сохранили на последнем этапе утановки. Для это из командной строки, запускаем:
setup.exe /ConfigurationFile=путь_к_ConfigurationFile.ini
Правда, пароли для sa и других учетных записей служб, надо будет указывать снова, т.к. они по соображениям безопасности не сохраняются в файле конфигурации. Но, их можно указать, используя, специально для этого предназначенные ключи командной строки. Например для того что бы задать пароль для учетной записи sa, добавляем ключ /SAPWD= "PASSWORD" А для того что бы, запустить установку SQL-сервера полностью в автоматическом "тихом" режиме, добавим ключ /Q:
setup.exe /Q /SAPWD="PASSWORD" /ConfigurationFile=путь_к_ConfigurationFile.ini
13.Теперь настроем наш сервер. Заходим в mmc-оснастку SQL Server Configuration Manager, далее SQL Server Network Configuration\Protocols for MSSQLSERVER где включим поддержку протокола TCP/IP. Named Pipes использовать не рекомендуется, VIA так же должен быть отключен (по умолчанию). Аналогично, выставляем протоколы для клиента - SQL Native Client 10.0 Configuration. Для того что бы изменения вступили в силу, перезапускаем сервис.
Так же на файрволе необходимо создать правило для входящих соединений на tcp:1433 порт.
netsh advfirewall firewall add rule name="Access SSMS to SQL2008R2" dir=in action=allow protocol=TCP localport=1433 enable=yes profile=ANY remoteip=ANY interfacetype=LAN
В SQL Server Management Studioсоздадим логин, например msql, который будет использоваться кластером 1С для создания и подключения к базам. Выбираем Security\Logins\New Login\SQL Server Authentication. Назначим ему роль: dbcreator, public.
Ограничим количество файлов журнала ошибок перед их очисткой. Для этого перейдем на вкладку Management\SQL Server Logs\Configure и поставим галочку- Limit the number of the error log files before they are recycled, где зададим своё значение. Я оставляю по умолчанию - 6. Нет, смысла хранить тонны логов на сервере, не так ли?!
В Server Properties, в разделе Memory установим максимальный объем памяти используемый сервером, задействуем параметр AWE, в случае если используется 32-разрядная ось и на сервере установлено не менее 4-16 Гб памяти. Вычитаем из общего объема памяти установленной на сервере, количество памяти которое требуется другим различным процессам запущенным на сервере и то, что останется записываем как максимально допустимое значение.
В разделе Database Settings задаем путь для размещения баз данных и файлов журналов. Рекомендуется размещать их на разных физических дисках.
Если дисков навалом и сервер рассчитывается на большое количество пользователей, имеет смысл так же выделить отдельный физический диск для системной базы tempdb. Сделать это можно как во время установки, так и позже с помощью команд T-SQL. Для определения текущего расположения tempdb выполним следующую команду:
USE tempdb GO EXEC sp_helpfile GO
Для изменения текущего местоположения файлов базы данных tempdb вводим следующую последовательность команд:
USE master GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME ='newdisk:\NewFolder\tempdb.mdf') GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME ='newdisk:\NewFolder\templog.ldf') GO
После этого, необходимо перезапустить сервер.
Для создания базы, переходим в раздел Databases, щелкаемся правой кнопкой и выбираем New Database. Задаем имя.
В поле Owner задаем владельца базы и выбираем наш ранее созданный логин mssql. В Options оставляем все параметры по умолчанию. Нажимаем ОК, что бы создать базу. Имеет смысл, так же поменять значение автоувеличения (Autogrowth) размера базы и лога данных с используемых по умолчанию, на значения по выше, что позволит уменьшить количество операций, выполняемых сервером и положительно скажется на производительности. Например, на базу выставим 200 мб, на лог 50мб.
14. Теперь установим 1C предприятие 8.2. Для установки отметим, следующие компоненты: 1С:Предприятие, Сервер 1С:Предприятия, Модули расширения веб-сервера, Администрирование сервера 1С:Предприятия.
На этапе, установки "Установить 1С Предприятие как сервис", задаем пароль пользователю USR1C82.
Нажимаем далее, следим за ходом установки :) Неожиданно, получаем ошибку: Ошибка при запуске службы "Агент сервера 1С Предприятие 8.2 (1С: Enterprise 8.2 Server Agent) Убедитесь что у вас имеются разрешения на запуск системных служб" С чего бы это, интересно? На новом свежеустановленном сервере? :) Видимо, это связанно, с тем что, когда выбран режим установки сервера как сервис, учетной записи сервера, заранее должен быть назначен пароль. Нажимаем пропустить. Заходим в Local Users and Groups, находим там этого пользователя и задаем ему пароль, после чего переходим в services.msc и пробуем стартануть сервис "Агент сервера 1С Предприятие 8.2". Запустился :) Теперь, запускаем сам сервер 1С: предприятия. От пользователя USR1CV82 должно быть запущено 5 процесов: rphost.exe, ragent.exe, rmngr.exe и два процесса conhost.exe. Пользователю USR1CV82 при установке должны быть назначены следующие права:
Вход в систему как сервис (Log on as a service), Вход в систему как пакетное задание (Log on as a batch job). Посмотреть можно в Local Computer Policy\Computer Configuration\Windows Setings\Security Setings\Local Policies\User Right Assigments.
Запускаем оснастку Администрирование серверов 1С Предприятие, смотрим что кластер поднялся, и висит на 1541 порту. На вкладке "Рабочие серверы" так же присутствует наш сервер.
Теперь, можно добавить базу на сервер 1С. Для этого переходим на вкладку "Информационные базы" щелкаемся правой кнопкой и выбираем New - Информационная база. Задаем необходимые параметры для подключения к SQL-серверу. Нажимаем ОК.
Запускаем 1С: Предприятие. Выбираем, добавить существующую информационную базу на сервере.
Далее, задаем параметры для подключения. Нажимаем "Далее" и наконец "Готово".
Операцию по созданию базы, можно проделать напрямую из 1С: Предприятия. Для этого при запуске, выбираем пункт "Создание новой информационной базы". Новая база пропишется на SQL-сервере с дефолтными параметрами, необходимо только в Management Studio задать владельца базы.
Для подключения клиентов 1С к серверу извне, на файрволе, должны быть открыты следующие порты:
Агент сервера (ragent) - tcp:1540
Главный менеджер кластера (rmngr) - tcp:1541
Диапазон сетевых портов, для динамического распределения рабочих процессов - tcp:1560-1591
Создадим правило через стандартный интерфейс, либо с помощью команды:
netsh advfirewall firewall add rule name="1Cv8-Server" dir=in action=allow protocol=TCP localport=1540,1541,1560-1590 enable=yes profile=ANY remoteip=ANY interfacetype=LAN
Теперь с другого компьютера запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты. Теперь, можем загрузить тест Гилева и померить производительность нашей системы.
На VirtualBox с 1Гб памяти, Dual-Core 2.6 GHz, 318-релиз 1с, тест выдает - 17 баллов, на 15.319-релизе, тест выдает - 15,29 баллов, а на 16.362 - 14,71. Интересно, есть ли тут связь, что с каждым новым релизом, результат становится хуже :)
Процедуры по обслуживанию и администрированию баз данных 1С применительно к SQL-серверу будем рассматривать в следующей заметке.