Blog Archiv

Suchen

Änderungen/Updates und das Data Warehouse

Bewertung:  / 1
SchwachSuper 
Mittwoch, 04. November 2015 Dirk Huser

Erweitert oder verändert man das Datenmodell von SCSM bzw. spielt umfangreichere Erweiterungen oder Update Rollups ein, kann es vorkommen, dass das Data Warehouse aus dem Tritt kommt und hinterher nicht mehr alle Daten verarbeitet werden (nicht assoziierte Management Packs, Sync Job bleibt hängen etc.).

Speziell besteht die Gefahr, wenn Änderungen erfolgen während das Data Warehouse gerade Daten verarbeitet, also die Jobs am laufen sind.

Eine Möglichkeit hier mehr Betriebssicherheit zu erhalten ist, die DW Jobs vor dem Einspielen von Änderungen abzuschalten. Das sollte am besten erfolgen, wenn die Jobs nicht gerade am Laufen sind.

Probates Mittel, das zu erreichen, ist es, nicht die Jobs selbst abzuschalten, sondern nur deren Schedules. Laufende Jobs laufen dann solange weiter, bis sie fertig sind, starten danach aber nicht mehr automatisch neu.

Folgendes Script schaltet alle Schedules ab. Hinweis: Im Script nicht den Management Server angeben, sondern den Data Warehouse Server!

cls

$dwServer = "YourDWServerName"

Import-Module "C:\Program Files\Microsoft System Center 2012 R2\Service Manager\Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1"

$jobs = Get-SCDWJob -ComputerName $dwServer

foreach($job in $jobs) {    
    write-host "Disable schedule for "$job.Name    
    Disable-SCDWJobSchedule -JobName $job.Name -ComputerName $dwServer
}

Write-Host "Starting MPSyncJob to finish all jobs." Start-SCDWJob -JobName "MPSyncJob" -ComputerName $dwServer

Write-Host "Done! Please wait till jobs are finished, they will not start again."

Das Script startet zum Schluss noch einmal den MPSyncJob, um sicherzustellen, dass alle laufenden DW-Tätigkeiten wirklich fertiggestellt wurden.

Damit ergibt sich folgender Ablauf:

  1. DW Job Schedules mit Script deaktivieren
  2. Warten bis alle DW Jobs nicht mehr laufen
  3. Änderungen oder Update Rollups einspielen
  4. DW Job Schedules aktivieren

Das Script, um die Job Schedules wieder zu aktivieren:

cls

$dwServer = "YourDWServerName"

Import-Module "C:\Program Files\Microsoft System Center 2012 R2\Service Manager\Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1"

$jobs = Get-SCDWJob -ComputerName $dwServer

foreach($job in $jobs) {    
   
write-host "Enable schedule for "$job.Name
   
Enable-SCDWJobSchedule -JobName $job.Name -ComputerName $dwServer
}

Write-Host "Done!"