Windows server 2019 sql server 2012

I've searched for this but can't find an answer. The system requirements page only goes back to SQL 2014 now.

RRS feed

  • Remove From My Forums
  • Вопрос

  • I’ve searched for this but can’t find an answer. The
    system requirements page only goes back to SQL 2014 now.

Все ответы

    • Предложено в качестве ответа

      3 января 2019 г. 6:51

  • Hi ingram87,

    According to
    Windows Server 2019 and Microsoft Server application compatibility, SQL Server 2012 is not supported installation and functionality on Window Server 2019.


    Best Regards
    Puzzle
    MSDN Community Support
    Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
    MSDN Support, feel free to contact MSDNFSF@microsoft.com

    • Предложено в качестве ответа
      Olaf HelperMVP
      3 января 2019 г. 6:51

4 Replies

  • https://docs.microsoft.com/en-us/windows-server/get-started-19/app-compat-19 Opens a new window has a full list of Microsoft Server apps that are supported on 2019. SQL 2012 is not on there, and according to some other documentation I’ve found, SQL 2012 is only compatible with Server 2008 (plus R2) and Server 2012 (Plus R2).


    1 found this helpful
    thumb_up
    thumb_down

  • Author David Rees

    davidr4


    This person is a Verified Professional

    This person is a verified professional.

    Verify your account
    to enable IT peers to see that you are a professional.

    habanero

    SQL Server 2012 SP4 is not officially supported on Windows Server 2019.

    https://www.microsoft.com/en-us/download/details.aspx?id=56040 Opens a new window

    Supported Operating System

    Windows 10, Windows 7, Windows 7 Service Pack 1,
    Windows 8, Windows 8.1, Windows Server 2008 R2, Windows Server 2008 R2
    SP1, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016


    1 found this helpful
    thumb_up
    thumb_down

  • Exactly what I was looking for.  Thank you


    Was this post helpful?
    thumb_up
    thumb_down

  • Hello MattRiderBC,

    Based on following document,SQL server 2012 does not not officially support on Windows server 2019:

    https://docs.microsoft.com/en-us/windows-server/get-started-19/app-compat-19 Opens a new window

    Best,

    Ramin


    Was this post helpful?
    thumb_up
    thumb_down

One of my hobbies is trying to break technology so that you don’t have to. I don’t consider myself a professional or hobbyist hacker, though if the shoe fits…

Last year when Windows Server 2019 was released I wanted to see which versions of SQL Server I could run on it, testing more the unwritten backward compatibility promise Microsoft has maintained over the last 45 years, rather than what the documentation says.

Speaking of documentation, Glenn Berry has a nifty compatibility matrix to show what versions of SQL Server are supported on each version of Windows Server. For official purposes, this is the list you should refer to:

SQL Server Version Windows Server 2012 Windows Server 2016 Windows Server 2019
SQL Server 2019 No Yes Yes
SQL Server 2017 Yes Yes Yes
SQL Server 2016 Yes Yes Yes
SQL Server 2014 Yes Yes Yes
SQL Server 2012 Yes Yes No
SQL Server 2008 R2 Yes No No
SQL Server 2008 Yes No No
SQL Server 2005 No No No
SQL Server 2000 No No No
SQL Server 7.0 No No No
SQL Server 6.5 No No No

Supported versions of SQL Server and Windows Server, adapted from a matrix by Glenn Berry

But I know you’re not here for supported versions, because this post is about what Randolph managed to get running on Windows Server 2019, which as you know is a 64-bit operating system.

SQL Server 6.5 (32-bit)

Did it work? Yes.

Was it easy? No.

Comments: This was really tricky to get running, and it isn’t at all stable. Installation relied heavily on Windows compatibility mode, as well as renaming system files and the associated INI files that referred to those system files to avoid name collisions.

Summary: It works, but I don’t recommend it. The service is very fragile, and the process does not survive operating system restarts without some handholding. Obviously this is not for production use.

SQL Server 7.0 (32-bit)

Did it work? No.

Was it easy? No.

Comments: SQL Server 7.0 was Microsoft’s rewrite of the Sybase code base, where a significant number of changes were made to the SQL Server database engine. The installer is different to the 6.5 one (which reminded me of Windows 3.x days), and it just didn’t let me get far enough to manipulate the installer files appropriately.

Summary: It didn’t work. I gave up.

SQL Server 2000 (32-bit)

Did it work? Yes.

Was it easy? Relatively.

Comments: SQL Server 2000 needs to be installed using Windows compatibility mode (I used XP Service Pack 3). As I only tried installing the database engine and client tools, I did not bother with the things like replication and full text search.

Summary: It works. It survives an operating system restart. If you need to host a SQL Server 6.5 or 7.0 database, this is the way to do it, but I’d do it on Windows Server 2003 R2 instead. This is also not for production use.

SQL Server 2005 (64-bit)

Did it work? No.

Was it easy? Yes.

Comments: This one is sneaky because it lets you get very far in the process before failing. Provided you enable the .NET 3.5 feature in Windows Server, it gets all the way to the end before throwing an error about a corrupt registry key while trying to start the SQL Server service. I expect if I wanted desperately enough to get it to work, I could shim the registry key it’s failing on and get it working. Perhaps it just needs the sqlservr.exe to run in an earlier Windows compatibility level, but I didn’t try.

Summary: It didn’t work, but I didn’t bother digging too deep because databases in 2005 and higher compatibility level can be attached and restored on SQL Server 2016+, which makes it moot. Don’t use this for production.

SQL Server 2008 (64-bit)

Did it work? Yes.

Was it easy? Yes.

Comments: I only installed the database engine, and it worked fine. I was able to run SELECT @@VERSION; from sqlcmd and get a result. I could open SQL Server Configuration Manager, which meant I could control the service startup options, the network protocols, and trace flags.

Summary: It worked, but it is not officially supported by Microsoft. That said, SQL Server 2008 can host databases running in 80 and 90 compatibility level, so you can use SQL Server 2008 as an intermediary between SQL Server 2000 and SQL Server 2019. This is not supported for production.

SQL Server 2008 R2 (64-bit)

Did it work? Yes.

Was it easy? Yes.

Comments: This was exactly the same experience as SQL Server 2008.

Summary: If you don’t have the SQL Server 2008 installation media, but you have SQL Server 2008 R2, all the same things I wrote for SQL Server 2008 apply. Don’t do this for production.

SQL Server 2012 (64-bit)

Did it work? Yes.

Was it easy? Yes.

Comments: This was exactly the same experience as SQL Server 2008 and SQL Server 2008 R2.

Summary: Nothing much to report here. My rule of thumb is that if it is supported on Windows Server 2016, it will run on Windows Server 2019, but not as a production system.

SQL Server 2014 (64-bit) and higher

These are officially supported by Microsoft, so you should have smoother sailing.

Leave your thoughts in the comments below.

Photo by Steve Gale on Unsplash.

I am attempting to install SQL Server 2012 Developer Edition in a Windows container running Windows Core Server 2019. I wrote a Dockerfile and copied the SQL Server 2012 installation files into the Docker build context (4.94 GB on disk). I would prefer not to have to include the installer in the build context, but I do not have a Web server available on which to host the files. When I run setup.exe, I see no diagnostic messages indicating failure, and yet the log file SqlSetup.log contains the message «Setup closed with exit code: 0x84C40013» at the end of the file.

Here is my Dockerfile:

# escape=`
FROM mcr.microsoft.com/windows/servercore:ltsc2019

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]

# Before doing a Docker build, copy the following folder from \filesrv01SoftwareDatabasesAll Database SoftwareMicrosoft ...
COPY en_sql_server_2012_developer_edition_x86_x64_dvd_813280/ C:sql_server_2012

# Copy script to set up SQL Server
COPY set-up-sql-server.cmd C:

Here is my SQL Server 2012 installation script set-up-sql-server.cmd:

C:sql_server_2012setup.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="NT AUTHORITYNetwork Service" /SQLSYSADMINACCOUNTS="NT AUTHORITYNetwork Service" /AGTSVCACCOUNT="NT AUTHORITYNetwork Service" /IACCEPTSQLSERVERLICENSETERMS

Here is an excerpt from my PowerShell session:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:UsersmmoreyDocumentsgitdocker-mssql2012> docker run --interactive --tty mssql-2012
Microsoft Windows [Version 10.0.17763.1040]
(c) 2018 Microsoft Corporation. All rights reserved.

C:>set-up-sql-server.cmd

C:>C:sql_server_2012setup.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="NT AUTHORITYNetwo
rk Service" /SQLSYSADMINACCOUNTS="NT AUTHORITYNetwork Service" /AGTSVCACCOUNT="NT AUTHORITYNetwork Service" /IACCEPTSQLSERVERLICEN
SETERMS
Microsoft (R) SQL Server 2012 11.00.2100.60
Copyright (c) Microsoft Corporation.  All rights reserved.

Microsoft .NET Framework CasPol 4.7.3190.0
for Microsoft .NET Framework version 4.7.3190.0
Copyright (C) Microsoft Corporation.  All rights reserved.

WARNING: The .NET Framework does not apply CAS policy by default. Any settings shown or modified by CasPol will only affect
applications that opt into using CAS policy.

Please see http://go.microsoft.com/fwlink/?LinkId=131738 for more information.


Success
Microsoft .NET Framework CasPol 4.7.3190.0
for Microsoft .NET Framework version 4.7.3190.0
Copyright (C) Microsoft Corporation.  All rights reserved.

WARNING: The .NET Framework does not apply CAS policy by default. Any settings shown or modified by CasPol will only affect
applications that opt into using CAS policy.

Please see http://go.microsoft.com/fwlink/?LinkId=131738 for more information.


Success

C:>cd Users

C:Users>dir *.log /s
 Volume in drive C has no label.
 Volume Serial Number is E4BB-38D4

 Directory of C:UsersAll UsersMicrosoftWindowsWERReportQueueCritical_10.0.17763.850_464a773e8edf25185cd88a761afde13fe6f97325_
00000000_cab_0199d07a

03/02/2020  11:25 AM         1,227,459 CBS.log
           1 File(s)      1,227,459 bytes

 Directory of C:UsersContainerAdministratorAppDataLocalTemp

03/02/2020  11:27 AM           102,216 SqlSetup.log
               1 File(s)        102,216 bytes

     Total Files Listed:
               2 File(s)      1,329,675 bytes
               0 Dir(s)  19,351,437,312 bytes free

C:Users>more C:UsersContainerAdministratorAppDataLocalTempSqlSetup.log
03/02/2020 11:23:38.007 ======================================================================
03/02/2020 11:23:38.007 Setup launched
03/02/2020 11:23:38.007 Attempting to determine media source
03/02/2020 11:23:38.007 Media source value not specified on command line argument.
03/02/2020 11:23:38.022 Setup is launched from media directly so default the value to the current folder.
03/02/2020 11:23:38.022 Media source: C:sql_server_2012
03/02/2020 11:23:38.022 Attempt to determine media layout based on file 'C:sql_server_2012mediainfo.xml'.
03/02/2020 11:23:38.241 Media layout is detected as: Full
03/02/2020 11:23:38.241 Not a slip stream media, so continuing to run setup.exe from media.
03/02/2020 11:23:38.257 SQM key not found
03/02/2020 11:23:38.257 /? or /HELP or /ACTION=HELP specified: false
03/02/2020 11:23:38.257 Help display: false
03/02/2020 11:23:38.257 Server-Gui-Mgmt: 0, Server-Gui-Shell: 0
03/02/2020 11:23:38.272 .Net version 4.0 is installed
03/02/2020 11:23:38.272 Local setup.exe not found, so continuing to run setup.exe from media.
03/02/2020 11:23:38.272 Attempt to initialize SQL setup code group
03/02/2020 11:23:38.272 Attempting to determine security.config file path
03/02/2020 11:23:38.272 Checking to see if policy file exists C:WindowsMicrosoft.NETFramework64v4.0.30319\CONFIGsecurity.confi
g
03/02/2020 11:23:38.289 .Net security policy file does not exist
03/02/2020 11:23:38.289 Attempting to create .Net security policy file
03/02/2020 11:23:39.795 Attempting to load .Net security policy file
.
.
.
03/02/2020 11:23:40.078 Saved .Net security policy file
03/02/2020 11:23:40.078 Attempting to determine security.config file path
03/02/2020 11:23:40.078 Checking to see if policy file exists  C:WindowsMicrosoft.NETFrameworkv4.0.30319\CONFIGsecurity.config
03/02/2020 11:23:40.095 .Net security policy file does not exist
03/02/2020 11:23:40.095 Attempting to create .Net security policy file
03/02/2020 11:23:41.588 Attempting to load .Net security policy file
.
.
.
03/02/2020 11:23:41.691 Saved .Net security policy file
03/02/2020 11:23:41.726 Strong name verification disabling is not required
03/02/2020 11:23:41.726 /? or /HELP or /ACTION=HELP specified: false
03/02/2020 11:23:41.726 Help display: false
03/02/2020 11:23:41.726 Attempting to launch landing page workflow
03/02/2020 11:23:41.726 Attempting to set setup mutex
03/02/2020 11:23:41.726 Setup mutex has been set
03/02/2020 11:23:41.726 Attempting to launch global rules workflow
03/02/2020 11:23:41.726 Media source: C:sql_server_2012
03/02/2020 11:23:41.741 Install media path: C:sql_server_2012x64setup
03/02/2020 11:23:41.743 Media layout: Full
03/02/2020 11:23:41.743 Attempting to get execution timestamp
03/02/2020 11:23:41.743 Timestamp: 20200302_112338
03/02/2020 11:23:41.743 Attempting to run workflow RUNRULES /RULES=GlobalRules
03/02/2020 11:23:41.743 Attempting to launch process C:sql_server_2012x64ScenarioEngine.exe
03/02/2020 11:23:49.445 Process returned exit code: 0x00000000
03/02/2020 11:23:49.461 Workflow RUNRULES /RULES=GlobalRules returned exit code: 0x00000000
03/02/2020 11:23:49.461 Attempting to launch component update workflow
03/02/2020 11:23:49.461 Media source: C:sql_server_2012
03/02/2020 11:23:49.461 Install media path: C:sql_server_2012x64setup
03/02/2020 11:23:49.461 Media layout: Full
03/02/2020 11:23:49.461 Attempting to get execution timestamp
03/02/2020 11:23:49.461 Timestamp: 20200302_112338
03/02/2020 11:23:49.476 Attempting to run workflow COMPONENTUPDATE
03/02/2020 11:23:49.476 Attempting to launch process C:sql_server_2012x64ScenarioEngine.exe
03/02/2020 11:24:59.261 Process returned exit code: 0x00000000
03/02/2020 11:24:59.272 Workflow COMPONENTUPDATE returned exit code: 0x00000000
03/02/2020 11:24:59.272 Attempting to launch user requested workflow locally
03/02/2020 11:24:59.272 Attempting to find local setup.exe
03/02/2020 11:24:59.272 Local bootstrap folder path: C:Program FilesMicrosoft SQL Server110Setup Bootstrap
03/02/2020 11:24:59.286 Local ScenarioEngine.exe full path: C:Program FilesMicrosoft SQL Server110Setup BootstrapSQLServer2012
x64ScenarioEngine.exe
03/02/2020 11:24:59.286 Media source: C:sql_server_2012
03/02/2020 11:24:59.286 Install media path: C:sql_server_2012x64setup
03/02/2020 11:24:59.286 Media layout: Full
03/02/2020 11:24:59.302 Attempting to get execution timestamp
03/02/2020 11:24:59.302 Timestamp: 20200302_112338
03/02/2020 11:24:59.302 Attempting to run user requested action from local ScenarioEngine.exe
03/02/2020 11:24:59.302 Attempting to launch process C:Program FilesMicrosoft SQL Server110Setup BootstrapSQLServer2012x64Sce
narioEngine.exe
03/02/2020 11:27:42.901 Process returned exit code: 0x85940001
03/02/2020 11:27:42.917 Local ScenarioEngine.exe returned exit code: 0x85940001
03/02/2020 11:27:42.949 Attempting to load .Net security policy file C:WindowsMicrosoft.NETFramework64v4.0.30319\CONFIGsecurit
y.config
03/02/2020 11:27:43.045 Attempting to remove .Net security code group node
.
.
.
03/02/2020 11:27:44.682 Saved .Net security policy file
03/02/2020 11:27:44.682 Attempting to release setup mutex
03/02/2020 11:27:44.698 Setup mutex has been released
03/02/2020 11:27:44.698 Setup closed with exit code: 0x84C40013
03/02/2020 11:27:44.698 ======================================================================

C:Users>

There are no specific messages to indicate the nature of the installation failure, nor what steps to take.

I’m upgrading an internal database at work, and we are creating a new VM to host it.

I can’t see an option to generate a script to export the SQL Server 2012 SP1 database for server version SQL Server 2019. Would it be better for me to:

  • Follow the upgrade path for SQL Server 2012 to SQL Server 2019 on the current database server, and export the database to the new server when the upgrade is complete.

or

  • Export the database from SQL Server 2012 as is, and script it for the highest server version available (2017).

If I installed SQL Server 2012 SP4, would that give me an option to Script for Server Version SQL Server 2019?

Thanks for your help in advance.

asked Jan 10, 2020 at 9:28

Bingobango's user avatar

2

