Procédure de préparation à la mise à niveau de Service Manager 2012 vers le Service Pack 1

 

Date de publication : juillet 2016

S’applique à : System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager

Cette rubrique décrit comment préparer votre environnement System Center 2012 - Service Manager pour une mise à niveau. Pour ce faire, exécutez les procédures suivantes pour mettre à niveau le serveur d'administration de l'entrepôt de données :

  1. Répertoriez les travaux d'entreposage de données en cours d'exécution.

  2. Désactivez les planifications de travaux d'entreposage de données.

  3. Vérifiez que les travaux d'entreposage de données ne sont plus en cours d'exécution.

Lorsque les travaux d'entreposage de données sont terminés, démarrez la mise à niveau du serveur d'administration de l'entrepôt de données.

Une fois que l'entrepôt de données a été mis à niveau, exécutez les procédures suivantes sur le premier serveur d'administration Service Manager :

  1. Attendez 10 minutes, puis relancez la mise à niveau du serveur d'administration Service Manager.

Pour répertorier les travaux d'entreposage de données à l'aide d'applet de commandes Windows PowerShell

  1. Sur l'ordinateur hébergeant le serveur d'administration de l'entrepôt de données, cliquez successivement sur Démarrer, Tous les programmes, Microsoft System Center 2012, puis sur Service Manager Shell.

  2. Tapez les commandes suivantes en appuyant sur ENTRÉE après chaque commande.

    Set-ExecutionPolicy –force RemoteSigned  
    
    cd 'C:\Program Files\Microsoft System Center 2012\Service Manager'  
    Import-Module .\Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1  
    
    Get-SCDWJob  
    
  3. Une liste de travaux d'entreposage de données s'affiche. Utilisez cette liste dans la procédure suivante, « Pour désactiver des planifications de travaux d'entreposage de données à l'aide d'applets Windows PowerShell ».

Pour désactiver des planifications de travaux d'entreposage de données à l'aide d'applets Windows PowerShell

  1. Tapez les commandes suivantes en appuyant sur ENTRÉE après chaque commande.

    Disable-SCDWJobSchedule –JobName Extract_<data warehouse management group name>  
    
    Disable-SCDWJobSchedule –JobName Extract_<Service Manager management group name>  
    
    Disable-SCDWJobSchedule –JobName Transform.Common  
    
    Disable-SCDWJobSchedule –JobName Load.Common  
    
    Disable-SCDWJobSchedule –JobName DWMaintenance  
    
    Disable-SCDWJobSchedule –JobName MPSyncJob  
    
    Start-SCDWJob –JobName MPSyncJob  
    

    La dernière commande pour démarrer MPSyncJob permettra l'exécution jusqu'à leur terme des travaux d'extraction, de transformation et de chargement (ETL). Après cela, toutes les planifications ayant été désactivées, les travaux s'arrêteront. Pour fermer la fenêtre Windows PowerShell, tapez exit.

Pour vérifier que les travaux d'entreposage de données ne sont plus en cours d'exécution

  1. Dans la Console de Service Manager, cliquez sur Entrepôt de données.

  2. Dans le volet Entrepôt de données, développez Entrepôt de données, puis cliquez sur Travaux d'entreposage de données.

  3. Dans le volet Travaux d'entreposage de données, observez la colonne État pour chaque travail d'entreposage de données. Lorsque l'état de chaque tâche est répertorié comme Non démarré, passez à la procédure suivante pour arrêter le Portail libre-service. Si aucun Portail libre-service n'existe dans votre environnement, vous pouvez lancer le processus de mise à niveau comme indiqué dans Comment mettre à niveau vers System Center 2012 SP1 - Service Manager.

Pour empêcher les tâches MPSync d'échouer

  • Exécutez le script SQL ci-dessous sur la base de données DWRepository pour obtenir les scripts SQL qui suppriment et ajoutent une contrainte sur la clé principale des tables de faits dans la base de données DWRepository pour corriger le problème

    ;WITH FactName  
    AS (  
           select w.WarehouseEntityName from etl.WarehouseEntity w  
           join etl.WarehouseEntityType t on w.WarehouseEntityTypeId = t.WarehouseEntityTypeId  
           where t.WarehouseEntityTypeName = 'Fact'  
    ),FactList  
    AS (  
        SELECT  PartitionName, p.WarehouseEntityName,  
                RANK() OVER ( PARTITION BY p.WarehouseEntityName ORDER BY PartitionName ASC ) AS RK  
        FROM    etl.TablePartition p  
           join FactName f on p.WarehouseEntityName = f.WarehouseEntityName  
    )  
    , FactPKList  
    AS (  
        SELECT  f.WarehouseEntityName, a.TABLE_NAME, a.COLUMN_NAME, b.CONSTRAINT_NAME, f.RK,  
                CASE WHEN b.CONSTRAINT_NAME = 'PK_' + f.WarehouseEntityName THEN 1 ELSE 0 END AS DefaultConstraints  
        FROM    FactList f  
        JOIN    INFORMATION_SCHEMA.KEY_COLUMN_USAGE a ON f.PartitionName = a.TABLE_NAME  
        JOIN    INFORMATION_SCHEMA.TABLE_CONSTRAINTS b ON a.CONSTRAINT_NAME = b.CONSTRAINT_NAME AND b.CONSTRAINT_TYPE = 'Primary key'  
    )  
    , FactWithoutDefaultConstraints  
    AS (  
        SELECT  a.*  
        FROM    FactPKList a  
        LEFT JOIN FactPKList b ON b.WarehouseEntityName = a.WarehouseEntityName AND b.DefaultConstraints = 1  
        WHERE   b.WarehouseEntityName IS NULL AND a.RK = 1  
    )  
    , FactPKListStr  
    AS (  
        SELECT  DISTINCT f1.WarehouseEntityName, f1.TABLE_NAME, f1.CONSTRAINT_NAME, F.COLUMN_NAME AS PKList  
        FROM    FactWithoutDefaultConstraints f1  
        CROSS APPLY (  
                        SELECT  '[' + COLUMN_NAME + '],'  
                        FROM    FactWithoutDefaultConstraints f2  
                        WHERE   f2.TABLE_NAME = f1.TABLE_NAME  
                        ORDER BY COLUMN_NAME  
                    FOR  
                       XML PATH('')  
                    ) AS F (COLUMN_NAME)  
    )  
    SELECT  'ALTER TABLE [dbo].[' + f.TABLE_NAME + '] DROP CONSTRAINT [' + f.CONSTRAINT_NAME + ']' + CHAR(13) + CHAR(10) +  
            'ALTER TABLE [dbo].[' + f.TABLE_NAME + '] ADD CONSTRAINT [PK_' + f.WarehouseEntityName + '] PRIMARY KEY NONCLUSTERED (' + SUBSTRING(f.PKList, 1, LEN(f.PKList) -1) + ')' + CHAR(13) + CHAR(10)  
    FROM    FactPKListStr f