The SQL Server Basic Installer: Just Install It!
20+ years ago when I joined Microsoft I was handed a diskette (maybe it was two), and was told “Here is SQL Server. Go install it”. So I proceeded to install SQL Server 4.20 on my Windows NT 3.1 desktop machine (I won’t tell you the hardware details. It would scare you). There was a GUI as part of setup but within just a few clicks, SQL Server was installed and ready for use.
In those days, what you got was the core SQL Server engine and tools. Over the years this product has grown into a complete data platform including Reporting Services, Analysis Services, Integration Services, more tools, Replication, R Services, and much more. And the Operating System environment for Windows Server has become more robust but has introduced more features and complexity. So now there are more choices to make when installing SQL Server. And for Standard and Enterprise Edition, in many situations these choices are needed and make sense. But with choices comes more screens and more “clicks” to “Just Install It”. We do provide command line options and configuration file settings to automate this but there are many choices to make and no simple GUI.
For the user who wants to install SQL Server Express, SQL Server Developer, and perhaps even the Evaluation Edition of SQL Server, all these choices get a bit frustrating especially for the “core SQL engine” user. The setup team has heard this feedback and responded.
Today we are introducing the new Basic Installer experience for SQL Server 2016 Express, SQL Server 2016 Developer, and SQL Server 2016 Evaluation Editions. With three clicks, you can get a default installation of these editions and have SQL Server installed in a manner of minutes. We actually launched this functionality for SQL Server 2016 Express Edition when SQL Server 2016 RTM was announced but didn’t really promote this. With the addition of Developer and Evaluation Editions, we felt it was time to get the word out.
The basic installer experience is simple, clean, and fast. Run our Basic Installer .EXE and you can install the SQL Server Engine with only these three screens:
Note: For Developer Edition, please be sure to look for this important note to use the new Basic Installer vs the ISO download:
New! As an option to downloading the compressed media above, you can execute the new SQL installer for SQL Server 2016 Developer. The installer provides a quick and easy 'Basic' install experience, downloading and installing the SQL Server Engine in just 3 clicks. The installer will also provide the options to perform a full 'Custom' installation, or to 'Download Media' only as the download button above provides
For the rest of this blog post, I want to give you a look “behind the scenes” at this new experience using SQL Server 2016 Developer Edition. Now when you select a link to use the basic installer for SQL Server Developer Edition (via Dev Essentials), you will get a package called: SQLServer2016-SSEI-Dev.EXE. It is about 3.5Mb in size. I call this the basic installer executable. (Express and Evaluation Editions have similar names).
Launching this program brings you to the new Basic Installer Screen. You will want to keep the basic installer executable around on your machine for future executions. I’ll explain why later in the post.
You have three options to choose from. I’ll talk more about the Custom and Download Media options later in this post. Let’s just try the Basic Option and see what happens. That is click #1.
Here is the standard “EULA” or license screen. Read it over and Click Accept to continue. That is Click #2.
Next is the Installation Location. Use the default or change the location. One important note. The drive you choose here is the drive we will use to download the setup package and save the setup files for later use. So if you choose D:\Microsoft SQL Server, we will download the setup package and save the setup files to D:\ SQLServer2016Media. Now select the Install Button. That is click #3.
The installer now is off to download the setup files from the web, extract them, and run setup. The Download progress actually involves first downloading a package for “rules”, extracting and running setup rules, and then downloading the actual setup package (the .BOX file) should the rules pass
During the progress of the download and installation, we display a running set of information about SQL Server including “Getting Started” (like how to setup remote connectivity), where to get samples, how to get forum support, and how to receive updates. Don’t worry about taking screenshots or speed reading. I’ll show you how to get this information later. We put this information for you to read a bit about SQL Server as you watch the install proceed.
If this is the first time you have run the basic installer we download the setup files as I described above. So the initial time to run this all depends on your network speed. If you run the Installer again, we use what I call “smart download” technology. Subsequent executions of the installer will check to see if those setup files are the latest version vs. what we have on the download center. If there is a newer version, we will download the files again. If not, we just skip this step and run setup. In addition, the basic installer executable includes its own “smart download” capability to check whether there is a newer version for itself. If so, you will get an error pointing you to download a new version.
Once the setup files are downloaded, the screen is updated to indicate successful download and the installation phase begins with another progress indicator. This involves a quick extraction of setup files from the package and executing setup. When this finishes, you get a screen with information about the successful installation.
That’s it! Three clicks and in a manner of minutes I’ve got a SQL Engine installation ready to use. As I’ve said above, any subsequent executions could be faster if the download setup files are saved and are the latest version.
So what actually got installed?
You can see from this screen on the left side what was installed. The core SQL Engine with a default instance name and the account I logged in added as a SQL Server Admin. This is effectively the same as if you had used the full install and picked the features of Database Engine Services and Client Connectivity SDK as the two components to install.
How do I know this? I went to uninstall what I just installed and received these two features as options to remove
In addition, we enable the best practice setting for instant file initialization (equivalent to the setup command line parameter SQLSVCINSTANTFILEINIT).
On the right side of the screen above is information about the installation including what connecting string to use, where the setup log files are located, where the setup files we extracted from the package were saved (for you to add other features or run the installer again without downloading the package), and a folder containing these important files to review after you have installed:
Before you Get Started – Information about how to configure remote connectivity to your new instance.
Getting Started – Remember those updates that flashed by at the bottom of the screen during installation? As I mentioned earlier, you didn’t have to take screen shots for yourself. All the information about samples, forum support, and keeping up to date with updates are located in this file.
InstallSummary_<instance name> – this is a very simple file that summarizes what we just installed
Here is what it looked like on my system
At the bottom of the screen above are three interesting buttons:
Connect Now – Launches a separate command line window running sqlcmd.exe (with -E) to test you can connect to what you just installed.
Customize – Launches the SQL Installation Center just as though you had launched setup.exe from the downloaded setup files. This is a very handy way to go in and add features after the basic installation is complete. You also have the option to perform this same action on the main installer screen where it says Custom.
Install Tools – Takes you to the main download page for SQL Server Management Studio (which has a link to the latest update) and associated tools. Note that even though Install Tools is separate, the SQL Engine core install comes with tools like bcp.exe and sqlcmd.exe.
If you launch the easy installer again, should you have an instance already installed, we will just create a new one with a sequential number (e.g. MSSQLERVER01).
As you see the new UI look for our installer, you may be wondering is this a completely different installer technology? The answer is simply no. Behind the scenes we are running our actual setup code (which uses Windows Installer) but using a configuration file with predefined settings and putting a simple UI over the execution. It is simple, quick, and uses the proven setup technology from our past several releases. What if you wanted to know more about what configuration options we use and what the configuration file looks like? It is all recorded in the setup summary log files.
If you go to the “SQL Server Install Log Folder” as listed in the InstallSummary_<InstanceName> file you can see a file called ConfigurationFile. In it are all the settings we use to run setup.
If you remember from our first screen where we chose Basic to “Just Install It” there were two other options: Custom and Download Media.
If you select Custom, we launch setup to run the full setup experience. You are first prompted on where to download the media (setup package and files). If you have already downloaded the setup files, we detect this and use the same “smart download” methods as described earlier in the post. Then we launch the SQL Installation Center for you to add new features. Note for our SQL Server 2016 Express Installer this will run the SQL Server 2016 Express with Advanced Services setup so you can install other features such as SSRS, Full-Text, or R Services with Express.
The Download Media option is exactly what that means. Select this to download Express, Developer, or Evaluation setup files to a destination folder so you can run the full setup experience at a later time. This option is not necessarily designed to save the setup files for use for subsequent basic installer setup. But here is a tip. If you choose a location to download the CAB version of the media to <drive>:\SQLServer2016Media where <drive> is the same drive as your destination for the basic install, the installer will detect the downloaded setup files.
There are some other interesting aspects to the design of the installer:
· Our “smart download” technology also includes reliability built-in so we can “start where we left off” should you lose connectivity during the download
· The Download Media option for SQL Express allows you to download Express Core, Express Advanced, or LocalDB.
· In addition, the Download Media option includes a link to create a virtual machine in Azure for SQL Server 2016.
One other important note. The current “smart setup” technology used by full setup is not compatible today to run as part of choosing the Basic Installer option. Therefore, should you use our basic installer for SQL Server 2016, please be sure to apply this SQL Server critical update.
What if I have issues?
The setup and installer logs are all available as with any normal SQL Server setup experience. One difference is the GUI we present from the Basic Installer (3 clicks) scenario if there is a rule check failure. The typical issues would likely involve our rules check such as restart required or checks for things like WMI service running. Here is the example screen if a restart was required before we can proceed.
There is your new Basic Installer Experience. Use the Basic option to install in three clicks. Use the Custom option to run a full setup or add new features to an existing installation. Use the Download Media option to save the media files for future installations (For example, the ISO is perfect for Virtual Machines not connected to the Internet).
What we have launched is actually an update to the original SQL Server 2016 Express experience we launched at RTM. And we plan to keep iterating and improving this experience. We want your feedback and reports on any issues. Use the Setup forums on MSDN or stackoverflow or post a request/bug on Microsoft Connect.
I loved getting the opportunity to dig into how this works and write up this blog post. I want to thank Lee Woods, Jeff Papiez, the rest of the setup team, and Amit Banerjee, my colleague from the Tiger Team, for building the technology and helping me document all the details for this announcement.
Principal PM Architect
Data Group, Tiger Team