Firebird veri tabanı Yedekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Firebird veri tabanı Yedekleme

Mesaj gönderen ertank »

Herkes farklı bir yöntem önerebilir.

1) Tüm tabloların ikinci kopyalarını aynı database içinde tut.

personel
personel_yedek
banka
banka_yedek
.
.
.

Bundan sonra yedekle dediğinde verileri yedek dosyası içine taşı. İçini temizlemen gerekenleri temizle.

ComboBox içinden ilgili ay-yıl seçildiğinde "..._yedek" tabloları içinden verileri göster.

Firebird database boyutu oldukça büyük olabiliyor. Yıllarca tüm verileri tek bir database içinde tutabilirsin.

2) database kopyasını al. Yedekle dediğinde ikinci database içine aktar. Temizlemek istediğin tabloları temizle. Eski verileri göstermek için ikinci database dosyasını kullan.

3) Temizlemek istediğin tabloların içine ek bir alan ekle. Bu alana "Aktif" gibi bir isim atayabilirsin. Tüm kayıtları aktif olarak işaretlersin. Yedekle dediğinde hepsini pasif yaparsın. Normal çalışırken sadece aktif işaretli kayıtlar ile çalışırsın.

Esasen 3ncü yöntem hepsi içinde en hızlısı olacaktır.

Bu örnekleri çoğaltmak mümkün tabi.

İyi çalışmalar,
Ertan Küçükoğlu
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Firebird veri tabanı Yedekleme

Mesaj gönderen ertank »

Benim demek istediğim backup ile uğraşma. Tek bir database içinde olsun herşey. Eski kayıtlar da yeni kayıtlarda orada olsun. Sen program içinde o anda hangi tür kayıtla işlem yapacaksan o kaydı kullan.

Yukarıda verdiğim örneklerden 3 numaralı örneği ele alalım. Ay devret denildiğinde şöyle bir SQL çalıştırırsın.

update bordro set aktif = 'H'
update banka set aktif = 'H'

Normal program içinde düzeltmeler yaparak bordro tablosuna eriştiğin her yere

aktif='E'

olan kayıtları gösterirsin. İçinde çalıştığın ay için yeni kayıtların hepsine aktif='E' değerini saklarsın. Böylece aktarım yapılana kadar tüm aktif kayıtlar senin ay içinde kullanacağın kayıtlar olur.

İşin özünde herşey eskisi gibi database içinde olur. Sen aktif alannı filtre olarak kullanıp içinde bulunduğun aya ait kayıtları gösterirsin.

Seçim yapıldığında ise bu defa sadece aktif='H' olanları ay ve yıl bazında filtrelersin.

Umarım anlaşılır şekilde açıklayabilmişimdir.
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Firebird veri tabanı Yedekleme

Mesaj gönderen ertank »

Yıllar geçtikçe "index rebuild" ederek devam edebilirsin bence. Zamane bilgisayarları oldukça hızlı artık. Düşündüğünden çok daha performanslı olacağına inanıyorum.

Yedeklenmiş database dosyasını program ile okuman mümkün değil. Bildiğin yedek dosyası oluyor. Database kendisi bir şekilde bozulursa bilgileri geri döndürmek için.

Senin yapmak istediğin iki database kullanarak olabilir. Bir database dosyası hesapları hızlı yapmak için kullandığın, ikinci database dosyası eski bilgileri içeren. Bu durumda eski bilgileri göndereceğin database zaman içinde boyut olarak büyüyecektir.

Dediğim gibi disk alanı olarak sorun olmadıktan sonra bence database büyümesini çok dert etme ve tek bir database ile devam et.

İyi çalışmalar,
Ertan Küçükoğlu
Cevapla