Установка Microsoft SQL Server 2019, правильная инструкция

Установка Microsoft SQL Server 2019, правильная инструкция

sql logo

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России Pytilistnik.org. В прошлый раз мы с вами научились использовать утилиту robocopy для синхронизации файловых шар, это было интересно. В сегодняшней публикации я бы хотел подробно остановиться на установке и базовой настройке Microsoft SQL Server 2019 в Windows Server 2019. Уверен, что многие уже потихоньку начинают на нее переходить.

Что такое SQL Server 2019

SQL Server - это система управления реляционными базами данных, или RDBMS, разработанная и продаваемая Microsoft.

Подобно другому программному обеспечению СУБД, SQL Server построен на основе SQL, стандартного языка программирования для взаимодействия с реляционными базами данных. Сервер SQL связан с Transact-SQL или T-SQL, реализацией SQL от Microsoft, которая добавляет набор проприетарных программных конструкций.

SQL Server работает исключительно в среде Windows более 20 лет. В 2016 году Microsoft сделала его доступным для Linux. SQL Server 2017 стал общедоступным в октябре 2016 года и работал как в Windows, так и в Linux. 2019 версия также поддерживает Linux и Docker.

Архитектура SQL Server

SQL Server состоит из двух основных компонентов:

  • Database Engine
  • SQLOS

Database Engine

Основным компонентом SQL Server является компонент Database Engine. Компонент Database Engine состоит из реляционного механизма, который обрабатывает запросы, и механизма хранения, который управляет файлами базы данных, страницами, индексами и т. д. Объекты базы данных, такие как хранимые процедуры, представления и триггеры, также создаются и выполняются компонентом Database Engine.

Реляционный движок (Relational Engine)

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

Движок хранения (Storage Engine)

Механизм хранения отвечает за хранение и извлечение данных из систем хранения, таких как диски и SAN.

SQLOS

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

Саму архитектуру работы SQL сервера можно проиллюстрировать в виде такой диаграммы.

 

Архитектура SQL Server

Редакции MS SQL Server 2019

В отличии от 2016 версии в MS SQL 2019 уже пять редакций

  • Enterprise - Премиум-версия SQL Server Enterprise Edition предлагает комплексные возможности центра обработки данных высокого класса с невероятно быстрой производительностью, неограниченной виртуализацией и сквозной бизнес-аналитикой, обеспечивая высокий уровень обслуживания для критически важных рабочих нагрузок и доступ конечных пользователей к данным. Если сказать простым языком, то MS SQL 2019 Enterprise - это самый полный и навороченный выпуск, где есть все возможные функции на текущий момент, в нем нет ограничений по ресурсам, но нужно понимать, что он самый дорогой. На практике его используют в основном крупный бизнес, типа Сбербанка и ему подобных.
  • Standard - SQL Server Standard Edition предоставляет базовые БД для управления данными и бизнес-аналитикой департаментов и небольших организаций для запуска своих приложений и поддерживает общие инструменты разработки для локальных и облачных сред, обеспечивая эффективное управление базами данных с минимальными ИТ-ресурсами. Тут вы максимум сможете использовать 128 ГБ ОЗУ на экземпляр SQL Server Database Engine. Вы не сможете использовать функционал группы доступности AlwaysOn. Нужно понимать, что редакция SQL Server 2019 Standard Edition подойдет для малого и среднего бизнеса.
  • Web - Web-выпуск SQL Server - это вариант с низкой стоимостью для веб-хостеров и веб-VAP, который обеспечивает возможности масштабируемости, доступности и управления для небольших и крупных веб-ресурсов. По факту это подрезанный по ресурсам Standard
  • Developer - Редакция SQL Server 2019 Developer позволяет разработчикам создавать любые приложения поверх SQL Server. Он включает в себя все функциональные возможности редакции Enterprise, но лицензирован для использования в качестве системы разработки и тестирования, а не в качестве рабочего сервера. SQL Server Developer - идеальный выбор для людей, которые создают и тестируют приложения. Короче если вы разработчик, то это БЕСПЛАТНО.
  • Express - Express Edition - это бесплатная база данных начального уровня, которая идеально подходит для изучения и создания настольных и небольших серверных приложений. Это лучший выбор для независимых поставщиков программного обеспечения, разработчиков и любителей, создающих клиентские приложения. Если вам нужны более продвинутые функции базы данных, SQL Server Express можно легко обновить до других более поздних версий SQL Server. SQL Server Express LocalDB - это облегченная версия Express, которая обладает всеми функциями программирования, работает в пользовательском режиме и имеет быструю установку с нулевой конфигурацией и кратким списком предварительных условий. Максимальный размер базы 10 ГБ

