Bereinigung der Datenbank¶
In CDB sammeln sich z.T. Daten an, die u.U. nicht länger benötigt werden. Gute Beispiele sind uralt Einträge in der Lizenzstatistik, abgeschlossene Jobs in den MQ-Anwendungen oder ein überbordendes ERP-Log. In unaufgeräumten Installationen die seit Jahren im Betrieb sind, können 30% bis 60% der DB-Resourcen auf solche obsoleten Objekte entfallen. Ob Optimierungen solcher Art für Ihre konkreten Anwendungsszenarien überhaupt geeignet sind oder ob dabei ggf. noch benötigte Daten gelöscht werden kann nicht allgemein beantwortet werden. Beim Erstellen von Spiegel-System für die Entwicklung ist eine Optimierung i.d.R. zu empfehlen.
Kommando clean-cdb¶
Für die Bereinigung steht das Tool clean-cdb
zur Verfügung:
[CDBTools]$ clean-cdb --help
Mit dem Tool können die unten beschriebenen Anwendungen aufgeräumt werden.
Mit dem Parameter all
werden alle Aktionen nacheinander ausgeführt.
[CDBTools]$ clean-cdb all
--day
(default 30 Tage)Wenn in Installationen die seit Jahren im Betrieb sind zum ersten Mal aufgeräumt wird, können die Transaktionen zum Löschen gewaltig sein. Um das Transaktions LOG nicht zum Bersten zu bringen kann es sinnvoll sein, zuerst die ganz alten Einträge zu löschen und sich sukzessive zum gewünschten Erhalt-Datum nach vorne zu arbeiten.
--truncate
(default False)Wenn die Inhalte der zu bereinigenden DB-Tabellen komplett gelöscht werden können, dann kann das über diese Option erreicht werden. Die DB Tabellen werden mit dem SQL-TRUNCATE Statement geleert, welches kein Transaktions-LOG erstellt. Nach dem TRUNCATE wird noch eine Bereinigung des Object-Dictionary (
cdb_objects
) durchgeführt.Diese Option ist oftmals für Spiegel-Systeme geeignet, die man auf einfache weise schlank halten will (z.B.
clean-cdb all --truncate
).
Bereinigen des Object-Dictionary¶
Bereinigung des Object-Dictionary (cdb_object). Kann nach SQL Update-Skripten,
insbesondere nach einem SQL-TRUNCATE sinnvoll sein. Wird automatisch auf die
bereinigten Relationen angewendet, die mit der Option clean-cdb --truncate
aufgerufen wurden.
Löschen der Lizenz-Statistik (lstatistics)¶
Die Lizenzstatistik wächst kontinuierlich an. In lang laufenden Systemen mit vielen Benutzern ist die Statistik oftmals eine der größten Tabellen. Sofern die Statistik nicht ausgewertet wird, kann sie auch von Zeit zu Zeit mal gelöscht werden.:
[CDBTools]$ clean-cdb lstatistics --help
Bereinigen der MQ-Anwendungen (mq)¶
Es werden alle Message-Queues aufgelistet und Vorschläge zum Reduzieren der MQ-Daten gemacht (inklusieve dem Löschen der Langtexte).:
[CDBTools]$ clean-cdb mq --help
Reduzieren der ERP-Log-Einträge¶
Das Kontext bezogene ERP-Log (Reiter ERP-Log im Info Dialog) wird über die CAD-Konfig-Schalter gesteuert:
„ERP Logging“ bzw. „SAP Logging“:
AN
oderAUS
„SAP Logmode“ bzw. „SAP Logmode:<klasse>“ [Messages|Calls|Params|Results]
In einem produktiven System sollte der „SAP Logmode“ auf Results
stehen, zu
Diagnosezwecken empfiehlt es sich den Wert kurzfristig auf z.B. Results,
Messages
zu setzen (Details bitte dem Handbuch entnehmen). In jedem Fall
sollten solche Diagnose Einstellungen aber nicht dauerhaft im produktiven System
aktiviert sein, da das ERP Log die DB aufbläht. Zum Löschen alter Meldungen
eignet sich das Kommando:
[CDBTools]$ clean-cdb erplog --help
--sap-system SAP_SYSTEM
(default: all)SAP-System dessen Logs bereinigt werden sollen.
--drop-result
(default: False)Die
Results
Meldungen des SAP-GW sollen auch gelöscht werden.
Auch wenn das Logging nur auf Results
steht, kann es passieren, dass das
ERP-Log extrem anwächst, wenn z.B. SAP Abgleichvorgänge über lange Zeiträume
fehlschlagen, diese aber permanent wiederholt werden. Folgendes SQL Statement
kann einen Eindruck darüber vermitteln ob es angebracht ist das ERP-Log mal zu
bereinigen.
SELECT obj_id, COUNT(obj_id) 'Einträge'
FROM erp_log
GROUP BY obj_id
ORDER BY count(obj_id) DESC;
Wenn das Statement viele Objekte mit mehr als 100 Einträgen auflistet, kann sich eine Bereinigung des Logs lohnen.
SELECT COUNT(*) FROM erp_log;
Sollte das letzte Statement mehr als 200.000 Einträge zählen, kann man auch mal überlegen aufzuräumen.
Historie der Kennzahlen in CDB¶
Für die Bereinigung der Relation CDBQC_HISTORY
bieten die CDB-Tools aktuell
keine Lösung. Jedoch sollte der CDB-Admin diese genau im Auge behalten, denn
auch sie wird oftmals nicht benötigt.
DB-Management System¶
Räumt man eine DB nach langer Zeit zum ersten mal auf, so können die gelöschten Datenmengen z.T. sehr groß sein und es kann Sinn machen die Datenbank-Files zu shrinken und auch das Transaction Log zu löschen und/oder nach Bedarf zu konfigurieren (s.a. DB optimieren).