c95bc4cd44
- Add mcp.md to: bg, fa, ru, tr, zh, ar - Add index.md to Bulgarian (bg) - Add 24 missing German (de) documentation files Translations for all supported languages now complete.
336 lines
5.0 KiB
Markdown
336 lines
5.0 KiB
Markdown
# Fehlerbehebungsleitfaden
|
|
|
|
## Installationsprobleme
|
|
|
|
### Nim nicht gefunden
|
|
|
|
```
|
|
im: command not found
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Linux/macOS
|
|
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
|
|
|
|
# Zu PATH hinzufügen
|
|
echo 'export PATH=$HOME/.nimble/bin:$PATH' >> ~/.bashrc
|
|
source ~/.bashrc
|
|
```
|
|
|
|
### SSL-Kompilierungsfehler
|
|
|
|
```
|
|
Error: BaraDB requires SSL support. Compile with -d:ssl
|
|
```
|
|
|
|
**Lösung:** Immer mit `-d:ssl` kompilieren:
|
|
|
|
```bash
|
|
nim c -d:ssl -d:release -o:build/baradadb src/baradadb.nim
|
|
```
|
|
|
|
### Fehlende Abhängigkeiten
|
|
|
|
```
|
|
Error: cannot open file: hunos
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
nimble install -d -y
|
|
```
|
|
|
|
## Laufzeitprobleme
|
|
|
|
### Port bereits in Verwendung
|
|
|
|
```
|
|
Error: unhandled exception: Address already in use [OSError]
|
|
```
|
|
|
|
**Lösung 1:** Port ändern:
|
|
|
|
```bash
|
|
BARADB_PORT=5433 ./build/baradadb
|
|
```
|
|
|
|
**Lösung 2:** Bestehenden Prozess beenden:
|
|
|
|
```bash
|
|
lsof -ti:9472 | xargs kill -9
|
|
# oder
|
|
fuser -k 9472/tcp
|
|
```
|
|
|
|
### Permission Denied auf Datenverzeichnis
|
|
|
|
```
|
|
Error: cannot create directory: Permission denied
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
mkdir -p ./data
|
|
chmod 755 ./data
|
|
# Oder anderes Verzeichnis verwenden
|
|
BARADB_DATA_DIR=/tmp/baradb_data ./build/baradadb
|
|
```
|
|
|
|
### Out of Memory
|
|
|
|
```
|
|
Error: out of memory
|
|
```
|
|
|
|
**Lösung:** Speicherverbrauch reduzieren:
|
|
|
|
```bash
|
|
BARADB_MEMTABLE_SIZE_MB=32 \
|
|
BARADB_CACHE_SIZE_MB=128 \
|
|
BARADB_VECTOR_EF_CONSTRUCTION=100 \
|
|
./build/baradadb
|
|
```
|
|
|
|
### Disk Full
|
|
|
|
```
|
|
Error: No space left on device
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Disk-Nutzung prüfen
|
|
df -h
|
|
|
|
# Compaction auslösen um Platz freizugeben
|
|
curl -X POST http://localhost:9470/api/admin/compact
|
|
|
|
# Oder manuell
|
|
./build/baradadb --compact
|
|
```
|
|
|
|
## Abfrageprobleme
|
|
|
|
### Syntaxfehler
|
|
|
|
```
|
|
Error: Syntax error at position 15: unexpected token
|
|
```
|
|
|
|
**Lösung:** Abfragesyntax prüfen:
|
|
|
|
```sql
|
|
-- Korrekt
|
|
SELECT name, age FROM users WHERE age > 18;
|
|
|
|
-- Inkorrekt (fehlendes Komma)
|
|
SELECT name age FROM users WHERE age > 18;
|
|
```
|
|
|
|
### Tabelle nicht gefunden
|
|
|
|
```
|
|
Error: Table 'users' does not exist
|
|
```
|
|
|
|
**Lösung:** Zuerst Schema erstellen:
|
|
|
|
```sql
|
|
CREATE TYPE User {
|
|
name: str,
|
|
age: int32
|
|
};
|
|
```
|
|
|
|
### Typ-Mismatch
|
|
|
|
```
|
|
Error: Cannot compare int32 with str
|
|
```
|
|
|
|
**Lösung:** Korrekte Typen verwenden:
|
|
|
|
```sql
|
|
-- Korrekt
|
|
SELECT * FROM users WHERE age > 18;
|
|
|
|
-- Inkorrekt
|
|
SELECT * FROM users WHERE age > '18';
|
|
```
|
|
|
|
### Timeout
|
|
|
|
```
|
|
Error: Query execution timeout
|
|
```
|
|
|
|
**Lösung:** LIMIT hinzufügen oder optimieren:
|
|
|
|
```sql
|
|
-- Limit hinzufügen
|
|
SELECT * FROM large_table LIMIT 1000;
|
|
|
|
-- Index verwenden
|
|
SELECT * FROM users WHERE id = 123;
|
|
```
|
|
|
|
## Verbindungsprobleme
|
|
|
|
### Connection Refused
|
|
|
|
```
|
|
Connection refused: localhost:9472
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Prüfen ob Server läuft
|
|
ps aux | grep baradadb
|
|
|
|
# Server starten
|
|
./build/baradadb
|
|
|
|
# Firewall prüfen
|
|
sudo ufw status
|
|
sudo ufw allow 9472
|
|
```
|
|
|
|
### Authentifizierung fehlgeschlagen
|
|
|
|
```
|
|
Error: Authentication failed
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Prüfen ob JWT-Geheimnis übereinstimmt
|
|
BARADB_AUTH_ENABLED=true \
|
|
BARADB_JWT_SECRET="correct-secret" \
|
|
./build/baradadb
|
|
```
|
|
|
|
## Performance-Probleme
|
|
|
|
### Langsame Abfragen
|
|
|
|
**Diagnose:**
|
|
|
|
```bash
|
|
# Abfrageplan prüfen
|
|
curl -X POST http://localhost:9470/api/explain \
|
|
-d '{"query": "SELECT * FROM large_table"}'
|
|
```
|
|
|
|
**Lösungen:**
|
|
|
|
1. Indizes hinzufügen:
|
|
```sql
|
|
CREATE INDEX idx_users_name ON users(name);
|
|
```
|
|
|
|
2. LIMIT verwenden:
|
|
```sql
|
|
SELECT * FROM users LIMIT 100;
|
|
```
|
|
|
|
3. Cache erhöhen:
|
|
```bash
|
|
BARADB_CACHE_SIZE_MB=1024 ./build/baradadb
|
|
```
|
|
|
|
### Hohe CPU-Nutzung
|
|
|
|
**Ursachen:**
|
|
- Compaction läuft
|
|
- Große Vektor-Suche ohne HNSW
|
|
- Komplexe Graph-Traversierung
|
|
|
|
**Lösungen:**
|
|
|
|
```bash
|
|
# Compaction-Intervall anpassen
|
|
BARADB_COMPACTION_INTERVAL_MS=300000 ./build/baradadb
|
|
|
|
# Approximative Vektor-Suche verwenden
|
|
SELECT /*+ APPROXIMATE */ * FROM vectors
|
|
ORDER BY cosine_distance(embedding, [...])
|
|
LIMIT 10;
|
|
```
|
|
|
|
## Cluster-Probleme
|
|
|
|
### Raft Split-Brain
|
|
|
|
```
|
|
Warning: Multiple leaders detected
|
|
```
|
|
|
|
**Lösung:** Ungerade Anzahl von Knoten sicherstellen (3, 5, 7). Minority-Partition neu starten.
|
|
|
|
### Replikations-Lag
|
|
|
|
```
|
|
Warning: Replication lag > 10s
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Netzwerk-Latenz prüfen
|
|
ping replica-node
|
|
|
|
# Replikations-Threads erhöhen
|
|
BARADB_REPLICATION_THREADS=4 ./build/baradadb
|
|
|
|
# Auf Async-Replikation umschalten
|
|
BARADB_REPLICATION_MODE=async
|
|
```
|
|
|
|
## Datenkorruption
|
|
|
|
### Prüfsummen-Mismatch
|
|
|
|
```
|
|
Error: SSTable checksum mismatch
|
|
```
|
|
|
|
**Lösung:**
|
|
|
|
```bash
|
|
# Korrupte SSTable entfernen (Daten werden aus WAL wiederhergestellt)
|
|
rm ./data/sstables/corrupted.sst
|
|
|
|
# Neustarten und wiederherstellen
|
|
./build/baradadb --recover
|
|
```
|
|
|
|
## Debug-Modus
|
|
|
|
Debug-Logging für detaillierte Diagnostik aktivieren:
|
|
|
|
```bash
|
|
BARADB_LOG_LEVEL=debug \
|
|
BARADB_LOG_FILE=/tmp/baradb_debug.log \
|
|
./build/baradadb
|
|
```
|
|
|
|
## Hilfe erhalten
|
|
|
|
Wenn das Problem weiterhin besteht:
|
|
|
|
1. Logs prüfen: `tail -f /var/log/baradb/baradb.log`
|
|
2. Metrics prüfen: `curl http://localhost:9470/metrics`
|
|
3. Diagnostik ausführen: `./build/baradadb --diagnose`
|
|
4. Issue öffnen mit:
|
|
- BaraDB Version (`./build/baradadb --version`)
|
|
- OS und Architektur
|
|
- Relevante Log-Auszüge
|
|
- Schritte zur Reproduktion
|