First of all, before upgrading your System Center Operations Manager environment please read the documentation. It’s really critical to do things in the right order. Start here: http://technet.microsoft.com/en-us/library/jj899854.aspx
I recently came across a broken System Center 2012 Operations Manager installation. What had happened was that the SP1 upgrade had been started on two management servers at the same time. The service pack installation makes changes to the Operations Manager database, as all of the management server share the same database these changes only need to be made when installing the Service Pack on the first server. The installation tries to determine if it need to run the SQL update or not. In this case the SQL update had not completed.
Data Access Layer rejected retry on SqlError:
Message: Procedure or function p_JobStatusScheduled has too many arguments specified.
Nedless to say, this is really bad. Next I looked at the procedures stored in the OperationsManager database, I found parameters missing from the SP1 procedures found within the installation SQL scripts.
So to complete the OperationsManager database upgrade I did the following.
- Stopped the System Center Operations Manager Services.
- Executed SQL Command:
USE OperationsManager IF EXISTS (SELECT * FROM sysindexes where [name] = 'idx_StateDatabaseTimeModified' AND id = object_id(N'[dbo].[State]')) DROP INDEX [idx_StateDatabaseTimeModified] ON [dbo].[State]
- Ran the build_mom_db.sql script against the OperationsManager database, this is located in the Setup\AMD64 folder within the System Center 2012 SP1 installation media.