Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. Sunucuyu durdurun (bellekteki tüm veriler diske yazılır)
  2. data/ dizinini kopyalayın
  3. 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

  1. Sunucuyu durdurun
  2. Mevcut data/ dizinini yedekle (güvenlik için)
  3. data/ dizinini yedeğiyle değiştirin
  4. 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: master veritabanı güvenlik meta verilerini içerir. Tam geri yükleme için master/ klasörü de dahil edilmelidir.

Delta Log Dosyaları

DosyaİçerikKonum
catalog.deltaTablo oluşturma/silme işlemleridata/master/
user_mgmt.deltaKullanıcı/rol yönetimi işlemleridata/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.