1.8 KiB
SOP: Bereinigung alter Datensätze (delete_old_records.py)
1. Zweck des Skripts
Dieses Python-Skript dient der automatischen Bereinigung (Housekeeping) unserer MySQL-Datenbanken. Es entfernt veraltete Datensätze, die eine definierte Aufbewahrungsfrist (Retention Period) überschritten haben, um die Datenbankgröße zu kontrollieren und die Abfragegeschwindigkeit zu optimieren.
2. Voraussetzungen
- Python Version: Mindestens Python 3.8.
- Bibliotheken:
mysql-connector-python,python-dotenv. - Datenbankzugriff: Das Skript benötigt einen Benutzer mit
DELETE-Berechtigungen auf die entsprechenden Tabellen.
3. Konfiguration
Die Steuerung des Skripts erfolgt über eine .env-Datei oder direkt im Skript-Header:
- DB_HOST: IP des Datenbankservers (z. B.
10.102.1.65). - RETENTION_DAYS: Anzahl der Tage, nach denen Daten gelöscht werden (Standard: X Tage).
- DRY_RUN: Wenn auf
Truegesetzt, zeigt das Skript nur an, was gelöscht würde, ohne die Datenbank tatsächlich zu verändern.
4. Ausführung
Es wird empfohlen, das Skript regelmäßig als Cronjob (Linux) oder Task Scheduler (Windows) auszuführen.
Testlauf (Dry-Run):
python3 delete_old_records.py --mode dry-run
Scharfe Ausführung:
python3 delete_old_records.py --mode execute
5. Monitoring & Logs
Alle Löschvorgänge werden in der Standardausgabe und optional in einer Log-Datei protokolliert. Prüfen Sie regelmäßig die Anzahl der gelöschten Datensätze, um sicherzustellen, dass die Logik korrekt arbeitet.
6. Sicherheitshinweis
Achtung: Gelöschte Daten können nicht ohne Backup wiederhergestellt werden. Führen Sie vor größeren Änderungen an der Aufbewahrungslogik immer ein Datenbank-Backup durch.
Erstellt für die IT-Dokumentation - Projekt: IT Internal Repository