Install Clustered SQL Server 2008 R2 on Windows Server 2012 R2

It turns out that installing a SQL Server 2008 R2 cluster on Windows Server 2012 R2 is a little more involved than point-and-click.

Install Windows Failover Cluster Support Feature

The SQL Server installer check throws an error that there are no shared disks available:

The cluster on this computer does not have a shared disk available. To continue, at least one shared disk must be available.

This is because the SQL Server 2008 R2 installer uses Failover Cluster features that have been deprecated from Windows Server 2012 R2, and which are not installed by default.

Open a Powershell prompt and run:

Get-WindowsFeature RSAT-Cluster*

You should see that the Failover Cluster Automation Server is not installed, but rather has an Install State of Available. To install it, you run the command:

Install-WindowsFeature -Name RSAT-Clustering-AutomationServer

Stage the Cluster Name in Active Directory

The Active Directory computer account that the Windows Cluster (NOT the SQL cluster) run as does not, by default, have access to create the SQL Cluster computer object in Active Directory. You should create the computer object before-hand and assign it appropriate permissions. If not, after installation when you attempt to start the SQL Server instance, you will receive a message that the Network Name is unable to be brought online.

  1. Create a Computer object with the name of the SQL cluster that you are about to install.
  2. Disable the computer object that you just created.
  3. Right-click on it, select Properties.
  4. Click the Security tab.
  5. Click Add.
  6. Change the Object Type to search to include Computers.
  7. Search for the name of the Windows Cluster. Click OK to confirm that you want to add it.
  8. Change the security for the Windows Cluster to have Full control.
  9. Click OK to save the Security changes.

Update Installer Files to Service Pack 1

The SQL Server installer will fail at the very end of the installation configuration process, right before it starts the installation. It complains about FILESTREAM access (regardless of whether you have set it up or not), that:

Windows 2003 hotfix KB937444 is not installed

This is because you need at least Service Pack 1 for SQL 2008 R2 to install it correctly. But how can you install Service Pack 1 if you can't even install the base SQL Server? The answer is: Slipstream Service Pack 1 into the installer

  1. Extract the contents of the regular SQL Server installer to the folder: C:\Installer_SQL2008R2_SP1\

  2. You'll need to download Service Pack 1 from Microsoft. Be sure to download all of the architecture packages.

    SQLServer2008R2SP1-KB2528583-IA64-ENU.exe

    SQLServer2008R2SP1-KB2528583-x64-ENU.exe

    SQLServer2008R2SP1-KB2528583-x86-ENU.exe

  3. Extract each of the packages to a temporary folder:

    SQLServer2008R2SP1-KB2528583-IA64-ENU.exe /x:C:\Installer_SQL2008R2_SP1\SP

    SQLServer2008R2SP1-KB2528583-x64-ENU.exe /x:C:\Installer_SQL2008R2_SP1\SP

    SQLServer2008R2SP1-KB2528583-x86-ENU.exe /x:C:\Installer_SQL2008R2_SP1\SP

  4. Copy only the files (not the folders), except the Microsoft.SQL.Chainer.PackageData.dll, in C:\InstallerSQL2008R2SP1\SP\ to C:\InstallerSQL2008R2SP1\ to update the original files:

    robocopy C:\Installer_SQL2008R2_SP1\SP\x86 C:\Installer_SQL2008R2_SP1\x86 /XF Microsoft.SQL.Chainer.PackageData.dll

    robocopy C:\Installer_SQL2008R2_SP1\SP\x64 C:\Installer_SQL2008R2_SP1\x64 /XF Microsoft.SQL.Chainer.PackageData.dll

    robocopy C:\Installer_SQL2008R2_SP1\SP\ia64 C:\Installer_SQL2008R2_SP1\ia64 /XF Microsoft.SQL.Chainer.PackageData.dll

  5. In each of the following locations, locate the DefaultSetup.INI file:

    C:\Installer_SQL2008R2_SP1\x86

    C:\Installer_SQL2008R2_SP1\x64

    C:\Installer_SQL2008R2_SP1\ia64

  6. Add the following line to the end of the file in each location:

    PCUSOURCE=".\SP"

  7. Run setup.exe in C:\SQLServer2008R2_SP1 and the installation should succeed.