Подробнее на сайте Microsoft - https://docs.microsoft.com/ru-ru/sql/sql-server/editions-and-components-of-sql-server-version-15

Лицензирование SQL Server 2019

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

  • Модель PER CORE: лицензирует MSSQL по ядрам сервера, дает клиентам более упрощенное лицензирование, не заставляя их вычислять количество пользователей (CAL), на каком оборудовании работает БД, все сводится к количеству ядер. Для лицензирования физического сервера - при запуске SQL Server
    все физические ядра на сервере должны быть лицензированы. В соответствии с моделью лицензирования Per Core каждый сервер работающий под управлением программного обеспечения SQL Server 2019 или любого из его компонентов (например, службы Reporting Services или Integration Services) должен быть лицензирован. В отличие от модели лицензирования Server + CAL, модель Per Core обеспечивает доступ для неограниченного числа пользователей или устройств для подключения изнутри или снаружи брандмауэра организации. С моделью Per Core не нужно приобретать дополнительные клиентские лицензии (CAL) для доступа к программному обеспечению SQL Server.

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

  1. Подсчитайте общее количество физических ядер на сервере.
  2. Приобретите соответствующее количество основных лицензий, необходимых для сервера. Основные лицензии продаются в пакетах по две, это нужно учитывать чтобы определить фактическое количество
    позиции (лицензионные SKU) на заказ.

Модель лицензирования на ядро подходит, когда:

  • Развернут SQL Server 2019 Enterprise Edition (включая использование хранилища параллельных данных SQL Server) или SQL Server 2019 Web Edition.
  • Внедрение централизованных развертываний, охватывающих большое количество прямых и/или косвенных пользователей/устройств.
  • Общие затраты на лицензирование программного обеспечения SQL Server 2019 Standard Edition ниже, чем при использовании режима лицензирования Server + CAL
  • Модель Server+CAL licensing - сервере лицензирования RDSПри лицензировании программного обеспечения SQL Server 2019 Standard Edition по модели Server + CAL, вам необходимо приобрести серверную лицензию для каждого сервера и клиентскую лицензию (CAL) для каждого устройства (Device CAL) и/или пользователя (User CAL), обращающихся к SQL Server или любому из его компонентов. CAL не является программным обеспечением; это выдача лицензии пользователю и устройству, аналогично, как на .

Server+CAL licensing

Более подробные нюансы по лицензированию SQL Server 2019 в виртуальных средах смотрите по ссылке - https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing

Стоимость SQL Server 2019

Вот сводная таблица с ценами, можете посмотреть, что SQL Server 2019 Enterprise стоит как машина, аж почти 14 000 долларов.

Стоимость лицензий SQL Server 2019

Для покупки и продления подписок на лицензии SQL

Стоимость подписки SQL Server 2019

Требования к установке SQL Server 2019

  • Операционная система Windows 10 TH1 1507 или более поздней версии или Windows Server 2016 или более поздней версии
  • Минимальный объем оперативной памяти, необходимый для установки компонента Сервер DQS в Data Quality Services (DQS), составляет 2 ГБ
  • Быстродействие процессора - Минимум: процессор x64 с тактовой частотой 1,4 ГГц
  • Для SQL Server требуется как минимум 6 ГБ свободного места на диске.
  • Нельзя устанавливать MS SQL Server 2019 на диски со сжатием, сетевые диски и диски, доступные только для чтения.
  • Нельзя монтировать дистрибутив через удалённый рабочий стол, вам нужно скачать его на сервер перед началом установки.

Вот матрица поддерживаемых операционных систем для установки разных редакций SQL Server 2019.

Поддерживаемые ОС для установки SQL Server 2019

Более подробно про требования вы можете посмотреть по ссылке - https://docs.microsoft.com/ru-ru/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server-ver15?view=sql-server-ver15

Где скачать MS SQL Server 2019

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

Для загрузки дистрибутива SQL Server 2019 Evaluations со 180 дневным пробным периодом с функционалом Enterprise вы должны перейти по ссылке:

https://www.microsoft.com/ru-ru/evalcenter/evaluate-sql-server-2019 (Английская версия)

https://www.microsoft.com/ru-ru/evalcenter/evaluate-sql-server-2019 (Русская версия)

Скачиваем тонкий exe клиент.

 

Где скачать MS SQL Server 2019

Заполняем поля помеченные звездочками, после чего загружаем клиента для выкачки основного дистрибутива.

Скачивание SQL Server 2019

Запустите тонкого клиента SQL2019-SSEI-Eval.exe. У вас появится форма загрузки SQL Server 2019 Evaluation Edition. В меню выберите пункт "Скачать носитель".

Мастер установки SQL Server 2019 Evaluation Edition

Укажите папку для хранения установочных файлов, которые будет загружен установщиком, затем нажмите кнопку "Скачать". На выбор будет два варианта, это EXE файл или ISO.

Выбор каталога для загрузки SQL Server 2019

Начнется процесс загрузки дистрибутива по указанному расположению.

Процесс скачивания SQL Server 2019

Как видим, все успешно загрузилось.

Успешно загруженный SQL Server 2019

Установка MS SQL Server 2019

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

Извлечение дистрибутива SQL Server 2019

В результате вы получите вот такую структуру файлов, запускаем SETUP.EXE.

Запуск установки SQL Server 2019

Переходим в раздел "Установка (installation)" и выбираем пункт "Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке (New SQL Server stand-alone installation or add features to an existing installation)".

New SQL Server stand-alone installation

Следующим шагом вам необходимо указать, какую редакцию SQL 2019 вы будите устанавливать, я выбрал "Developer". Если у вас "Standard" или "Enterprise", то необходимо будет указать ключ лицензии.

Выбор редакции SQL Server 2019

Читаем и принимаем лицензионное соглашение, после чего нажимаем далее.

Принятие лицензионного соглашения SQL Server 2019

Следующий шаг предложит вам проверить и установить обновления для вашей системы, я пропущу данный пункт, так как у меня все свежее.

Проверка обновлений до установки SQL 2019

Если у центра обновления есть проблемы с обращением на сервера Microsoft, то вы легко можете получать ошибки 0x8024402c или 0x80244022.

Ошибка 0x8024402c SQL 2019

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

Проверка требований перед установкой SQL 2019

Выберите функции, которые вы хотите установить. На данный момент вам просто нужны службы ядра СУБД (Database Engine) и соединение с клиентскими средствами, просто установите флажок и нажмите кнопку "Далее", чтобы продолжить. Ниже я опишу все компоненты MS SQL 2019.

Выбор компонентов SQL Server 2019

Компоненты SQL Server 2019 и их назначение

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

  • Службы Ядра СУБД (Database Engine Services) - как и писал выше, это основное ядро без него ничего работать не будет
  • Репликация SQL Server (SQL Server Replication) - Служба репликации, чтобы делать копии БД в режиме реального времени, используется в AlwaysOn
  • Службы машинного обучения и расширения языка (Machine Learning Services and Language Extensions) - Данный компонент позволяет выполнять на SQL Server R/Python/Java
  • Полнотекстовый и симантический поиск (Full-Text and Semantic Extractions for Search) - Очень полезный функционал по файлам хранящимся в БД, например формата docx. В случае семантического поиска по документам, вам также понадобиться FILESTREAM
  • Data Quality Services - это решение на основе знаний, которое обеспечивает автоматизированные и интерактивные способы управления целостностью и качеством источников данных. DQS позволяет обнаруживать знания о данных, строить наборы знаний и управлять ими. Затем эти знания вы можете использовать для выполнения очистки, сопоставления и профилирования данных. Также вы можете использовать облачные службы поставщиков эталонных данных в проекте качества данных DQS.
  • Служба запросов PolyBase для внешних данных (PolyBase Query Service For External Data) - компонент позволяет получать данные с других вешних источников, например база Oracle или HDFS технологией
  • Analysis Services – Создание бизнес-отчетов (BI) и работы с OLAP

Общие функции SQL Server 2019

Нужно помнить, что функции распространяются на весь сервер, а не на отдельный инстанс

  • Machine Learning Server (Изолированный) - SQL Server поддерживает установку изолированного сервера R Server или Machine Learning Server, который работает независимо от SQL Server.
  • Data Quality Client – Это изолированный DQS
  • Соединение клиентскими средствами (Client Tools Connectivity) - Набор библиотек ODBC, OLE DB
  • Integration Services - Это SSIS (Службы интеграции). Данная технология полезна при автоматизации импорта данных. Мастер Scale Out и "Рабочая роль Scale Out (Worker)" позволяют масштабировать ваш SSIS.
  • Обратная совместимость клиентских средств (Client Tools Backwards Compatibility) - Для совместимости со старыми продуктами.
  • Пакет SDK клиентских средств - это пакет для разработчиков
  • Контроллер распределенного воспроизведения (Distributed Replay Controller/Client) - нужны для моделирования нагрузки и для различного рода тестирования производительности.
  • Пакет SDK средств связи клиента SQL(SQL Client Connectivity SDK) - так же для разработчиков ODBC/OLE DB
  • Master Data Services - Используется для анализа, валидации, интеграции и коррекции данных.

