Jean-Sébastien DUCHENE Blog's

Actualité, Tips, Articles sur l'ensemble des Technologies Microsoft (Microsoft Intune, ConfigMgr, Microsoft Defender, Microsoft Purview, Microsoft Azure, Windows...)

J’ai rencontré un problème lors de l’installation d’un Management Server supplémentaire sur une infrastructure System Center 2012 Operations Manager existante. Lorsque j’ai lancé l’installeur du produit et sélectionné le rôle Management Server, tout s’est bien passé jusqu’à l’écran demandant de sélectionner la base de données opérationnelle. Cette étape est utilisée par l’installeur pour notamment récupérer le nom du Management Group. Le nom du serveur SQL et l’instance renseignés, la liste déroulante du nom de base de données est resté éternellement vide…

J’ai commencé par vérifier les éléments suivants :

  • Le pare-feu du serveur hébergeant la base de données opérationnelle permet la connexion à la base de données
  • Le compte que j’utilise pour l’installation, a les droits de connexion à l’instance et sa base de données

J’ai donc vérifié le log d’installation OpsMgrSetupWizard.log dans %LocalAppData%\SCOM\Logs et voici ce que j’y trouve :

[09:58:37]:          Debug: :SqlConnectionReady returned True.

[09:58:37]:          Info:      :Info:Using DB command timeout = 1800 seconds.

[09:58:37]:          Error:    :DB operations failed with SQL error 2812: Could not find stored procedure 'p_MOMManagementGroupInfoSelect'.

: Threw Exception.Type: System.Data.SqlClient.SqlException, Exception Error Code: 0x80131904, Exception.Message: Could not find stored procedure 'p_MOMManagementGroupInfoSelect'.

[09:58:37]:          Error:    :StackTrace:   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()

   at System.Data.SqlClient.SqlDataReader.get_MetaData()

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteReader()

   at Microsoft.EnterpriseManagement.OperationsManager.Setup.Common.SqlRetryHandler.ExecuteReader(SqlCommand sqlCommand, SqlDataReader& result)

   at Microsoft.EnterpriseManagement.OperationsManager.Setup.Common.SqlRetryHandler.Execute[T](SqlCommand sqlCommand, SqlRetryPolicy retryPolicy, GenericExecute`1 genericExecute)

[09:58:37]:          Error:    :Error:Failed to execute sql command. Setup will not retry on this Sql error. Command: p_MOMManagementGroupInfoSelect

[09:58:37]:          Error:    :Sql error: 16. Error: 2812. Error Message: Could not find stored procedure 'p_MOMManagementGroupInfoSelect'.

[09:58:37]:          Info:      :Info:isOMDatabase:  Read did not return true.  The MG is missing. This is not OM DB

Sur une partie du log, on trouve une erreur comme quoi le setup n’arrive pas à trouver la procédure stockée. Pourtant, elle est bien là et le compte que j’utilise à le droit d’exécution dessus.

 

L’information plus intéressante se situe à ce niveau lorsque le produit liste les bases qui peuvent être affichées dans l’assistant :

[09:58:37]:          Info:      :Info:DatabaseConfigurationPage: DB connection attempt completed.

[09:58:37]:          Info:      :Info:DatabaseConfigurationPage: DB connection attempt completed.

[09:58:37]:          Debug: :MSSQL$SCOM on server <SERVERNAME> is in a running state

[09:58:37]:          Debug: :Connection was not open.  We will try to open it.

[09:58:37]:          Debug: :SqlConnectionReady returned True.

[09:58:37]:          Info:      :Info:Using DB command timeout = 1800 seconds.

[09:58:37]:          Info:      :Not all of the information on the screen is valid, so we're not going to check disk space.

[09:58:37]:          Info:      :Not all of the information on the screen is valid, so we're not going to check disk space.

[09:58:37]:          Debug: :MSSQL$SCOM on server <SERVERNAME> is in a running state

[09:58:37]:          Debug: :Connection was not open.  We will try to open it.

[09:58:37]:          Debug: :SqlConnectionReady returned True.

[09:58:37]:          Info:      :Info:Using DB command timeout = 1800 seconds.

[09:58:37]:          Info:      :Checking freespace for: <SERVERNAME> ,G:\

[09:58:37]:          Always:                :CheckUsedSpaceOnDrive: Checking for space on drive <SERVERNAME> ,G:\

[09:58:37]:          Info:      :CheckUsedSpaceOnDrive succeeded.

[09:58:37]:          Info:      :Checking freespace for: <SERVERNAME> ,H:\

[09:58:37]:          Always:                :CheckUsedSpaceOnDrive: Checking for space on drive <SERVERNAME> ,H:\

[09:58:37]:          Info:      :CheckUsedSpaceOnDrive succeeded.

[09:58:38]:          Info:      :Adding to DBList

[09:58:38]:          Info:      :Key: ReportServer$SCOMPOC  OMDB: False Empty:False

[09:58:38]:          Info:      :Key: ReportServer$SCOMPOCTempDB  OMDB: False Empty:False

[09:58:38]:          Info:      :Key: OperationsManager  OMDB: False Empty:False

[09:58:38]:          Info:      :Key: OperationsManagerDW  OMDB: False Empty:False

[09:58:38]:          Info:      :Checking freespace for: <SERVERNAME> ,G:\

 

Aucune base n’est affichable.
Après avoir cherché plusieurs minutes, je me suis rendu compte que l’agent SCOM avait été installé sur ce serveur puis désinstallé. Ce dernier était donc toujours présent dans l’infrastructure et n’avait pas été supprimé au niveau du Management Group. C’est en réalité ce qui bloquait la vérification. Il semble que l’assistant ne prenne pas en compte ce scénario. Il vous suffit donc de supprimer l’agent depuis la console dans la partie Agent Managed :


La base devient ensuite visible dans l'assistant :

Facebook Like