Recently there was an article on StarWind Blog dedicated to Exchange 2016 installation written by Nicolas Prigent, so I decided that some folks might want to get something similar for SharePoint 2016, so here you are. Disclaimer: I did not touch on scripting SharePoint installation with PowerShell or any other advanced stuff, but I promise that you’ll find some interesting details beyond of “how do I click my way through setup wizard” information.
Microsoft’s SharePoint evolved quite dramatically in three previous major releases (2007, 2010, 2013) and now we have yet another version – SharePoint 2016. As usual, in this release, you can find additional functionality and loads of things to learn. But I think what you may be interested in it is just how to do a quick install to play with the latest version of SharePoint and test if it works well for your scenarios whatever they are. For example, in my case, I am going to test different scenarios of integration between K2 blackpearl and SharePoint 2016 among many other things. Disclaimer: if you in a mood to read somewhat dry and lengthy official installation guide – it exists and should be perused before doing production installation, but as the usual official documentation does not go as a pleasant easy read for the majority of people.
SharePoint 2016 is the first version of SharePoint product which has been fully developed in the cloud and then released as an on-prem product, as Microsoft likes to say these days battletested in the cloud and ready for hyper-scale :-). If you followed SharePoint product line closely enough you might also know that this is a version which Microsoft didn’t want to release at all until demand from client base made them reconsider this and release yet another version of on-premise product (as a result it is geared heavily towards integration with SharePoint Online and Office 365).
Yes, I do confirm that you can do so-called “spousal mode” installation when you just click Next/OK in each prompt and not going into any details. Yet at the same time, real-life production installation will be well out of scope for the introductory article. Hence here we just try to properly install single-box SharePoint 2016 server for test purposes covering just enough details to make it right, and additionally touching a bit on some stuff beyond just installation process covering best practices related to the configuration of SQL Server for SharePoint and installation of language packs.
I think I will later do another blog post on specific new features of this release but for now, I mention that in this version Microsoft introduced new and improved patching process and that the only supported upgrade scenario to this version is database attach.
Before you run SP 2016 setup there is some ground work to do. You will need the following platform wise (refer to official Hardware and software requirements for SharePoint Server 2016 for more details):
- Windows Server on which you install SharePoint 2016 – this can be VM with Windows Server 2012 R2 or 2016 Standard or Datacenter.
- SQL Server – which is the crucial component for your SharePoint farm. You will need either the 64-bit edition of Microsoft SQL Server 2014 SP1 or Microsoft SQL Server 2016 RTM.
For this tutorial, I decided to use new and shiny things so I’m using Windows Server 2016 Standard as base OS for SharePoint 2016 installation and separate VM with Server 2016 Standard and SQL Server 2016 Enterprise.
First important piece of a groundwork we must do is provisioning of dedicated SQL Server instance for SharePoint. Obviously, I won’t be covering entire SQL Server instance installation process, but I will explain below how to setup SQL alias as well as couple of settings you want to take care of for your SharePoint SQL Server just to avoid time you may otherwise waste later rebuilding your environment just because you did not get the basics right (AKA “rip and replace” time).
First of all, your SQL server collation must be configured for case-insensitive. The SQL Server database collation must be configured for case-insensitive, accent-sensitive, Kana-sensitive, and width-sensitive. This is to ensure file name uniqueness consistent with the Windows operating system (sources: 1, 2). I would suggest you set your instance to have the same collation as SharePoint data bases – Latin1_General_CI_AS_KS_WS – just don’t forget to do this during SQL installation (it is very easy to rush through SQL Server Setup without even noticing that tab where this setting can be configured):
Additional SharePoint SQL instance settings we have to take care of are covered below. First, we need to set Max Degree of Parallelism to 1 to make sure that a single SQL Server process serves each request:
Once this is done another thing to remember is that you should not enable auto-create statistics on SharePoint content databases – SharePoint databases use a stored procedure that maintains the statistics (proc_UpdateStatistics). To make sure that auto-create statistics is not enabled you can use the following SQL script which lists all databases on your server which have auto-create statistics enabled:
1 2 3 4 5 |
SELECT name FROM sys.databases WHERE is_auto_create_stats_on = 1; |
Last thing, which will ensure better flexibility for us is SQL alias – having it will simplify maintenance and make it easier to move SharePoint databases to another server without the need to change anything on SharePoint side. Fire off SQL Server Client Network Utility and create a new alias for your SharePoint SQL Server instance. Just to be on a safe side create the alias using both x86 and x64 versions of cliconfg.exe – “C:\windows\syswow64\cliconfg.exe” and “C:\windows\system32\cliconfg.exe”, they write alias configuration in different registry hives and bitness of application which reads these settings defines where this application will look for alias properties. For example, SharePoint 2016 setup is x86 application and will look for alias parameters in x86 registry hive.
Now with dedicated SQL service instance/server configured and alias created we have due application isolation and flexibility on our application backend side. Essentially by doing this, we covered most of best practices mentioned in Best practices for SQL Server in a SharePoint Server 2016 farm TechNet article.
Once servers with required features are in place you can employ splash screen to kick off installation of prerequisites:
Alternatively, you can directly execute prerequisiteinstaller.exe. As I’m running this on Windows Server 2016 this is my first step, but in case you run older versions of Windows Server make sure to install the following update Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 update: April 2014 before running prerequisites installer. Prerequisites installer takes care of required Windows Server features and other software prerequisites like .NET Framework 4.6:
This handy tool downloads and installs all these prerequisites for you – it will take some time depending on your VM and internet connectivity speed. It won’t prompt you for restart after completion but I would recommend you to do it anyway as reboot never hurts after installing a bunch of additional software on the server.
We are done with prerequisites now, and ready to start the installation of SharePoint Server itself – this is also the two-step process. First setup just installs files asking you about location for SharePoint Server and SharePoint Search files (index), and on the second step you start Configuration Wizard to configure your SharePoint Server:
Be informed that configuration process may start/reset IIS in the process – so take this possible service interruption into account (not a big deal if you installing test box and wizard warns you about this). First, we opt out to Create a new server farm:
Next, specify our SQL alias in Database server field as well as database access account (in case you can’t connect though you sure that alias, credentials, and rights are in order make sure alias has been created using x86 version of cliconfg.exe):
On the next step, specify your farm passphrase – this one will be required for adding additional servers to your farm and can be changed afterward:
After this Specify Server Role step presented to you. This one is no brainer in a single-server farm scenario (and distributed installation is a bit out of scope for this article). This is an interesting step as here you can see so-called SharePoint MinRoles which is also a new thing introduced in SharePoint 2016. MinRole is a new farm topology based on a set of predefined server roles introduced in SharePoint Server 2016. When configuring your SharePoint farm, you now select the role of a server when you create a new farm or join a server to an existing farm. Once again we installing single-server farm here:
And finally, we need to configure SharePoint Central Administration Web Application – we can specify port number as well as select security settings (NTLN or Negotiate (Kerberos), with the latter option being more secure). Make sure enter port number you like at this step, otherwise you end up with some auto-generated random port for your Central Administration web application:
Next review your selections and if everything is OK just click next to begin actual configuration process which will create your configuration database:
Once configuration process is completed you should receive confirmation that configuration was successful:
After clicking Finish button, Configuration Wizard will launch a browser window with SharePoint Central Administration page where after replying to CEITP participation prompt you can select whether you will use Wizard or Manual way of configuring your SharePoint farm.
We will opt out for the simplest option “Start the Wizard”, and it will provision service application and services for us:
After famous “This shouldn’t take long” message which can take the arbitrary (large) amount of time we finally have done with the installation process and can start working with our SharePoint farm – we will be presented with Create Site Collection page. But before we wrap up with installation let’s also apply language pack or two for SharePoint 2016 (depending on your needs 🙂 ). That language which was used when you initially installed SharePoint (in my case it was English) becomes SharePoint installation base language, and additional ones may be added as language packs. Download language pack you need and install it, once binaries are installed make sure you keep ticket by default check box to run Configuration Wizard as you need to run through it to have your language pack applied:
As an aspiring polyglot, I’ve applied both French and German language packs for my farm, and the easiest way to verify that language packs were installed is Language drop down on Create New Site Collection page which presents additional languages:
I hope this article was useful for you and I’m going to write a bit more about new features introduced in SharePoint 2016 soon.