Sayfalar

16 Haziran 2012 Cumartesi

Veritabanı yenilir mi, içilir mi yoksa yönetilir mi?

Merhaba Arkadaşlar!

Hepimizin hedefinde eminim ki; "sağlıklı, önü açık, sağlam bir gelecek"  vadeden bir kariyer mevcut. Kişisel olarak ben ve benim gibi düşünen pek çok bilişim meraklısı da Veritabanı konusunda uzmanlaşmak istiyor. Peki buraya kadar sorun yok. Elbette hedefler yüksek olacak ve "Okunmuzu Güneşe atarak hiç olmazsa yıldızları tutturacağız"... Ama bunu yapmadan önce veritabanı yöneticisi ne yapar, ne eder, neleri yönetir sorularına cevap verebiliyor olmamız gerektiğini düşünüyorum. Bunları bilmeden;
"büyüyünce ne olacaksın oğlum?"
"ben büyüyünce veritabanı yöneteceeeem!" tarzı bir diyalogdan öteye gidemeyiz sanırım.
Sözün kısası burada biraz DBA'in neler yaptığına lafı getirmek istiyorum. İsterseniz başlayalım;



Biliyorsunuz daha önceki yazılarda bir veritabanı nedir sorusuna cevap bulmuştuk. Bunun yanı sıra veritabanı türleri ve ilişkisel veritabanı meselesine değindik. Fakat kurumsal açıdan bir veritabanı üzerinde ne tür işlemlere ihtiyaç duyulur yaklaşımıyla olaya bakmadık.Biraz da burayı irdeleyelim.

Kurulum:
En temel görevlerden, hatta bu listeye giremeyecek kadar temel görevlerden bir tanesi. Yani "bunu bilmiyorum" demenin imkansız olacağı bir görev. Açıklamanın anlamsız olduğunu düşünüyorum ama veritabanı yönetim sisteminin, sisteme kurulumunu içeriyor.


Bakım ve Yönetim:
Listeye ikinci sıradan giriş yaptığına göre ikinci temel görevdir diyebiliriz. Çünkü zaten göreviniz veritabanı yönetmek olunca, yönetim sizin bir diğer adınız olmalı :) Bu yönetimin altında neler ver derseniz listenin ilerleyen kısımlarında bunları göreceksiniz... (Performans, Sürüm, Felaket, Olay, Güvenlik, Konfigürasyon, Süreklilik, Kapasite...)

Veritabanı Yetkilerinin Yönetimi(Güvenlik ve Erişim):
Yani güvenlik ve erişim yönetimi... Bilindiği gibi veritabanları şirketlerin saklı, gizli kutularıdır ve meraklı gözlerden ve erişimlerden korunması gereken ilk kavramlardandır. Nasıl ki olası bir yangında kurtarılacakların öncelik sırası varsa şirketler için de veritabanı ziyadesiyle önemlidir. Yani yalnızca "yetkili" kullanıcıların erişimine açık olmalıdır. Yeni bu kullanıcılar her imtiyaza sahip olamaz. Her kullanıcı ihtiyaç duyduğu derecede hakka sahiptir ve sadece bu verilere erişmelidir. Ama kimi durumda veritabanının tüm kullanıcılara açık olması istenebilir. Böyle olsa bile her kullanıcı veri ekleme/silme/güncelleme hakkına sahip olduğu anda ortamın ne denli bir cümbüşle renkleneceğini siz düşünün! Yani veritabanı yetkilerinin yönetimi veritabanı yönetiminin bir parçasıdır. Veritabanının yetkisiz, kötü amaçlı girişimlerden korunması elzemdir.

Planlama ve Geliştirme:
Aslında en başta bu görev sayılabilirdi. Çünkü veritabanını kurmadan önce onu planlamak gerekir. Tabi bu planlama her aşamada devreye gireceği için bu görevi burada listelemenin çok da problem olmayacağını düşünüyorum. Yani yönetimin her adımı aslında bir planlı süreç içermektedir. Örneğin bir felaket yönetimi süreci planlanarak gerçekleşir. Zaten her olası durum için DBA'ın bir planı olmak durumundadır.


Performans İzleme ve Geliştirme:
Şirketler için hız çok önemlidir. Mesela banka hesabınıza yatırılan parayı 1 saat sonra çekebildiğiniz bir sistem sanırım size çok da hızlı gelmeyecektir. İşte bu durumların önlenmesi için veritabanının sorgulara, işlemlere hızlı cevap veriyor olması gerekir. Performans kavramının hızdan daha ötesi olduğunu eminim tahmin ediyorsunuz. Dosyalara erişim gibi durumların da optimum şekilde olması gerekir. Bu gibi durumlarda farklı algortimalarla çalışmak ve bunları geliştirmek gerekebilir. Bu yüzden performansı izlemek ve sorun oluştacak durumları kontrol altında tutmak DBA'ın işidir.


Proje Yazılım ve Destek:
Yine temel bir görev olan bu görevde veritabanının yazılımsal kısmıyla ve yazılımcılarıyla yakın ilişkinin yönetimi amaçlanır. Yazılımcılarla, veritabanı yöneticisinin gerekli yazılımlar ve bunların ihtiyaçları, veritabanına erişimi gibi konularda ortak çalışma gerekebilir.

Kullanılabilirlik Yönetimi:
Veritabanını sürekli olarak kullanılabilir tutmayı amaçlar. Oluşabilecek günlük risklerin en aza indirgenmesi amaçlanır. Örneğin ani bir elektrik kesintisi bu durumda yönetilmesi gereken bir kavramdır. Felaket yönetimi ise önceden planlanan ve tatbikatı yapılan yönetimleri içerir.


Değişiklik Yönetimi:
Bazı durumlarda servis kalitesini artırmak için yazılım üzerinde değişikliğe gidilebilir. Amaç bu değişikliği en hızlı ve en etkili biçimde sağlamak olmalıdır. Tabii değişiklik bittiği anda yönetim bitemez. Zira bir önceki durumla değişimden sonraki durum karşılaştırılarak performans farkı izlenerek sonucun istenen bir sonuç olup olmadığına bakılır. Her zaman en optimum yol keşfedilmelidir.

Problem Yönetimi:
Veritabanında oluşan bir sorunun kaynağını bularak kökten çözmeyi ve bu durumun tekrar meydana gelmemesini sağlamayı amaçlar. Bu aslında bir süreç yönetimini gerektirir. Geçici problem çözümü için bir mekanizma kurulur ve durumun üzerindeki etkisi takip edilerek kalıcı çözümlere gidilir. Her tespit edilen hata veritabanına eklenerek tekrar karşılaşılması durumunda buraya başvurulup durumdan en kısa zamanda kurtulma sağlanır.


Felaket Yönetimi(Süreklilik Yönetimi):
Adından anlaşılacağı üzere bu görev "Felaket!" değerlidir. Zira kurumsal şirketler "Aman deprem oldu, kullanıcılar da bir gün para çekmeyiversin!" ya da "Bir gün de kaynana gelinini aramasın!" diyemez.Veritabanları sonuçta fiziksel ortamlarda korunur ve bu fiziksel ortamların bozulmaması, yok olmaması için hiç bir neden yoktur. Her ne kadar sunucular yüksek güvenlikli ortamlarda muhafaza edilseler de buna karşı koyabilecek bir o kadar tehlike/felaket mevcut. Yani sözün kısası bir şirkete bir veritabanı yetmiyor! Felaket anında devreye girebilecek bir yedek veritabanı ve bu tarz bir durumda onun aktif edilebiliyor olması gerekir.
Bu işin adı aslında Olağanüstü Durum Merkezi olarak geçer. ODM Kurulumu ve yönetimi bir DBA'ın bilmemesinin açıklamasının olmayacağı bir durum.

Olay Yönetimi:
Var olan bir problemi algılayıp hızla çözebilmek bir DBA'ın becerilerinden biridir. Event Management kavramını eminim bir yerlerde duymuşuzdur.Mesela ağ ortamında meydana gelen servis ve ya depolama kaybını izlemek olay yönetiminin konusudur. Çünkü bu anlık olayın takibi diğer işlerden farklı bir durumdur. Bu durum o kadar ciddiye alınıyor ki ayrıca bu iş için programlar da paketlere ekleniyor.
DBA'in veritabanını sürekli monitör etmesi ve oluşan beklenmeyen durumları kontrol altında tutması gerekir. Yani izleme ve kontrol temel görevlerdendir.
Olay yönetimi anlık çıkan ve veritabanında sıkıntı yaratan durumları tespit ederek yok etmek ve önceki haline döndürmek şeklinde tanımlanır. Böylelikle şirketin zarar görme durumunu en aza indirmek amaçlanır. Sonuçta hizmet kalitesi ve kullanılabilirlik artar. Problem yönetiminden farkı anlık çözümler bulunarak sistemi en kısa zamanda devreye sokarak müşteriyi mağdur etmemektir.

Konfigürasyon Yönetimi:
Altyapı bileşenleri ve bunlar arasındaki ilişkileri belirlemenin bir diğer adı konfigürasyon yönetimidir. Aslında diğer yönetimler ortam hazırlama görevini yürütür. (Olay, problem, sürüm, değişim)

Sürüm Yönetimi:
Bilindiği üzere neredeyse her yıl veritabanı yönetim sistemleri ve bunlara ait diğer yardımcı programlar güncellenmekte. Eğer alanında iddialı bir şirketle çalışılıyorsa bunun takibi yapılmak durumundadır. Yani yazılım ve donanım için güncel sürümler ve yamalar takip edilerek bunlara ait yükleme işlemleri izlenmelidir.

Kapasite Yönetimi:
Yine önemli bir konu daha... Günümüzde veritabanlarında manyetik disk depolama tekniği ile yer sıkıntısı çok fazla gündeme gelmez. Zira çoğu zaman verilerin artıp, çoğalarak saklanamayacak büyüklüklere gelebileceği düşünülmez... Oysa ki günümüzde neredeyse 10 yıl öncesine ait verilere ulaşılmak istenmesi çok normal. Bu yüzden bir DBA veritabanının sürekli büyüyeceğini varsayarak işe başlar. Yine veritabanının bilgisayar kaynaklarını (CPU, Bellek...) fazlasıyla meşgul edeceğini göz önünde bulundurur. Bilgisayar kaynaklarına olan ihtiyaç ve sürekli çoğalan veri miktarının kontrol altında tutulması gerektiğini eminim anlamışsınızdır.

Burada konu bitiyor ama sonuç kısmını yazmak gelenekten öte konuyu toparlamak açısından önemli. :) Çünkü bazen bir dolu kaynaktan yararlanarak yazdığım için acaba konu bütünlüğünü bozdum mu endişesine düşüyorum. Neyse... Bir hayalperest (benim gibi :) ) eğer aklına veritabanı yönetmeyi koyduysa kesinlikle veritabanının başına geçtiğinde CREATE DATABASE ya da CREATE TABLE yağacağını düşünmemeli. Eğer böyle düşünüyorsa zaten baştan kaybetmiş demektir. Elbette bunları da yapacak ama bunlar işin en kolay ve görünün tarafı olacaktır. Tüüüm burada saydığımız işler için adaylar aranmaktadır.. Yani sanırım her yerde olduğu gibi burada da BÜYÜK düşünmek göze çarpıyor.

Ve yine şunu da belirteyim ki bu listede olması gerekip de olmayan DBA görevleri mevcuttur. Yani buna eminim. Fakat burada yazılanlar sizin de farkedeceğiniz üzere olmazsa olmaz görevlerdir!

Her zaman BÜYÜK düşünmeniz dileğiyle; iyi çalışmalar :)

Hiç yorum yok:

Yorum Gönder