While playing with my virtual machines, I screwed up something and my SQL service for my named instance was failing to start. Let us learn about a startup error.
When I tried to start via services.msc, here was the error
Windows could not start the SQL Server (SQL2016) service on Local Computer. Error 1067: The process terminated unexpectedly.
As a next step, I tried to start SQL Service via command line using below:
“E:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\sqlservr.exe” -sSQL2016
Note that my instance name is SQL2016 and I have used -sSQL2016 at the end. But this time, here was an error.
Here is the message in text format.
Your SQL Server installation is either corrupt or has been tampered with (Could not open default language SQLEVN70 resource file). Please uninstall then re-run setup to correct this problem
I have written a blog on similar error, but different reason earlier
Whenever there is a missing file or permission issue, I always rely on sysinternal tool called Process Monitor.
Here are the important events.
|HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.SQL2016\Setup\SQLBinRoot
|Data: E:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn
|E:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\Binn\Resources\1033\sqlevn70.rll
|NAME NOT FOUND
NAME NOT FOUND, PATH NOT FOUND are two results which prove that the file in missing.
From the procmon result, it was clear to me that file “sqlevn70” is what is shown in error message also. When I search around this file, it was not there in 1033 folders. In fact, there were many less files when I compared with other VM. I copied and pasted all the file from another machine which was having same patch level.
Once I got all binaries, the SQL Server started fine. Have you ever faced such missing files issue? What was the cause of such issue in your environment?
Reference: Pinal Dave (https://blog.sqlauthority.com)