Error code 0×85640004 when installing SQL Server 2012 RC0 on a Non Domain Computer

Today I ran the install of SQL Server 2012 RC2 on another computer this time a Windows 7 computer not on a domain.  Here is the trouble that I ran into.

 

SQL Server Setup has encountered the following error:
There was a failure to validate setting CTLRUSERS in validaton function ValidateUsers.
Error code 0×85640004.

 

Then immediately after, I get this message:

 

 

So I tried the install again and turned off Integration Services, Distributed Replay Controller and the Distributed Replay Client in an attempt to get around this problem.

I didn’t spend the time to debug this and determine if it was Integration Services, Distributed Replay Controller or the Distributed Replay Client, but based on the bug write up at Microsoft titled Adding current user to Distributed Replay crashes setup, it looks like it is related to the distributed replay components.

 

2 Workarounds

My workaround if you want to just install and try out SQL Server 2012 Denali, then don’t install Distributed Replay unless you are on a domain.

There is another suggested workaround from Microsoft which is to install distributed replay with no user assigned, then add the user after the install.

SQL Server 2012 Compatibility Levels

With SQL Server 2012, there is a new compatibility level being introduced.

SQL Server can run in a number of different compatibility levels, but how do you change it and how do you set it. These compatibility levels reflect the version of SQL server.

  • 60 = SQL Server 6.0
  • 65 = SQL Server 6.5
  • 70 = SQL Server 7.0
  • 80 = SQL Server 2000
  • 90 = SQL Server 2005
  • 100 = SQL Server 2008 and SQL Server 2008 R2
  • 110 = SQL Server 2012

Changing the compatibility level in SQL Server may change the behavior of specific of the functionality of the SQL Server. Be sure to research and test before changing compatibility levels.

Here is a sample script that will show you the current compatibility level, set it to 110, then show you the current level after it has been set.

Sp_dbcmptlevel dbname
GO
Sp_dbcmptlevel dbname, 110
GO
Sp_dbcmptlevel dbname
GO

This TSQL will generate the following output:

The current compatibility level is 100.
The current compatibility level is 110.

Once you change the compatibility level, you will want to be sure that your system still runs correctly.

SQL Server 2012 Licensing Changes

One of the big changes in the SQL Server 2012 licensing plans is the price is now per core, and not per processor.  So previously if you had a SQL Server with 2 procesors (8 cores each), you paid for 2 licenses.  Now in that same scenario, you would pay for 16 core licenses.  Although the core prices are less than processors pricing, if you have a 4 core processor or more, it will end up costing you more.  Also, there is a minimum of 4 cores for any SQL Server license.

For many configurations this is going to dramatically increase the licensing costs of SQL Server.

More info on SQL 2012.

 

Code Name Denali

SQL 2012 is being referred to by Microsoft as code name Denali.

Going Freelance

Leaving the corporate world and going freelance.