FirebirdSQL; ERP, muhasebe, POS ve sektörel yazılımların altında sessizce çalışan, hafif ama güçlü bir açık kaynak veritabanı sunucusudur. Çoğu zaman yıllarca hiçbir bakım gerektirmeden çalıştığı için yöneticiler bir tek konuda hata yapar: yedeklemeyi yanlış yöntemle almak. Çalışan bir Firebird veritabanının dosyasını WinZip ile sıkıştırmak ya da basitçe kopyalamak, çoğu durumda geri yüklenemeyen, bozuk bir yedek üretir.
Bu rehberde Firebird 5.0 veritabanlarını doğru, güvenilir ve otomatik olarak nasıl yedekleyeceğinizi adım adım anlatıyoruz: gbak ile mantıksal yedekleme, nbackup ile fiziksel ve artımlı yedekleme, geri yükleme senaryoları ve yedeklemeyi zamanlanmış göreve bağlama dahil.
Firebird Yedeklemede Neden Özel Araçlar Gerekir?
Firebird, kullanıcılar bağlıyken bile veritabanı dosyasına sürekli yazma yapar. Veritabanı çalışırken dosyayı doğrudan kopyaladığınızda, kopyalama anında dosyanın yarısı eski yarısı yeni veriyi içerebilir. Sonuç tutarsız bir dosyadır ve geri yüklemeye çalıştığınızda büyük olasılıkla başarısız olur.
Doğru yaklaşım üç seçenekten biridir:
gbak veya nbackup gibi Firebird’in nasıl çalıştığını bilen resmi araçları kullanmak,
ALTER DATABASE BEGIN BACKUP ile veritabanını yedekleme moduna almak (sonrasında END BACKUP ile çıkmak),
ya da gfix ile veritabanını tamamen kapatıp ondan sonra dosyayı kopyalamak.
Kritik uyarı: Çalışan bir Firebird veritabanını WinZip, copy, xcopy, tar gibi araçlarla kopyalamayın. Bu yöntemlerle alınan bir “yedeğin” sağlıklı geri yüklenme şansı çok düşüktür. Tek istisna, nbackup’ın kilit (lock) modudur — bunu aşağıda anlatıyoruz.
Firebird, yedekleme için iki resmi komut satırı aracıyla birlikte gelir ve her ikisi de kurulum klasörünün bin alt dizinindedir:
Özellik
gbak
nbackup
Yedek türü
Mantıksal (veri + şema)
Fiziksel (veritabanı sayfaları)
Artımlı yedek
Yok
Var (seviye 0/1/2…)
Platformlar arası taşınabilir
Evet
Hayır
Hız
Orta
Çok yüksek
Çok dosyalı DB desteği
Var
Önerilmez
Tipik kullanım
Günlük tam yedek, taşıma, ODS yükseltme
Büyük DB’lerde sık artımlı yedek
Kısacası: rutin tam yedek ve taşıma için gbak, büyük veritabanlarında sık ve hızlı artımlı yedek için nbackup. İkisini birlikte kullanmak da yaygın bir stratejidir.
Firebird_5_0 klasöründe gbak.exe ve nbackup.exe
Hazırlık: Araçların Konumu ve Komut Satırına Erişim
Firebird 5.0 araçları varsayılan olarak şu konumlardadır:
Windows:C:\Program Files\Firebird\Firebird_5_0\ altındaki gbak.exe ve nbackup.exe
Linux:/opt/firebird/bin/ altında
Komutları her yerden çalıştırabilmek için bu klasörü sistem PATH değişkenine eklemeniz işinizi kolaylaştırır. Eklemediyseniz komutları tam yol vererek de çalıştırabilirsiniz.
Aşağıdaki tüm örneklerde varsayılan yönetici kullanıcısı SYSDBA ve örnek parola masterkey kullanılmıştır. Kendi ortamınızda gerçek parolanızı kullanın ve parolayı script içinde açıkça yazmaktan kaçının (bunun güvenli yolunu otomatikleştirme bölümünde anlatıyoruz).
gbak -z çıktısı — Firebird 5.0 sürüm bilgisi
gbak ile Mantıksal Yedekleme
gbak, veritabanının veri ve şemasını içeren mantıksal bir yedek dosyası (genellikle .fbk uzantılı) oluşturur. Bu dosya veritabanının birebir kopyası değildir; içinde veriler ve nesne tanımları bulunur. Önemli avantajı platformlar arası taşınabilir olmasıdır: Windows’ta aldığınız bir gbak yedeğini Linux’ta geri yükleyebilirsiniz.
gbak verbose çıktısı — yazılan bayt sayısı görünür
Yedekleme bittiğinde belirttiğiniz klasörde .fbk dosyanız oluşur. Bu dosyanın boyutu, veritabanından genellikle daha küçüktür çünkü indeksler yedekte yalnızca tanım olarak tutulur, geri yüklemede yeniden oluşturulur.
Dosya gezgininde oluşan firma.fbk yedek dosyası
gbak ile Geri Yükleme (Restore)
gbak yedeği geri yüklerken veritabanını sıfırdan yeniden inşa eder: tüm tabloları, verileri ve indeksleri yeniden oluşturur. Bu yüzden geri yükleme aynı zamanda veritabanını “tazeleyen” bir işlemdir.
Burada -c (create) yeni bir veritabanı oluşturur. Mevcut bir dosyanın üzerine yazmak isterseniz -r (replace) kullanılır — ancak bu, hedefteki veritabanını sileceği için çok dikkatli olunması gereken bir komuttur:
İpucu: Geri yüklemeyi her zaman önce yeni bir dosyaya (-c) yapıp test etmek, üretimdeki veritabanını yanlışlıkla ezmemenin en güvenli yoludur.
gbak ile geri yükleme — kayıtlar ve indeksler yeniden oluşturuluyor
Firebird 5.0 ile Gelen Paralel Yedekleme (Yenilik)
Firebird 5.0’ın en dikkat çeken yeniliklerinden biri gbak için paralel yedekleme ve geri yükleme desteğidir. Yeni -par (veya -parallel) anahtarı, işlemde kaç paralel iş parçacığının kullanılacağını belirler. Büyük veritabanlarında bu, özellikle geri yükleme süresini donanıma bağlı olarak birkaç kat kısaltabilir.
Önemli: Paralellik, Firebird 5.0’da varsayılan olarak kapalıdır. Kullanabilmek için firebird.conf dosyasındaki MaxParallelWorkers parametresini artırmanız gerekir. Bu değeri işlemcinizin fiziksel/mantıksal çekirdek sayısına eşit ayarlamak önerilir. -par belirtmezseniz işlem tek iş parçacığıyla çalışır.
gbak -b -par 4 ile paralel yedekleme ve oluşan firma.fbk
nbackup ile Fiziksel ve Artımlı Yedekleme
nbackup, veritabanının fiziksel sayfalarını yedekler ve veriye tek tek bakmadığı için çok hızlıdır. Asıl gücü ise artımlı (incremental) yedek yeteneğidir: yalnızca son yedekten bu yana değişen sayfaları kaydeder.
Seviye mantığı şöyle çalışır:
Seviye 0: Tam yedek (full backup). Tüm veritabanını kapsar.
Seviye 1: Son seviye 0 yedeğinden bu yana değişen her şeyi içerir.
Seviye 2: Son seviye 1 yedeğinden bu yana değişenleri içerir, ve böyle devam eder.
Bu yapı sayesinde günde bir kez tam yedek, saat başı artımlı yedek gibi bir strateji kurabilir; depolama alanından ve süreden ciddi tasarruf edebilirsiniz.
firma_tam.nbk ile firma_artimli1.nbk boyut farkı
nbackup ile Geri Yükleme
nbackup geri yüklemesinde, tam yedek ve sonraki tüm artımlı yedekleri sırasıyla belirtirsiniz. Zincir sırası kritiktir: yedekleri önce seviye 0 (tam yedek), ardından seviye 1, seviye 2 şeklinde küçükten büyüğe doğru sıralayın. Her artımlı yedek bir öncekinin üzerine bindiği için bu sıra bozulursa geri yükleme başarısız olur.
Bu komut, tam yedeği ve artımlı yedeği birleştirerek firma_geri.fdb adında çalışır bir veritabanı oluşturur.
Dikkat: nbackup yedekleri taşınabilir değildir. Bir nbackup yedeğini farklı bir platformda veya farklı bir Firebird sunucu sürümünde geri yükleyemezsiniz. Sunucular ve sürümler arası taşıma için gbak kullanın.
nbackup -R ile zincir geri yükleme ve oluşan firma_geri.fdb
nbackup Kilit Modu: Sanal Makine ve Dosya Kopyalama Senaryosu
Kendi yedekleme araçlarınızı kullanmak veya bir sanal makine anlık görüntüsü (snapshot) almak istiyorsanız, nbackup’ın kilit (lock) modu devreye girer. Bu mod hiçbir şey yedeklemez; sadece veritabanı dosyasını güvenle kopyalayabileceğiniz duruma getirir.
Bu özellikle sanal makine yedeklerinde kritiktir: bir VM yedeğinden önce veritabanını kilitlemezseniz, yedeğin içindeki dosya tutarsız olabilir.
Tipik akış üç adımdır:
1. Veritabanını kilitle (orijinal dosyaya yazma geçici bir delta dosyasına yönlendirilir): nbackup -L C:\veri\firma.fdb -user SYSDBA -password masterkey
2. Dosyayı kendi aracınızla kopyalayın — basit bir kopyalama, VM snapshot’ı veya sıkıştırma. Veritabanı bu sırada çalışmaya devam eder.
3. Veritabanının kilidini aç (delta dosyasındaki değişiklikler ana dosyaya birleştirilir): nbackup -N C:\veri\firma.fdb -user SYSDBA -password masterkey
Kopyaladığınız dosyayı ileride kullanmanız gerekirse, o kopya hâlâ “kilitli” durumdadır. Onu kullanılabilir hale getirmek için kopya üzerinde fixup çalıştırın:
nbackup -F C:\veri\firma_kopya.fdb
-F yalnızca dosya seviyesinde çalışır ve Firebird sunucusu çalışmasa bile yürütülebilir.
nbackup kilit modu — -L ve -N komutları
Yedeklemeyi Otomatikleştirme
Manuel yedekleme er ya da geç unutulur. Doğru yaklaşım, yedeklemeyi bir script’e bağlayıp zamanlanmış göreve eklemektir.
Windows için örnek .bat script’i:
@echo off
set TARIH=%date:~-4%-%date:~3,2%-%date:~0,2%
set GBAK="C:\Program Files\Firebird\Firebird_5_0\gbak.exe"
%GBAK% -b -user SYSDBA -password masterkey C:\veri\firma.fdb C:\yedek\firma_%TARIH%.fbk -Y C:\yedek\log_%TARIH%.txt
Bu script’i Görev Zamanlayıcı (Task Scheduler) ile her gece belirli bir saatte çalıştırabilirsiniz. Dosya adına tarih eklendiği için her yedek ayrı dosya olarak saklanır.
Linux için örnek cron girdisi (her gece 02:00’de):
Güvenlik notu: Parolayı script içinde açık yazmak yerine, Linux’ta ISC_USER ve ISC_PASSWORD ortam değişkenlerini ya da Firebird’in güvenli kimlik bilgisi yöntemlerini kullanmak daha güvenlidir. Yedek dosyalarının saklandığı klasörün erişim izinlerini de mutlaka kısıtlayın.
Görev Zamanlayıcı’da Firebird yedekleme görevi başarıyla tamamlandı
Hangi Yöntemi Seçerseniz Seçin: 5 Altın Kural
3-2-1 kuralını uygulayın: Verinizin 3 kopyası, 2 farklı depolama türünde, 1 kopya da tesis dışında (offsite) bulunsun.
Yedeğinizi test edin: Hiç geri yüklenmemiş bir yedek, aslında bir varsayımdan ibarettir. Geri yükleme prosedürünüzü düzenli olarak deneyin.
Otomatikleştirin: Elle alınan yedekler insan hatası yüzünden er ya da geç aksar. Zamanlanmış görevlerle otomatikleştirin.
Şifreleyin ve erişimi kısıtlayın: Yedekler, üretim verinizin tam kopyasıdır; aynı güvenlik titizliğiyle korunmalıdır.
Yükü dağıtın: Mümkünse yedeği ana (üretim) sunucudan değil, bir replika/yedek sunucudan alın; böylece üretim performansını etkilemezsiniz.
Narbulut ile Firebird Yedeklerinizi Güvenle Bulutta Saklayın
Yukarıdaki yöntemler Firebird veritabanınızın sağlıklı bir yedeğini oluşturmanızı sağlar. Peki bu yedekler nerede, ne kadar güvenli ve ne kadar erişilebilir saklanıyor? İşte 3-2-1-1-0 kuralının “tesis dışı” ve “değiştirilemez kopya” adımları tam olarak burada devreye girer.
Narbulut Backup, Firebird gibi kritik iş veritabanlarınızın yedeklerini Türkiye’deki veri merkezlerinde, KVKK uyumlu şekilde otomatik olarak buluta taşır. Zamanlanmış yedekleme, değiştirilemez (immutable) depolama ve sürüm geçmişi sayesinde:
Yerel diskinizde tuttuğunuz .fbk ve .nbk yedeklerini otomatik olarak tesis dışına kopyalar,
Fidye yazılımı saldırılarına karşı dokunulamayan yedek kopyaları sağlar,
Yedeklerinizin başarıyla alındığını izler ve raporlar,
Felaket anında verilerinize hızlıca erişmenizi sağlar.
Firebird Yedeklerinizi Buluta Taşıyın
Firebird yedekleme stratejinizi tamamlayan bulut katmanını oluşturmak ve verilerinizi her senaryoda güvende tutmak için Narbulut çözümlerini inceleyebilirsiniz.