[UPDATE] The exact same can happen in BE 12.5. See this post for details. [/UPDATE]
I just tried to update our Backup Exec 11d SP1 to Backup Exec 12 and although all pre-checks were okay and the installation did also not issue any errors, BE didn't started. Checked the event log and the following events were logged:
The Backup Exec Server Service detected a schema version mismatch.
The Backup Exec Server Service did not start. An internal error (-536813108) occurred in object 1.
Oh, I really love database schema errors. According to the Symantec support website (http://seer.entsupport.symantec.com/docs/283038.htm or http://seer.entsupport.symantec.com/docs/254014.htm) you need to recreate the entire database if this error happens which means you need to recreate everything from scratch! Thanks for nothing buddy!
Using SQL Server Profiler, I was able to figure out what the problem was. BE uses two tables as schema reference: ControlInfo and Version (you can simply install the SQL Server Mngmt Studio Express and issue an "select * from …" for these two). In this case here, ControlInfo was okay (Version 12.0) but Version still had 11 for some components listed.
There are two SQL files you need to execute against your BEDB database (using Mngmt Studio Express for example):
C:\Program Files\Symantec\Backup Exec\dbupgrade11.5.sql
If there are any errors, you may ignore them.
Once this has run, run
C:\Program Files\Symantec\Backup Exec\dbupgrade11.5-viewandsp.sql
Inside this file, there might be a problem with the following command:
-- sync with bedb.sql version, 1.644
ALTER TABLE [dbo].[Alert] ADD
CONSTRAINT [DF_Alert_UMI] DEFAULT (N'') FOR [UMI]
Simply delete these lines and the script will run to the end. Restarting Backup Exec should now show that BE does no longer throw an schema mismatch error.