This handy page from Microsoft should be very useful for you as it explains in detail how to carry out a migration and the tools and methods available:
Supported Version and Edition Upgrades for SQL Server 2019

Use the Data Migration Assistant (DMA) to scan your databases to make sure they can be migrated to the 2019 server. It will highlight any potential blocking issues such as deprecated features that you may need to resolve before you can migrate.

It looks like you will still need to upgrade your SQL Server 2012 to SP4 to be fully supported though.

answered Jan 10, 2020 at 9:53

KevH's user avatar

KevHKevH

5543 silver badges11 bronze badges

3

We normally just …

  1. Perform a simple SQL Server Database Backup on the old SQL Server instance (or with Transact-SQL command BACKUP)
  2. Copy the database backup (*.BAK file) to the new SQL Server instance
  3. Restore the database using either SQL Server Management Studio (SSMS) or using the Transact-SQL command RESTORE DATABASE ....

During the restore of the database on the new instance it is automatically converted into the newer database version.

If you restore a SQL Server 2005 (9.x) or higher database to SQL Server 2019 (15.x), the database is automatically upgraded. Typically, the database becomes available immediately. However, if a SQL Server 2005 (9.x) database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_option server property. If the upgrade option is set to import (upgrade_option = 2) or rebuild (upgrade_option = 0), the full-text indexes will be unavailable during the upgrade. Depending the amount of data being indexed, importing can take several hours, and rebuilding can take up to ten times longer. Note also that when the upgrade option is set to import, the associated full-text indexes are rebuilt if a full-text catalog is not available. To change the setting of the upgrade_option server property, use sp_fulltext_service.

Reference: Restore a Database to a New Location (SQL Server) (Microsoft | SQL Docs)

Important

Don’t forget to create scripts for the SQL Server Logins, which can then be used to re-create them on the new instance. Visit the article How to transfer logins and passwords between instances of SQL Server (Microsoft Support) to see how this can be achieved.

answered Jan 10, 2020 at 9:53

John K. N.'s user avatar

John K. N.John K. N.

15.8k10 gold badges45 silver badges100 bronze badges

2

В этой статье мы пошагово рассмотрим установку Microsoft SQL Server 2019 с описанием всех опций, компонентов, актуальных рекомендаций и best practice.

MS SQL Server это лидирующая РСУБД (Реляционная система управления базами данных) а также главный конкурент Oracle Database в корпоративном сегменте. В СНГ MSSQL чаще всего применяется для собственных разработок прикладного ПО и для 1С.

Содержание:

  • Редакции MS SQL Server 2019
  • Особенности лицензирования SQL Server
  • Начало установки SQL Server
  • Параметры обновлений SQL Server при установке
  • Тип инсталляции SQL Server
  • Компоненты SQL Server 2019: для чего нужны, какие нужно установить
  • Настройка именования экземпляра SQL Server
  • Настройка параметров служб SQL Server, кодировка
  • Настройка Database Engine в SQL Server

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

Всего есть 6 выпусков (редакций) MSSQL 2019:

  • Express является бесплатной для использования редакцией. Функционал довольно ограничен, самое ощутимое ограничение экспресс версии — максимальный размер базы 10 ГБ. Эта редакция подойдет для небольших проектов, например, студенческих работ или для обучения SQL/T-SQL.
  • Standard это полноценная платная редакция, но многих функций всё еще нет. Максимальный объём оперативной памяти, который сможет использовать SQL Server – 128 ГБ, также отсутствуют группы доступности AlwaysOn и другие компоненты. Standard предназначен для приложений в небольших организациях.
  • Enterprise включает в себя все возможные функции и компоненты, никаких ограничений нет. Корпоративная редакция обычно используется крупными корпорациями или компаниями, которым необходим функционал этой версии.
  • Developer редакция так же как и Enterprise не имеет никаких ограничений и её можно использовать бесплатно, но она может использоваться только для разработки и тестирования приложений.
  • Web редакция почти ничем не отличается от standard, кроме как более сильными ограничениями в функционале и соответственно более низкой стоимости лицензирования;
  • Evaluation — ознакомительная редакция SQL Server, которая предоставляет полный функционал Enterprise и работает в течении 180 дней (может быть обновлена до полноценной версии).

Особенности лицензирования SQL Server

MS SQL Server лицензируется по 2 моделям:

  • PER CORE — лицензирует MSSQL по ядрам сервера
  • SERVER + CAL — лицензия целиком на сервер и на каждого пользователя, который будет работать с сервером

Enterprise редакция может быть лицензирована только по типу PER CORE

Также в MSSQL Server 2019 появилась новая возможность для лицензирования контейнеров, виртуальных машин и Big Data Clusters.

Более подробная информация по лицензирования SQL Server представлена в отдельной статье.

Начало установки SQL Server

В этой статье мы будем устанавливать MS SQL Server 2019 Enterprise Edition на Windows Server 2019.

Примечание. В SQL Server 2019 появилась полноценная поддержка Linux, а соответственно Docker и Kubernetes.

  • Скачайте и распакуйте установочный образ SQL Server 2019. Запустите setup.exe;
  • Так как в этой статье мы будем устанавливать обычный изолированный экземпляр, во вкладке Installation выберите “New SQL Server stand-alone installation”.

установшик MS SQL Server 2019

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

Параметры обновлений SQL Server при установке

На этом шаге вы можете включить поиск обновлений через Windows Update. Включать эту опцию или нет, решать вам. Всё зависит от вашей планировки обновлений и от требований к отказоустойчивости сервера. Если у вас нет четкого плана обновлений ваших серверов, лучше оставьте этот параметр включенным.

Нажмите Next.

Шаг Install Setup Files произойдет автоматически. Он подготовит файлы для установки.

Install Rules так же пройдет автоматически, если установщик не обнаружит проблем, которые необходимо решить перед установкой MSSQL (например, перезагрузить компьютер или несовместимость вашей версии Windows с версией SQL Server).

Тип инсталляции SQL Server

На этом шаге вы можете выбрать установку нового экземпляра или добавление функционала в уже установленный экземпляр. В нашем случае выбираем “Perform a new installation”. выбор типа установки sql server - новая установка

Теперь нужно ввести ключ продукта. Если нет ключа, выбирайте Free edition (например, Developer), но имейте в виду, что с редакцией Developer вы имеете право только разрабатывать и тестировать ПО, но не использовать сервер в продуктивной среде. ввести ключ установки sql server

На шаге License Terms принимаем лицензионное соглашение.

Компоненты SQL Server 2019: для чего нужны, какие нужно установить

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

  1. Database Engine Services – это основной движок SQL Server. Обязателен к установке.
  2. SQL Server Replication – службы репликации. Компонент довольно часто используются, поэтому если вы не уверены нужны ли они вам, то лучше отмечайте для установки.
  3. Machine Learning Services and Language Extensions – службы для выполнения R/Python/Java кода в контексте SQL Server. Необходимо, если вы собираетесь заниматься Machine Learning.
  4. Full-Text and Semantic Extractions for Search – компонент необходим, если вам нужна полнотекстовая технология поиска или семантический поиск в документах (например docx). В случае семантического поиска по документам, вам также понадобиться FILESTREAM, о нём ниже.
  5. Data Quality Services – службы для коррекции и валидации данных. Если вы не уверены нужен ли вам DQS, то лучше не устанавливайте его.
  6. PolyBase Query Service For External Data – технология для доступа к внешним данным, например на другом SQL Server или в Oracle Database. Java connector for HDFS data sources относиться к PolyBase технологии и нужен в случае если вы хотите работать с HDFS технологией.
  7. Analysis Services – также известен как SSAS. Технология для бизнес-отчетов (BI) и работы с OLAP. Используется в крупных компаниях для отчетности.

Дальше переходим к списку Shared Features (функций, распространяющихся на весь сервер, а не на конкретный экземпляр).

  1. Machine Learning Server (Standalone) – то же самое что и Machine Learning Services and Language Extensions, но с возможностью установки без самого движка SQL Server.
  2. Data Quality Client – то же самое что и DQS, только standalone.
  3. Client Tools Connectivity – библиотеки ODBC, OLE DB и некоторые другие. Рекомендем ставить обязательно.
  4. Integration Services – службы интеграции данных, известны также как SSIS. Технология для ETL (Extract, Transform, Load) данных. SSIS нужны, если вы хотите автоматизировать импорт данных и менять их в процессе импорта. Scale Out Master/Worker нужны для масштабирования работы SSIS. Если вы не уверены нужны ли они вам, то не отмечайте их.
  5. Client Tools Backwards Compatibility – устаревшие DMV и системные процедуры. Рекомендую ставить.
  6. Client Tools SDK – пакет с ресурсами для разработчиков. Можно не ставить, если не уверены, нужен ли он вам.
  7. Distributed Replay Controller/Client – повторяют и улучшают функционал SQL Server Profiler. Службы Distributed Replay нужны для моделирования нагрузки и для различного рода тестирования производительности.
  8. SQL Client Connectivity SDK – ODBC/OLE DB SDK для разработчиков.
  9. Master Data Services – компонент из Microsoft Power BI. Нужен для анализа, валидации, интеграции и коррекции данных.

Некоторые из этих компонентов (например, Java connector for HDFS data sources) могут отсутствовать в более старых версиях SQL Server.

Чуть ниже, на этом же шаге, вы можете указать директорию для файлов SQL Server’a. Если у вас нет весомых причин менять её, то оставьте стандартную (C:Program FilesMicrosoft SQL Server).

компоненты sql server, какие нужно устаналивать обязательно

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

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

Вы можете оставить параметр Default Instance, в таком случае имя вашего экземпляра будет MSSQLSERVER. При выборе Named Instance вы сами указываете имя экземпляра SQL Server. В моём случае я назову экземпляр DEV. Instance ID рекомендуется ставить такой же, как и имя экземпляра, во избежание путаницы.

В Installed instances отображаются установленные на сервере экземпляры MSSQL, у меня уже есть один.sql server named instance или default экземпляр

Настройка параметров служб SQL Server, кодировка

Во вкладке Service Accounts укажите аккаунты из-под которых будут работать службы SQL Server на хосте. Хорошей практикой считается использование MSA (Managed Service Accounts) и gMSA (Group Managed Service Accounts) технологий, как самых надежных в плане безопасности. Я буду использовать обычный доменный аккаунт.

Выставьте у SQL Server Agent поле Startup Type в Automatic, иначе агент придется запускать вручную.

Также начиная с SQL Server 2016 появилась возможность выставлять параметр IFI (Instant File Initialization) при установке сервера. В инсталляторе он называется “Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine”. Его включение означает, что старые данные не будут перезаписываться нулями при:

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

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

Рекомендую включать этот параметр, если опасность утечки данных несущественна.

запуск sql server под доменной учетной записью

На следующем шаге вы должны выбрать Collation.

Грубо говоря, Collation это настройка кодировки SQL Server. Этот параметр устанавливает кодировку страниц, правила сортировки, кодировку для char/varchar и другие языковые настройки.

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

Для СНГ рекомендуется выбирать Cyrillic_General_CI_AS. Если данные будут только на английском, можно выбирать SQL_Latin1_General_CP1_CI_AS.

Если вы планируете использовать SQL Server в боевых условиях, ознакомьтесь с документацией по выбору Collation, так как это важный параметр, хоть он и может быть задан для конкретной базы данных.

sql server 2019 кодировка Collation

Настройка Database Engine в SQL Server

На шаге Database Engine Configuration доступны 6 вкладок, начнем по порядку:

В Server Configuration вы должны выбрать Authentication Mode и указать аккаунт для администратора SQL Server’a.

У вас на выбор есть 2 режима: Windows authentication mode и Mixed mode.

  • С Windows аутентификацией авторизоваться смогут только пользователи вашего домена или компьютера под управлением Windows.
  • В Mixed mode помимо windows авторизации станет доступна авторизация по учетным данным самого SQL Server’a.

Майкрософт рекомендует использовать Windows Authentication как самый безопасный, но на практике скорее всего вам нужно будет логиниться на сервер из других приложений. Например, написанных на java, и в таком случае без аутентификации SQL сервера не обойтись.

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

В моём случае я ставлю Mixed mode. В этом режиме вам нужно будет прописать пароль от пользователя sa и выбрать Windows аккаунт, который будет обладать административными правами.

тип аутентфикации sql server: Windows authentication mode или Mixed mode

На вкладке Data Directories вы должны выбрать каталог, в которой SQL Server будет хранить базу данных и транзакционные логи.

Для данных лучше всего выделить отдельный RAID массив. Дисковая подсистема критически важна для производительности SQL Server’а, поэтому необходимо выбрать самый хороший из доступных вам вариант хранения данных, будь то NAS или локальный RAID из быстрых дисков.

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

В моём случае я укажу отдельный диск с RAID 1 для всех директорий.

путь к базам данных и каталогам бэкапов sql server

На вкладке TempDB настраиваются параметры для базы tempdb. Её правильная конфигурация важна для производительности сервера, так как эта база участвует практически во всех операциях с данными.

  • Number of files – количество файлов данных для tempdb. Вам нужно указать количество файлов в зависимости от ядер процессора. Хорошей практикой считается выставлять количество файлов равным количеству ядер процессора поделенных на 2. То есть на 32 ядра вашего сервера рекомендуется 16 файлов. Также независимо от количества ядер не рекомендуется ставить меньше 8 файлов, это необходимо, чтобы избежать проблем, описанных здесь https://support.microsoft.com/en-us/kb/2154845 .
  • Initial size – начальный размер файлов данных tempdb. При каждой перезагрузке сервера, размер tempdb будет сбрасываться до начального размера. Рекомендуется указывать размер файлов данных в зависимости от планируемой нагрузки. Если вы не можете спланировать будущую нагрузку, то оставьте 8 MB. Если вы выделите отдельный массив/диск под файлы tempdb (об этом ниже), то лучше всего будет указать такой размер файлов, который бы полностью заполнил диск, чтобы избежать постоянных операций увеличения файла.
  • Autogrowth – шаг увеличения файлов tempdb. Размер нужно ставить в зависимости от начального размера. Оставьте 64 МB, если не можете спланировать нагрузку. Имейте в виду, если включен IFI (Instant File Initialization) то ожидание блокировок на расширение файла будет намного меньше. Не рекомендуется ставить размер шага слишком большим, так как это вызовет существенные задержки при увеличении размера файла.
  • Data Directories – директории для размещения файлов данных tempdb. Если вы укажите несколько директорий, файлы будут размещаться по алгоритму Round-robin, то есть циклически. Грубо говоря при указании, например, 4 директорий, файлы данных распределятся по всем директориям в равной степени. Хорошей практикой будет добавить разные дисковые массивы для файлов данных.
  • TempDb Log file: Initial size / Autogrowth – настройка начального размера и шага увеличения файла лога tempdb. Стоит придерживаться таких же правил, как и для файлов данных tempdb.
  • Log Directory – директория для хранения лог файла tempdb. Лог файл всего 1, независимо от количества файлов данных, указывается всего 1 директория. Если есть возможность, лог файлу также выделите отдельный массив.

настройка параметров tempdb в sql server

Вкладка MaxDOP.

MaxDOP это параметр SQL Server’а который отвечает за параллельное выполнение запросов и соответственно степень параллелизма. Для того чтобы SQL Server использовал все ядра процессора для обработки параллельных планов, установите 0 в качестве значения MaxDOP. Если по каким-то причинам вы хотите отключить параллельное выполнение запросов, установите 1 в качестве значения. Для максимальной производительности настройте MaxDOP согласно правилам в таблице (https://go.microsoft.com/fwlink/?linkid=2084761):

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

В моём случае я поставлю 0. Это даст наибольшую производительность для выполнения планов параллельных запросов, но это может вызвать задержки, так как другие запросы должны будут дождаться завершения выполнения текущего запроса, потому что все ядра процессора будут заняты выполнением текущего запроса.

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

Вкладка Memory – нужно указать минимальный и максимальный объем оперативной памяти, который будет использовать SQL Server. Так как спрогнозировать нужный объём для сервера довольно сложно, рекомендуется выделить SQL Server’у 80-85% от всего объёма оперативной памяти сервера. Для того чтобы узнать реальный объём используемой оперативной памяти, нужно круглосуточно мониторить потребление оперативной памяти через специальные DMV (Dynamic Management View) и отслеживать пики потребления RAM. Только с наличием этой информации можно спрогнозировать реальный объем потребления оперативки.

Я оставлю Default значения (min 0 и max 2147483647 MB).

настройка выделения памяти для sql server

Вкладка FILESTREAM – включение технологии FILESTREAM. Она позволяет хранить бинарные файлы на файловой системе и обеспечивает доступ к ним через SQL. Если вы не уверены, что хотите работать с бинарными данными на уровне SQL, то тогда оставьте FILESTREAM выключенным.

Шаг Feature Configuration Rules пройдет автоматически. Ознакомьтесь со сводкой в Ready to Install и жмите Install.

На этом базовая установка SQL Server 2019 Enterprise завершена. В следующей статье мы посмотрим на основные способы анализа производительности и проблем в SQL Server.

Примечание. На более старых версиях ( SQL Server 2014, 2016) некоторых вкладок и параметров может не быть.

Понравилась статья? Поделить с друзьями:
  • Windows server 2019 standard виды лицензий
  • Windows server 2019 server datacenter not supported
  • Windows server 2019 standard torrent оригинальный образ
  • Windows server 2019 rtm что это
  • Windows server 2019 rtm или ltsc