Настройка именования экземпляра SQL Server

На данном шаге у вас есть возможность изменить стандартное имя экземпляра MSSQLSERVER на нужное вам. Для этого выберите соответствующую строку и введите нужное вам имя, в моем примере, это будет RDCB. Я рекомендую делать у идентификатора экземпляра такое же имя, чтобы не было путаницы.

Настройка именования экземпляра SQL Server

Настройка параметров запуска служб SQL Server 2019

После того, как вы выбрали нужные компоненты, вам необходимо настроить от имени каких учетных записей будет происходить их работа. Я настоятельно рекомендую, как минимум создать отдельную учетную запись в домене для запуска агента SQL и ядра. Напоминаю, что в Windows есть технология  управляемых служебных записей (Managed Service Accounts – MSA), с ее помощью можно еще более безопасно все настроить. Выставите тип запуска агента и ядра на автоматический.

Еще активируйте галку "Предоставить право на выполнении обслуживания тома службе ядра СУБД SQL Server - эта привилегия предоставляет возможность инициализации файлов без обнуления страниц данных. Это может привести к раскрытию информации за счет доступа к удаленному ранее содержимому." Если по простому, то галка Grand Perform Volume Maintenance Task privilege to SQL Server Database Engine Service, это полезная штука для оптимизации производительности. Настройка влияет на файл данных. Когда файл автоматически вырастает, то новый кусок заполняется нулями, в этот момент SQL может тормозить. Instant File Initialization (IFI) позволяет отключить это зануление. Какие данные не будут перезаписываться ghb:

  • Создании базы данных;
  • Добавлении данных в файлы данных или лог файлы;
  • Увеличении размера существующих файлов (включая операции авто увеличения);
  • Восстановлении базы данных/файловой группы.

Настройка параметров запуска служб SQL Server 2019

Очень важно на этапе установки выбрать правильную кодировку. Хочу отметить, что это необходимо сделать отталкиваясь от того ПО для которого требуется SQL Server. Кодировка будет установлена для страниц,  char/varchar и т.д. Хочу отметить, что если вы ошиблись на этапе установки с выбором Collationто потом поменять можно.

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

Настройка кодировки SQL Server 2019

Настройка ядра СУБД в SQL Server

Укажите режим безопасности ядра базы данных. Сначала выберите "Смешанный режим". Затем введите пароль для учетной записи системного администратора (sa) на SQL Server. Затем повторно введите тот же пароль, чтобы подтвердить его. После этого нажмите кнопку "Добавить текущего пользователя", чтобы и у него были права администратора.

Напомню разницу между двумя режимами доступа:

  • Режим аутентификации Windows - подразумевает, что доступ будут иметь только пользователи и компьютеры домена
  • Смешанный режим (Mixed mode) - позволяет подключаться к SQL со встроенных учетных записей.

Настройка ядра СУБД

Далее вы можете изменить стандартное расположение каталогов данных. Например транзакционные логи и расположение базы изменить на отдельные диски. Тут все завит от того как у вас построена дисковая архитектура сервера, это могут быть отдельные LUN или же просто локальные диски в RAID массиве.

Хорошей практикой считается разнесение всех директорий (системных баз данных, пользовательских баз данных, логов пользовательских баз данных, резервных копий) на разные хранилища.

настройка каталогов данных

