如何准备 Service Manager 2012 以便升级到 SP1
发布日期: 2016年7月
适用于: System Center 2012 SP1 - Service Manager,System Center 2012 R2 Service Manager
本主题描述如何准备 System Center 2012 – Service Manager 环境以进行升级。 为此,请执行用于升级数据仓库管理服务器的以下过程:
列出正在运行的数据仓库作业。
禁用数据仓库作业计划。
确认数据仓库作业已停止运行。
数据仓库作业完成后,开始升级数据仓库管理服务器。
升级了数据仓库后,在第一台 Service Manager 管理服务器上执行以下过程:
- 等待 10 分钟,然后开始升级 Service Manager 管理服务器。
使用 Windows PowerShell cmdlet 列出数据仓库作业
在承载数据仓库管理服务器的计算机上,依次单击“开始”、“所有程序”、“Microsoft System Center 2012”,然后单击“Service Manager Shell”。
键入以下命令,然后在每个命令后面按 Enter:
Set-ExecutionPolicy –force RemoteSigned
cd 'C:\Program Files\Microsoft System Center 2012\Service Manager' Import-Module .\Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1
Get-SCDWJob
将出现数据仓库作业的列表。 在下一过程“通过使用 Windows PowerShell cmdlet 来禁用数据仓库作业计划”中使用此列表。
通过使用 Windows PowerShell cmdlet 来禁用数据仓库作业计划
键入以下命令,然后在每个命令后面按 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。
确认数据仓库作业已停止运行
在 Service Manager 控制台 中,单击“数据仓库”。
在“数据仓库”窗格中,展开“数据仓库”,然后单击“数据仓库作业”。
在“数据仓库作业”窗格中,观察每个数据仓库作业的“状态”列。 将每个作业的状态列为“未启动”时,继续执行下一步过程来停止 自助服务门户。 如果环境中不存在自助服务门户,你可以启动如何升级到 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