Atualização para System Center 2012 R2 - Service Manager

Atualizada: Janeiro de 2014

Aplica-se a: System Center 2012 R2 Service Manager, System Center 2012 SP1 - Service Manager

Não é possível iniciar uma atualização para o Service Manager no System Center 2012 R2 se estiverem em execução quaisquer tarefas ou fluxos de trabalho do armazém de dados. Pode utilizar os procedimentos desta secção para interromper as agendas das tarefas do armazém de dados e aguardar que sejam concluídas antes de atualizar o servidor de gestão do armazém de dados. Antes de atualizar o servidor de gestão do Service Manager, pare o Portal Self-Service, se estiver instalado, e aguarde 10 minutos para permitir que quaisquer fluxos de trabalho em execução terminem antes de iniciar a atualização.

WarningAviso
O armazém de dados deixa de funcionar após atualizar o Service Manager no System Center 2012 SP1 para o System Center 2012 R2 devido a uma atualização da entidade facto de Armazém de Dados.

Para impedir a ocorrência deste problema, execute o seguinte script de SQL para cada uma das seguintes bases de dados de armazém de dados: Repositório do DW, DataMart do DW, DataMart do CM e DataMart do OM. Se esta solução for aplicada após a atualização do armazém de dados, retome a implementação do processo de atualização do pacote de gestão que falhou, capturado na lista de Pacotes de Gestão de Armazém de Dados a partir da consola do Service Manager.

IF OBJECT_ID('tempdb..#PKFixQueries') IS NOT NULL
    DROP TABLE #PKFixQueries

;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
    FROM    etl.TablePartition p
    JOIN    FactName f ON p.WarehouseEntityName = f.WarehouseEntityName
)
, FactWithPK
AS (
    SELECT  f.WarehouseEntityName, f.PartitionName, b.CONSTRAINT_NAME, a.COLUMN_NAME
    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'
)
, FactWithDefaultOrNoPK
AS (
    SELECT  DISTINCT f.WarehouseEntityName, f.PartitionName
            , 'PK_' + f.WarehouseEntityName AS DefaultPKConstraint
            , 'PK_' + f.PartitionName AS NewPKConstraint
    FROM    FactList f
    LEFT JOIN    FactWithPK pkf ON pkf.WarehouseEntityName = f.WarehouseEntityName AND pkf.PartitionName = f.PartitionName
    WHERE   pkf.WarehouseEntityName IS NULL OR pkf.CONSTRAINT_NAME = 'PK_' + f.WarehouseEntityName
)
, FactPKList
AS (
    SELECT  DISTINCT f.WarehouseEntityName, f.COLUMN_NAME
    FROM    FactWithPK f
)
, FactPKListStr
AS (
    SELECT  DISTINCT f1.WarehouseEntityName, F.COLUMN_NAME AS PKList
    FROM    FactPKList f1
    CROSS APPLY (
                    SELECT  '[' + COLUMN_NAME + '],'
                    FROM    FactPKList f2
                    WHERE   f2.WarehouseEntityName = f1.WarehouseEntityName
                    ORDER BY COLUMN_NAME
                    FOR XML PATH('')
                ) AS F (COLUMN_NAME)
)
SELECT  f.PartitionName,
        '----------------------------- [' + f.PartitionName + '] -----------------------------' + CHAR(13) +
        'IF OBJECT_ID(''[' + f.DefaultPKConstraint + ']'') IS NOT NULL' + CHAR(13) +
        'BEGIN' + CHAR(13) +
        '  ALTER TABLE [dbo].[' + f.PartitionName + '] DROP CONSTRAINT [' + f.DefaultPKConstraint + ']' + CHAR(13) +
        'END' + CHAR(13) + CHAR(13) +
        'IF OBJECT_ID(''[' + f.NewPKConstraint + ']'') IS NULL' + CHAR(13) +
        'BEGIN' + CHAR(13) +
        '  ALTER TABLE [dbo].[' + f.PartitionName + '] ADD CONSTRAINT [' + f.NewPKConstraint + '] PRIMARY KEY NONCLUSTERED (' + SUBSTRING(pk.PKList, 1, LEN(pk.PKList) -1) + ')' + CHAR(13) +
        'END' AS Query
INTO    #PKFixQueries
FROM    FactWithDefaultOrNoPK f
JOIN    FactPKListStr pk ON pk.WarehouseEntityName = f.WarehouseEntityName

DECLARE @PartitionName NVARCHAR(MAX), @Query NVARCHAR(MAX)
WHILE EXISTS (SELECT 1 FROM #PKFixQueries)
BEGIN
    SELECT  TOP 1
            @PartitionName = PartitionName,
            @Query = Query
    FROM    #PKFixQueries

    PRINT   @Query
    EXEC(@Query)

    DELETE  #PKFixQueries
    WHERE   PartitionName = @PartitionName
END

Conclua os procedimentos da tabela seguinte para atualizar para o Service Manager no System Center 2012 R2.

 

Tarefa Descrição

Como Preparar o Service Manager 2012 SP1 para a Atualização para o R2

Descreve como interromper tarefas do armazém de dados e como parar o Portal Self-Service.

Como Atualizar para o System Center 2012 R2 – Service Manager

Descreve como atualizar o servidor de gestão do armazém de dados, o servidor de gestão do Service Manager e o Portal Self-Service.

-----
Para obter recursos adicionais, consulte Information and Support for System Center 2012 (Informações e Suporte do System Center 2012).

Sugestão: Utilize esta consulta para procurar documentação online na Biblioteca TechNet do System Center 2012. Para obter instruções e exemplos, consulte Search the System Center 2012 Documentation Library (Procurar na Biblioteca de Documentação do System Center 2012).
-----
Mostrar: