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

Etiket:

veritabanı 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.

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

Ajax İle E-Posta Listesi Yapımı

Sitenizde bir köşeye mail adresinizi giriniz bölümü koyarak, takipçilerine yeni yaptığınız yenilikleri duyurmak istiyorsunuz. Bunun için AJAX 'lı şık birşey güzel olur değil mi? Hem bu sayede sayfanız yenilenmemiş olur. Hemen çalışmamıza başlıyorum. AJAX gönderme işini JQuery kütüphanesini kullanarak yapacağım. İlk başta mail ekleme formunu hazırlıyoruz...

Adım adım açıklıyorum. İlk başta AJAX ile gönderildiğinde değişmesi için "epostalistediv" id li bir div oluşturuyoruz. 

1
2
<div id="epostalistediv">
</div>

/* onurabi yazdı. 28 Temmuz 2009 11:02. 5 yorum var */

mySQL'de Recordcount (Toplam Kayıt) Kullanımı

Microsoft firmasının access ismini verdiği veritabanı uygulaması ile projeler geliştiren arkadaşların bildiği gibi ado bileşeninin recordset sınıfı bize uygulamalarımızda bir çok kolaylık sağlamaktadır. Bunlardan birisi de bir sql sorgusu çalıştırdığımızda recordset nesnesine ulaşarak etkilenmiş kayıt sayısını alabiliyoruz.

Ancak bahsettiğimiz recordset sınıfı mySQL ile çalışırken bir takım problemler çıkarmaktadır. Mesela recordcount metodu çalışmamaktadır. Hal böyle olunca mySQL ile toplam kayıt sayısına erişemeyeceğimiz kanısına kapılmamız normaldir. Ancak durum öyle değil. Kayıt sayısına erişmek için mySQL'in de 1'den fazla yöntemimiz bulunuyor. Şimdi sırasıyla bu yöntemlere bakalım.

/* lazaronnie yazdı. 30 Mart 2009 12:39. 3 yorum var */

ASP'de Veritabanı ile Çalışma

Bu konudaki Tüm Başlıklar
  • ASP'de Veritabanına Bağlanma
  • ASP'de Veritabanındaki Tabloya Bağlanma
  • ASP'de Veritabanından Veri Çekme
  • ASP'de Veritabanından Birden Fazla Veri Çekme
  • ASP'de Veritabanına Kayıt Ekleme
  • ASP'de Veritabanındaki Kaydı Güncelleme

VERİTABANINA BAĞLANALIM

1
2
3
4
5
6
<%
Set bago = Server.CreateObject("ADODB.Connection") 'Bago Bağlantı adı
bago.Open "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" &
Server.MapPath("db.mdb") 'db.mdb veritabanı Yolu
%>
<h3>Veritabanına Bağlanma Başarılı</h3>

/* weziR yazdı. 20 Mart 2009 13:19. 9 yorum var */

Metin Şeklinde URL Kullanma (ASP & IIS 6.0)

Artık hepimizin çok iyi bir şekilde bildiği bir durum var ki o da google'ın insanlar tarafından kolayca alşılabilecek yapıdaki URL (web adresleri) kullanılmamızı arzu ettiğidir. SEO (Search Engine Optimizations - Arama Motoru Optimizasyonu) kurallarından en değerlisi bile diyebiliriz. Bir örnek verecek olursak;

1
http://www.kodaman.org/bu-bir-deneme-adresidir.html

oysa çoğu sitede karşımıza şu görünümdeki adresler çıkar;

1
http://www.kodaman.org/makale.asp?makID=1471

ve doğal olarak google yukarıda verdiğimiz ilk örneği daha çok sevmektedir. Çünkü insanlar sayfamızı daha açmadan, ne ile ilgili olduğunu fark edebilirler.

klasik asp ve iis6.0 kullanarak bu işlemi kendi becerimizle yapacağız. Aksi halde iis'in, asp için URL'lere müdehale edebilmemize olanak verdiği özel bir yöntemi bulunmuyor. Kendi tekniklerimizle bizi baş başa bırakmayı daha uygun görmüşler.

/* lazaronnie yazdı. 19 Mart 2009 13:30. 10 yorum var */

Relational Database (İlişkisel Veritabanı) Yapısı

Relation Database
Relation Database
Bir tablo bir tek varlığa ait bilgileri tutmak için tasarlanır. Örneğin bir kitap tablosunda
sadece kitaplara ait bilgiler vardır. 20 adet kitap bilgisi varsa, bu tabloya 20 adet satır
eklenecek demektir. İlişkisel veri tabanı yaklaşımını ilişkisel yapan asıl unsur verilerin
tablolara parçalanarak saklanmasıdır.
Tabloların kaç adet olacağı ve birbiriyle nasıl ilişkilendirileceğine karar verirken var
olan kuralları kullanarak mantıksal bir plan ile hareket edilir.
Eğer tablolar üzerinde verileri normalize etmezseniz birçok sıkıntı oluşabilir. Bazı
bilgiler birden fazla tekrarlanabilir. Bir bilgiyi güncellemek, veri eklemek ve silmek için
birden fazla yerde bulma, değiştirme ve silme yapmanız gerekebilir. Bu nedenle
normalizasyon kurallarını kullanmalısınız.
Genel kabul gören beş normalizasyon kuralı vardır. Bu kurallar, ilişkisel veri tabanının
tanımı ile birlikte ortaya konmuştur. Veri tabanı normalizasyonu Resim 2.1'e bağlı olarak
anlatılacaktır. Açıklamalar yapılırken bu resme dikkat etmelisiniz.

1. Normalizasyon Kuralı

/* zaffhan yazdı. 03 Şubat 2009 11:59. 5 yorum var */

asp'de mySQL İşlemlerini Otomatiğe Bağlayın!..

Özellikle microsoftun asp ile .net çıkalıdan beri ilgilenmemesi bir çok asp kodlayıcısınının kendisini yalnız hissetmesine sebebiyet vermiştir. (kendimden biliyorum daa:) ) Ama herşeye rağmen biz sadık asp coder'lar olarak bu işin peşini bırakmıyoruz ve php'mi döver asp'mi dalaşını bir tarafa bırakıp tam bir beyefendi gibi msSQL, mySQL ve access (hatta oracle) ile güçlendirme şansını bulduğumuz projelerimize kısıtlı da olsa nesne odaklı programlama teknikleriyle daha da kullanışlı bir imaj verebiliyoruz. Bu makalede mySQL veritabanı üzerinde işlerliği olacak bir kod örneği sunarak üzerinde bir iki kelam etmek istiyorum..

/* lazaronnie yazdı. 20 Aralık 2008 16:37. 11 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