
Der System Center Operations Manager-Upgradeprozess umfasst ein Skript zum Bereinigen von ETL-Tabellen und zum Optimieren der Datenbank. Sie können die ETL-Tabelle für die SCOM-Datenbank jedoch manuell bereinigen, um ein schnelleres Upgrade zu ermöglichen, indem Sie ein von Microsoft bereitgestelltes Skript verwenden.
Für Szenarien mit einer beträchtlichen Anzahl von Zeilen (über 100.000), die eine Bereinigung erfordern, empfiehlt Microsoft, das Skript auszuführen, bevor das SCOM-Upgrade gestartet wird. Dieser Ansatz trägt dazu bei, den Upgrade-Prozess zu beschleunigen und das Risiko von Zeitüberschreitungen bei der Einrichtung zu minimieren.
Eine ETL-Tabelle im Kontext einer SQL-Datenbank bezieht sich auf eine Tabelle, die im ETL-Prozess (Extract, Transform, Load) verwendet wird. ETL-Tabellen spielen eine wichtige Rolle bei der Datenverwaltung und -analyse und ermöglichen es Unternehmen, Daten aus mehreren Quellen effizient zu konsolidieren und zu analysieren.
Installieren und aktualisieren Sie Anwendungen von Drittanbietern mit Patch My PC
Skript zum Bereinigen der ETL-Tabelle
Mit dem folgenden Skript von Microsoft können Sie die ETL-Tabellen bereinigen und die Datenbank optimieren. Dieses Skript bereinigt die ETL-Einträge in einer Schleife mit jeweils 100.000 Zeilen, um ein Überfüllen des Transaktionsprotokolls zu vermeiden. Sie müssen das Skript auf dem SQL Server ausführen, der die Operations Manager-Datenbank mit einer großen Anzahl zu bereinigender ETL-Zeilen hostet.
-- (c) Copyright 2004-2006 Microsoft Corporation, All Rights Reserved
---- Proprietary and confidential to Microsoft Corporation
--
-- File:
CatchupETLGrooming.sql
---- Contents: A bug in the ETL grooming code could have left the user
---- Database with a large amount of ETL rows to groom. This script will groom
---- The ETL entries in a loop 100K rows at a time to avoid filling up the
---- Transaction log
----------------------------------------------------------------------------------DECLARE @RowCount int = 1;DECLARE @BatchSize int = 100000;DECLARE @SubscriptionWatermark bigint = 0;
DECLARE @LastErr int;-- Delete rows from the EntityTransactionLog. We delete the rows with TransactionLogId that aren't being-- used anymore by the EntityChangeLog table and by the RelatedEntityChangeLog table.SELECT @SubscriptionWatermark = dbo.fn_GetEntityChangeLogGroomingWatermark();WHILE(@RowCount > 0)BEGIN
DELETE TOP(@BatchSize) ETL
FROM EntityTransactionLog ETL
WHERE NOT EXISTS (SELECT 1 FROM EntityChangeLog ECL WHERE ECL.EntityTransactionLogId = ETL.EntityTransactionLogId) AND NOT EXISTS (SELECT 1 FROM RelatedEntityChangeLog RECL
WHERE RECL.EntityTransactionLogId = ETL.EntityTransactionLogId)
AND ETL.EntityTransactionLogId < @SubscriptionWatermark;
SELECT @LastErr = @@ERROR, @RowCount = @@ROWCOUNT;
END
Kopieren
-- (c) Copyright 2004-2006 Microsoft Corporation, All Rights Reserved --
-- Proprietary and confidential to Microsoft Corporation--
-- File:CatchupETLGrooming.sql--
-- Contents: A bug in the ETL grooming code could have left the user--
-- Database with a large amount of ETL rows to groom. This script will groom--
-- The ETL entries in a loop 100K rows at a time to avoid filling up the--
-- Transaction log--
--------------------------------------------------------------------------------
DECLARE
@RowCount
int
=
1
;
DECLARE
@BatchSize
int
=
100000
;
DECLARE
@SubscriptionWatermark
bigint
=
0
;
DECLARE
@LastErr
int
;
-- Delete rows from the EntityTransactionLog. We delete the rows with TransactionLogId that aren't being
-- used anymore by the EntityChangeLog table and by the RelatedEntityChangeLog table.
SELECT
@SubscriptionWatermark
=
dbo
.
fn\_GetEntityChangeLogGroomingWatermark
();
WHILE
(@RowCount
>
0
)
BEGIN
DELETE
TOP
(@BatchSize) ETL
FROM
EntityTransactionLog ETL
WHERE
NOT
EXISTS
(
SELECT
1
FROM
EntityChangeLog ECL
WHERE
ECL
.
EntityTransactionLogId
=
ETL
.
EntityTransactionLogId
)
AND
NOT
EXISTS
(
SELECT
1
FROM
RelatedEntityChangeLog RECL
WHERE
RECL
.
EntityTransactionLogId
=
ETL
.
EntityTransactionLogId
)
AND
ETL
.
EntityTransactionLogId
<
@SubscriptionWatermark;
SELECT
@LastErr
=
@@ERROR, @RowCount
=
@@ROWCOUNT;
END
Ausführen eines ETL-Grooming-Skripts in der SCOM-Datenbank
Melden Sie sich bei SQL Server an, der die Operations Manager-Datenbank hostet. Starten Sie das SQL Server Management Studio und stellen Sie eine Verbindung zur Datenbank-Engine her. Erweitern Sie Datenbanken, klicken Sie mit der rechten Maustaste auf die OperationsManager-Datenbank und wählen Sie Neue Abfrage aus.
Bereinigen Sie die ETL-Tabelle für die SCOM-Datenbank
Fügen Sie das ETL-Bereinigungsskript ein und klicken Sie auf Ausführen. Die Bereinigung von ETL kann mehrere Stunden dauern. Sobald die Skriptausführung abgeschlossen ist, schließen Sie SSMS und fahren Sie mit dem Operations Manager-Upgrade fort.
Bereinigen Sie die ETL-Tabelle für die SCOM-Datenbank
Weiter lesen
Brauchen Sie noch Hilfe?
Wenn Sie weitere Hilfe zu dem oben genannten Artikel benötigen oder andere technische Probleme besprechen möchten, sehen Sie sich einige dieser Optionen an.
Foren
Telegramm
Kontaktieren Sie mich
*️⃣ Quelllink:
SCOM-Upgrade,
ETL-Tabelle im Kontext einer SQL-Datenbank,
,
Foren
, Telegramm ,
Kontaktieren Sie mich
,