如何准备 Service Manager 2012 以便升级到 SP1

 

发布日期: 2016年7月

适用于: System Center 2012 SP1 - Service Manager,System Center 2012 R2 Service Manager

本主题描述如何准备 System Center 2012 – Service Manager 环境以进行升级。 为此,请执行用于升级数据仓库管理服务器的以下过程:

  1. 列出正在运行的数据仓库作业。

  2. 禁用数据仓库作业计划。

  3. 确认数据仓库作业已停止运行。

数据仓库作业完成后,开始升级数据仓库管理服务器。

升级了数据仓库后,在第一台 Service Manager 管理服务器上执行以下过程:

  1. 等待 10 分钟,然后开始升级 Service Manager 管理服务器。

使用 Windows PowerShell cmdlet 列出数据仓库作业

  1. 在承载数据仓库管理服务器的计算机上,依次单击“开始”、“所有程序”、“Microsoft System Center 2012”,然后单击“Service Manager Shell”。

  2. 键入以下命令,然后在每个命令后面按 Enter:

    Set-ExecutionPolicy –force RemoteSigned  
    
    cd 'C:\Program Files\Microsoft System Center 2012\Service Manager'  
    Import-Module .\Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1  
    
    Get-SCDWJob  
    
  3. 将出现数据仓库作业的列表。 在下一过程“通过使用 Windows PowerShell cmdlet 来禁用数据仓库作业计划”中使用此列表。

通过使用 Windows PowerShell cmdlet 来禁用数据仓库作业计划

  1. 键入以下命令,然后在每个命令后面按 Enter:

    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  
    

    用于启动 MPSyncJob 的最后一个命令将使提取、转换和加载 (ETL) 作业能够运行完成。 之后,由于所有计划均已禁用,因此作业将停止。 若要关闭 Windows PowerShell 窗口,请键入 exit

确认数据仓库作业已停止运行

  1. 在 Service Manager 控制台 中,单击“数据仓库”。

  2. 在“数据仓库”窗格中,展开“数据仓库”,然后单击“数据仓库作业”。

  3. 在“数据仓库作业”窗格中,观察每个数据仓库作业的“状态”列。 将每个作业的状态列为“未启动”时,继续执行下一步过程来停止 自助服务门户。 如果环境中不存在自助服务门户,你可以启动如何升级到 System Center 2012 SP1 - Service Manager 中的升级过程。

防止 MPSync 作业失败

  • 在 DWRepository 数据库上运行以下 SQL 脚本以获取 SQL 脚本,这些脚本在 DWRepository 数据库中的事实数据表内部的主键上删除和添加约束,以更正此问题

    ;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