39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
# 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 `True` gesetzt, 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):
|
|
```bash
|
|
python3 delete_old_records.py --mode dry-run
|
|
```
|
|
|
|
### Scharfe Ausführung:
|
|
```bash
|
|
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*
|