Произвести заранее настройку TempDB, задав начальный размер, авторасширение, расположение, немного подробнее про каждый:

  • Число файлов (Number of files) - тут задается количество файлов для tempdb. Обычно берут формулу, что берут общее число ядер процессора, делят его пополам и уже на основании данной цифры создают столько же файлов tempdb. Если ядер 16, то файлов будет 8. Вот тут более подробно описано https://support.microsoft.com/en-us/help/2154845/recommendations-to-reduce-allocation-contention-in-sql-server-tempdb-d)
  • Начальный размер (Initial size) - тут думаю все понятно, сколько изначально будут весить файлы tempdb. Напоминаю, что когда вы перезагружаете сервер, то ваши файлы tempdb будут сбрасываться до текущего значения. При установке по умолчанию любой версии SQL Server создается база данных tempdb с файлом данных 8 МБ и файлом журнала транзакций 1 МБ. Для многих установок SQL Server этих размеров файлов будет недостаточно, но они настроены на автоматическое увеличение на 10% по мере необходимости. Очевидно, что на этот вопрос, о том какой должен быть размер сложно ответить без подробностей о рабочей нагрузке, но есть некоторые рекомендации, которые вы можете использовать. Прежде всего, если вы не используете SQL Server Express, установите tempdb больше, чем по умолчанию; это легко. Далее, если вы можете дать tempdb свой собственный диск, то сконфигурируйте его так, чтобы он почти полностью заполнял диск. Если на диске больше ничего не будет, лучше установить его больше, чем нужно. Там нет снижения производительности, и вам никогда не придется беспокоиться о росте (Autogrowth).
    Если вы не можете поместить tempdb на свой собственный диск, вам нужно будет управлять его размером. Вы можете просто позволить ему на некоторое время автоматически расти, а затем вручную установить его немного больше, чем он вырастет.
  • Авторасширение (Autogrowth) - Тут как я и писал выше, на сколько будет расширяться tempdb, по умолчанию идет 64 МБ. Не рекомендую ставить тут слишком большие значения, могут быть задержки из-за этого увеличения.
  • Каталоги данных (Data Directories) - Тут все понятно, где у вас будут лежать файлы данных tempdb. Тут даже есть аналог Round-robin, если вы укажите несколько мест, будет поочередное обращение.
  • Каталог журналов (Log Directory) - Тут вы указываете, где будут хранится ваши лог файлы tempdb.

Настройка TempDB

Более тонко выставить настройки параллелизма.

Что такое MAXDOP и почему это важно?

Когда SQL Server работает на компьютере с более чем одним процессором или процессором, он обнаруживает наилучшую степень параллелизма, то есть число процессоров, используемых для выполнения одного оператора, для каждого запроса, который имеет план параллельного выполнения. Вы можете использовать параметр максимальной степени параллелизма, чтобы ограничить число процессоров, используемых для выполнения параллельного плана, и не допустить, чтобы побочные запросы влияли на производительность SQL Server, используя все доступные ЦП.

Какие значения я должен использовать для MAXDOP?

Это зависит от аппаратного обеспечения, среды (OLTP или OLAP), нагрузки и так далее. Значение по умолчанию для MAXDOP - 0 (ноль), и его можно установить или просмотреть с помощью (sp_configure). Значение 0 означает, что SQL Server будет использовать все процессоры, если запрос выполняется параллельно.

Microsoft Premier Filed Engineer дал нам некоторые рекомендации, которым нужно следовать и учитывать при настройке функции MAXDOP.

  • Сервер с одним узлом NUMA - Не более 8 логических процессоров - Значение параметра MAXDOP не должно превышать количество логических процессоров
  • Сервер с одним узлом NUMA - Больше 8 логических процессоров - Значение параметра MAXDOP должно быть равно 8
  • Сервер с несколькими узлами NUMA - Не более 16 логических процессоров на узел NUMA - Значение параметра MAXDOP не должно превышать количество логических процессоров на каждый узел NUMA
  • Сервер с несколькими узлами NUMA - Больше 16 логических процессоров на каждый узел NUMA - Значение MAXDOP должно быть равно половине количества логических процессоров на узел NUMA со значением MAX, равным 16

Подробнее в статье https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver15

Настройка MAXDop

При необходимости выставить настройки по потребляемой памяти.

Настройка ограничения памяти SQL Server 2019

Тут же можно настроить обращение к внешним источникам

FileStream SQL Server 2019

остается нажать только кнопку "Установить"

Установка MS SQL 2019

Сам процесс установки SQL Server 2019 сильно зависит от вашей дисковой подсистемы. Дожидаемся успешного завершения.

Успешная установка SQL Server 2019

Далее, чтобы произвести подключение к вашей базе данных вы должны установить SQL Server Management Studio.

Подключение к SQL 2019 через SQL Server Management Studio

На этом у меня все, мы с вами разобрали подробно процесс установки MS SQL Server 2019, мы разобрали все этапа, рассмотрели все компоненты. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

3 Responses to Установка Microsoft SQL Server 2019, правильная инструкция

  1. Сергей:

    Иван, спасибо за статью
    не опасно ли для SQL создавать именно доменного пользовтеля?
    Может все таки лучше отдельного локального на сервере где но стоит?

  2. Иван Семин:

    Тут вопрос спорный конечно, в идеале создавать лучше служебную учетку в АД, она сама будет менять пароль каждый месяц.

  3. Сергей:

    да я даже не про пароль, мало ли КД окажется недоступен.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *