pillinetwork hesabınızla giriş yapın.

Etiket:

bozukluk hakkındaki yazılar:

Firebird Veritabanı Bozulma Nedenleri/Öneriler

Merhaba,

Bilgisayarda saklanan her bilgi gibi Firebird veritabanınızda bozulabilir, yanlışlıkla silinebilir. Windows veya diğer işletim sistemleri, aman bu veritabanı buna özel muamele yapayım demez. Bu makalemizde yapılan yanlışları tespit ederek, veritabanını bozulmaktan nasıl kurtarabilirsiniz, onu anlatmaya çalışacağım.

Veritabanı Neden Bozulur?

  • En büyük nedenlerden biri veritabanı yüklü makinanın, genelde elektrik kesintisi nedeniyle kontrolsüz kapanmasıdır. Pek çok iÅŸletim sisteminde bu tarz durumlarda kullanımda olan dosyalar bozulabilmektedir. Çözüm olarak 50-100 $ arası ufak bir kesintisiz güç kaynağı almak ÅŸarttır.
  • Bilgisayar parçalarında meydana gelen kusur veya bozukluklar. Harddiskin bozulması, Raid kartlarının bozulması vs. Bu tarz durumlarda bilgi kurtarma biraz sıkıntılı olabilir. Beki de bozulan harddiskteki veritabanına hiç ulaÅŸamayabilirsiniz. Çözüm düzenli olarak yedek almak ve kurtarılması mümkün olmayan durumlarda bu yedekten geri dönüş yapmaktır.
  • Firebird Server (servis) çalışırken veritabanı dosyasını kopyalamak veya baÅŸka yöntemlerle eriÅŸmek. Programlarınızın kapalı olması, veritabanı dosyası üzerinde iÅŸlem yapılmadığı manasına gelmez. Firebird server sweep gibi iÅŸlemleri yapıyor olabilir. Çözüm : Veritabanı dosyalarını (*.fdb, *.gdb) servis çalışırken kopyalamayın ve kullanıcıları bu konuda uyarın. Kopyalamanız gerekiyorsa, denetim masasından firebird servisini kapatıp kopyalayın. Yedeklerinizi dosya kopyalama yöntemiyle deÄŸil, backup ile alın.
  • Kararsız sürümleri kullanmak. Interbase 5.1 ile 5.5 arasındaki sürümler ciddi sıkıntısı olan sürümlerdir. Çözüm : Bunları client veya server olarak kullanmayın. Mümkün derece server ve client sürümlerini aynı tutun.
  • Veritabanın bulunduÄŸu diskte boÅŸ yer kalmaması. Bu da sıkıntı çıkarabilmektedir.
  • Forced Writes parametresinin kapalı olması. Bu parametre on (açık) veya off (kapalı) olabilmektedir. Bu parametre diske yazımları kontrol eder. Açık ise, bilgi commit edildiÄŸi anda diske yazılır, off ise hemen yazılmaz. Bilgi kaybını önlemek için, bu parametrenin mutlaka on(açık) olması gerekmektedir.
  • Veritabanı dosyası boyutunun (veritabanının deÄŸil!) aşılması. İşletim sistemine de baÄŸlı olarak Firebird için bu 32 TB'dır. Ancak Interbase 6 beta sürümleri ve öncesi için bu limit 4 GB'dır. Bu limit aşılınca yeni veritabanı dosyası eklenmelidir.
  • Veritabanı dizaynında yapılan hatalar. Bu genelde "not null" ile ilgili olmaktadır. not null bir alan eklediÄŸiniz zaman, sorunsuzca eklenir. Ancak backup alıp, restore yapmak istediÄŸiniz zaman tabloya daha önce eklenmiÅŸ kayıtlarda bu alanın deÄŸeri null olduÄŸu için restore iÅŸlemini gerçekleÅŸtiremezsiniz. Interbase 7.1 ve üstü sürümlerde bunun için önlem alınmış. Ancak Firebird'deki durum nedir bilemiyorum. Çözüm : Dizaynınızı standartlara uygun ÅŸekilde yapmalı ve mutlaka yedeklerden geri dönüş testini yapmanız lazım.
  • Kullanımda olan veritabanı üzerinde metadata deÄŸiÅŸiklikleri yapmak, özellikle table ekleyip/silmek. Bu da veritabanına zarar verebilmektedir. Çözüm olarak tüm kullanıcıların baÄŸlantılarını kestikten sonra, hatta servisi durdurup dosyanın ismini deÄŸiÅŸtirerek hiçbir kullanıcının baÄŸlanmayacağı ÅŸekle getirip metadata deÄŸiÅŸikliklerini yapmalısınız.
  • Kaza ile veritabanı dosyasını silme. Maalesef bu aÅŸamada yapacak çokta birÅŸey yok, undelete programlarını deneyebilirsiniz. Düzenli bir ÅŸekilde yedek almak lazım. Yedek iÅŸlemini de otomatik bir düzeneÄŸe baÄŸlamak iyi olacaktır. Çünki insan insiyatifine bırakılınca birkaç hafta sonra aksamaya baÅŸlayacak ve bir süre sonra da tamamen bırakılacaktır. FIBS gibi bir yedek yöneticisi program kullanmak uygun olacaktır.
  • Eski sürüm kullanmak. Nadirde olsa bazı durumlarda bug'lardan kaynaklanan bozulmalar olabilmektedir. Bunlar tespit edildiÄŸi anda düzeltilmektedir. Yeni sürüm çıktığı zaman, testlerinizi yapıp yeni sürüme geçmeniz iyi olacaktır. ÖrneÄŸin 2.0.3 kullanırken 2.0.4 çıktı ise, testlerini yapıp 2.0.4'e geçmelisiniz.
  • Veritabanı uzantılarınızı .fdb yapın. Çünki interbase'in kullandığı .gdb uzantısı, windows'un system geri yükleme (system restore) dosyalarıyla çakışmaktadır. Bu da bazen sıkıntı çıkarabilmektedir. İlla ki .gdb uzantısı kullanmak istiyorsanız, sistem geri yüklemesini kapatın.
  • Bazı antivirüsler dosya tarama iÅŸini abartabilmektedir. Normal ÅŸartlarda bir sıkıntı hiç duymadım ama veritabanı dosyalarını (*.fdb) tarama dışında bırakmak iyi olacaktır.

Kolay gelsin.

Spacer
Spacer
/* zynex yazdı. 10 Kasım 2009 08:59. 2 yorum var */

etiket menüsü

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork