When a SQL Server Service Pack or Cumulative Update fails by “evaporating”
This is frustrating. A SQL Server instance needs a patch, usually a Service Pack or a Cumulative Update. I execute the download (recent example “SQLServer2014SP1-KB3058865-x64-ENU.exe”), and it proceeds to extract into a temporary folder such as C:\d84c453b14ca474fe7f65b45a4add3b4\, from which it will run “setup.exe”. And then NOTHING!
If your eyes are quick (as well as your RDP connection) you MAY see a brief flash of a black CMD window. Or maybe you won’t. And then NOTHING!
A good place to look for SQL install failures would be the “C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\” folder. You expect to find 1) Summary.txt, with today’s date and a time just a couple minutes old, and 2) a folder name coded with the same date and time, such as “20151201_073643”. But NOTHING!
Ask another DBA – oh, wait – your employer can only afford one DBA! So, Google (or BING, “Because It’s Not Google”). But what do you search for? There is no install log, or error code for which to search. I used “ ‘SQL SERVER’ ‘SERVICE PACK’ ‘CUMULATIVE UPDATE’ FAILURE “, plowed through a hundred or so results, and finally discovered a few useful clues. I have assembled the following suggestions for my own use. Your mileage may vary.
- Just for fun, extract the download into a temporary folder, such as C:\DBA\SP1\. Use the syntax “SQLServer2014SP1-KB3058865-x64-ENU.exe –X” and you’ll be prompted for a destination folder.
- Search C:\Users\ for SqlSetup.log. This file is created before anything is started in the aforementioned ...\Setup Bootstrap\Log\ folder. In this brief file I found several lines referring to “.Net security policy”, which in my case pointed to the fix.
- Find folders under both C:\Windows\Microsoft.Net\Framework\ and \Framework64\ , with names like \v2.0.50727\ and \v4.30319\, which relate to different .Net versions that are installed on the machine.
- Open a CMD Prompt, but choose Run AS Administrator. Navigate to the various folders discovered in the step above, and execute “caspol.exe –machine –reset”. I was prompted to continue by typing “YES”.
- After each attempt at “caspol.exe”, attempt the failed install by running setup.exe from your extract folder.
- If/when it works, congratulations! If not, try to do the caspol.exe step with another .Net version.
- If all of them still fail, another step that I read about (but have not tried) is to search C:\Users for both “Security.config” and “Security.cch”, and delete all of them that are found.
These steps helped me. I’m not an expert, and I have no appreciation for what implications these steps may lead to. Sorry, I WILL NOT be responsible if you have failed to fully backup your system before you attempt these fixes!