Yedekleme ve Geri Yükleme
Veri Dizin Yapısı
MenzeletDB verileri klasör bazlı olarak saklar:
data/ ← Kök veri dizini (config: data_dir)
├── master/ ← Sistem DB (silinemez, bootstrap'ta oluşur)
│ ├── mnz_users.parquet ← Kullanıcılar (şifreler korunmuş)
│ ├── mnz_roles.parquet ← Roller
│ ├── mnz_user_roles.parquet ← Kullanıcı-rol eşlemeleri
│ ├── mnz_role_permissions.parquet ← Rol-permission eşlemeleri
│ ├── mnz_tables.parquet ← Tablo katalog meta verileri
│ ├── catalog.delta ← Katalog değişiklik günlüğü
│ └── user_mgmt.delta ← Kullanıcı/rol değişiklik günlüğü
│
├── musteri_db/ ← Kullanıcı veritabanı
│ ├── siparisler.parquet ← Base Parquet (LZ4)
│ ├── siparisler.wal ← WAL dosyası
│ ├── siparisler.bloom ← Bloom filter
│ ├── siparisler-flush-0001.parquet ← Flush dosyası #1
│ ├── siparisler-flush-0002.parquet ← Flush dosyası #2
│ └── urunler.parquet
│
└── analitik_db/ ← Başka bir kullanıcı veritabanı
└── satislar.parquet
Yedekleme
Verilerinizi yedeklemek için data/ dizinini kopyalamanız yeterlidir:
# Linux/macOS
cp -r data/ data_backup_$(date +%Y%m%d)/
# Windows PowerShell
Copy-Item -Recurse data\ "data_backup_$(Get-Date -Format 'yyyyMMdd')\"
Tutarlı Yedekleme
En tutarlı yedek için:
- Sunucuyu durdurun (bellekteki tüm veriler diske yazılır)
data/dizinini kopyalayın- Sunucuyu yeniden başlatın
Sunucu çalışırken yapılan yedeğe WAL dosyaları dahil olduğundan, geri yükleme sonrası WAL replay ile tutarlılık sağlanır.
Geri Yükleme
- Sunucuyu durdurun
- Mevcut
data/dizinini yedekle (güvenlik için) data/dizinini yedeğiyle değiştirin- Sunucuyu yeniden başlatın
# Linux/macOS
systemctl stop menzelet-server
mv data/ data_old/
cp -r data_backup_20240115/ data/
systemctl start menzelet-server
# Windows PowerShell
Stop-Service menzelet-server
Rename-Item data data_old
Copy-Item -Recurse data_backup_20240115\ data\
Start-Service menzelet-server
Tek Veritabanı Yedekleme
Sadece belirli bir veritabanını yedeklemek için:
# musteri_db yedeği
cp -r data/musteri_db/ backup_musteri_db/
# Geri yükleme
cp -r backup_musteri_db/ data/musteri_db/
Not:
masterveritabanı güvenlik meta verilerini içerir. Tam geri yükleme içinmaster/klasörü de dahil edilmelidir.
Delta Log Dosyaları
| Dosya | İçerik | Konum |
|---|---|---|
catalog.delta | Tablo oluşturma/silme işlemleri | data/master/ |
user_mgmt.delta | Kullanıcı/rol yönetimi işlemleri | data/master/ |
Bu dosyalar ekleme-tabanlı (append-only) formattadır. Belirli bir eşiği aştığında kompaksiyon tetiklenir ve tüm değişiklikler ana veri dosyasına yazılır.