Bereinigen Sie die ETL-Tabelle für die SCOM-Datenbank

/de/images/Clean-up-the-ETL-table-for-SCOM-Database_ftimg.png

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.

/de/images/PatchMyPC-AppCatalog-725x250-1.jpg 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.

/de/images/Clean-up-the-ETL-table-for-SCOM-Database-Snap1-1024x817.png 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.

/de/images/Clean-up-the-ETL-table-for-SCOM-Database-Snap2-1024x568.png 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, /de/images/PatchMyPC-AppCatalog-725x250-1.jpg,

Foren

, Telegramm ,

Kontaktieren Sie mich

,