After chatting with my friend and fellow Microsoft MVP Allen White about Windows Server Core on a recent SQLCruise.com excursion, I realized that this is a technology I should be evangelizing more. I hope you’ve heard about Windows Server Core and are considering using it for your SQL Server, and, indeed, any relational database platform you’re currently running on Windows Server. Why?
Several reasons lead me to suggest Windows Server Core (or “Core,” for short) for many database applications. First, Core is a stripped-down version of Windows that provides all of the subsystems and services that SQL Server needs, but none of the frilly extras that consume lots of extra space and processing overhead. For one thing, Core has no GUI component. Do you absolutely require a point-and-click mouse cursor to be effective? Need high-end graphics performance on your SQL Server? Want to play Solitaire and MineSweeper on your production database instance? Then perhaps you should stick with old-fashioned Windows Server.
On the other hand, if you want less extraneous overhead, fewer ways to hack your server, and easier long term maintenance, then you should definitely take a look at Windows Server Core. (Incidentally, Windows Server Core first became available with Windows Server 2008 R2 SP1).
Due to its stripped down nature, Core offers quite a few other benefits. The OS requires only about 3.5GB, just a bit over half of the regular server OS. It can provide greater stability during regular operations because it runs far fewer services and processes than the regular server OS. Plus, it doesn’t have as many situations where it needs to be patched and, in a related vein, does not have nearly as much surface area to protect against hackers and viruses.
When installing a SQL Server instance on Core, there’s no direct GUI access. Instead, you’ll interface with the instance of SQL Server either remotely, when using tools like SSMS, or when connected directly through PowerShell or SQLCMD. Basically, you’ll be using what looks like a DOS character-mode terminal. You’ll be able to take advantage of most all of the features of SQL Server: the relational database engine, SSIS, SSAS, Full Text Search, replication, and the Microsoft Sync Framework. However, SSRS (Reporting Services) and Books On-Line are not supported on Core.
There are a few prerequisites to running SQL Server on Core. For example, you’ll need either .NET Framework 2.0 SP2, or .NET Framework 3.5 SP1 Full Profile. You’ll also need DISM Feature names, Windows PowerShell 2.0 (or later), and the .NET Framework 4 Server Core Profile. To learn more about installing SQL Server 2012 on Core, be sure to check out http://technet.microsoft.com/en-us/library/hh231669%28SQL.110%29.aspx. It’s not hard to get SQL Server up and running on Core, but I recommend that you go forward only after reading further.
And if you’ve never read much about Core, there’s a good blog post entitled, “Understanding Windows Server 2008 Server Core,” available at www.petri.co.il/understanding-windows-server-2008-core.htm.