Moving FDLAUNCHERLOG in SQL Server

ben himself's picture

EDIT: I had two scenarios like this. The one written about here worked. The other one failed. The actual solution came from sql-ution.com. The solution is to fix the registry with the new value. And just in case his website comes offline before mine does, I'll post the code:

Since I'm nostalgic for my wasted efforts, I'll keep my past solution here... you know, the one that half worked.

Recently, I had a situation where SQL Server was installed to an incorrect directory. Everything was on the right drive but was not laid out according to our standard folder structure, so the real issue was that it looked messy. On a multi-instance server, messy is not good. In the long run, a messy folder structure can make maintenance difficult as you struggle to remember which directory went with which instance, so I wanted to fix it.

I got everything moved except one file called FDLAUNCHERLOG. What's going on? For some reason, Microsoft has provided no way to move this one little file and has made it impossible to clean up the old folder structure.

I found a solution.

Getting the databases moved is relatively straight forward and those instructions are all over the web so I'll spare you that detail. System databases are more challenging, but again, that's been written about.

What I did not find was how to move the FDLAUNCHERLOG file. Honestly, I don't care that much about it except for the fact that SQL cannot live without it. It happens that you cannot remove the original installation folder because this one file is locked by the operating system while SQL Server is running. If you try stopping SQL Server and removing the file then SQL Server cannot start back up. It really really wants that file to be there. Really. So, you'd think the information found in that file would be earth-shattering, right? It must be truly vital to SQL Server if there is no way to move it and SQL refuses to start without it. Well, here's a look at what you'll find there:

2018-05-15 12:31:05.323    MSSQLFDLauncher$SQLInstance service successfully started.
2018-05-15 12:31:06.323    MSSQLFDLauncher$SQLInstance service received control message.
2018-05-15 12:31:06.433    MSSQLFDLauncher$SQLInstance service successfully launched FDHost.exe Process(process id = 11864).
2018-05-15 16:15:04.917    MSSQLFDLauncher$SQLInstance service stopped.

It's a log. Why, SQL, why?

On Microsoft's MSDN webpage called "How can we move FT data folder and FDLaunchErrorLog", they tell us that there is no way to move the file. You must reinstall SQL Server. There are some suggestions that say to hack the registry, which sometimes is a fine idea, but other websites that suggest it also include comments saying that it is a failure. And if some people say it fails, and Microsoft doesn't support you hacking your registry in this case, you should think twice before doing it to your production server.

So, all of that to say this: MSDN was only half right. It's a little misleading to say that you have to completely reinstall SQL Server. The FDLAUNCHERLOG file is a log file that belongs only to the Full-Text Filter Daemon, so all you need to do is uninstall the Full-Text Filter Daemon and reinstall it. Provided you have already changed your default system directory, it will automatically install itself to that location. If you haven't changed the default directory then look at your SQL Services, right click the instance name, select properties, pick the Startup Parameters tab, and alter those parameters. Be careful. Copy the original values before you change them. If those are wrong, you won't start SQL until they are fixed.

EDIT: Even on the instance where the FDLAUNCHERLOG file moved, the default Data location was not changed. Why it installed into the correct directory while the default data directory was wrong is beyond me. On the other server with the same issue it did not act that way. In the end, I had to edit the registry using the above method to get this corrected.

So, step one is to uninstall it by going into your Control Panel and selecting Programs and Features. Find the Microsoft SQL Server entry and right-click it and choose "uninstall" (don't worry, you aren't uninstalling all of SQL Server). When given the option, choose to uninstall only the Full-Text Search.

After that completes, begin a new installation and choose the option "New installation or add features to an existing installation". From there, only add the Full-Text Search feature.

Once that completes, you're all set.

 

Tags: 

Categories: