Masters Of SQL

SQL Server ile ilgili bilgiler, hayata dair paylaşımlar ve birazda eğlence tabii...
Deadlock’sız, Blocking’siz, Contention’sız günler diliyoruz :)
Sysadmin sizinle olsun

DBA mi? O ne olaki :) (Bölüm 2)

Yazımızın 1. Bölümüne erişmek için linke tıklayın DBA mi? O ne olaki :) (Bölüm 1)


Sevgili DBA’imiz,

1. İnşaa eder, kurar.(Installing/Upgrading)
Burada bir bina inşaasından bahsetmiyoruz tabi. Verdiğimiz örneklerden devam edecek olursak, bir ev hanımı ilk olarak tariflerini yazacağı defteri nasıl ayarlarsa, gerçek anlamda bir DBA de ilk olarak kullanacağı programı kurar, gerekli ayarları yapar ve gerektiğinde sürüm güncellemelerini yapar. Burada bizim defterimiz, telefon rehberimiz Microsoft SQL Server’dır.

2. Bilgilerinin güvenliğini sağlar. (Security)
Nasıl bir müzisyen bestelerinin çalınmaması için onları en güvendiği yerlerde saklarsa, DBA de sorumlu olduğu bilgilerin güvenliğini sağlamaktan sorumludur. Bestesi çalınması bir müzisyen için ne kadar kötüyse, bilgilerinin başka ellere geçmesi de bir DBA için hoş karşılanamayan bir durumdur. Düşünsenize, bankadaki hesap bilgilerinize başka birinin erişebildiğini… Açıklanması zor bir durum.

3. Yedeklenmesini\ Yedekten dönülebilmesini garanti eder. (Backup/Recovery)
Bir öğretmenin sınav, ödev ve ara sınav sonuçlarını tuttuğu kağıtlarının olduğunu düşünelim. Her sınıf için bir sürü saklamak zorunda olduğu kağıdı mevcut. Peki bir gün, masasındaki sıcak çikolatanın bu kağıtların üzerine döküldüğünü varsayalım. Şimdi ne yapacak? Eğer elinde o kağıtların fotokopisi veya herhangi bir yedeği yoksa, mecburen tüm kağıtları yeniden tek tek hazırlayacak. Bu da belki ekstra birkaç gün daha harcamasına neden olacak. Öğretmen, bu kazanın üstünden bir şekilde gelse de DBA’in işi ne yazık ki bu kadar kolay değil. Burada bilgilerimi kaybettim, yeniden oluşturayım diyemeyiz. Hesabınızdaki paranın birden uçtuğunu ve bunu tutan kaydın da silindiğini düşünsenize. Bu sebeple işini yapan bir DBA, bilgilerinin güvenilir olduğu kadar, bu bilgilerin düzenli olarak yedeğinin alındığını ve kötü bir kaza anında bu yedeklerden dönebileceğini de garanti edebiliyor olmalı. Bu noktada ne kadar sıklıkla yedek alacağı(saatli mi, günlük mü, haftalık mı…) DBA’in çalışma ortamındaki bilgilerin kritikliğine göre değişeceğinden, bunun da analizini yapabiliyor olmalı.

4. Performansı iyileştirmeye çalışır.
Daha iyisi olma ihtimali varken, neden kötü bir sistemle çalışalım ki? Her sene telefonların, laptopların yenileri çıkıyor. Burada görünüşe baktığımız kadar, performansını da nasıl inceliyorsak, bir önceki sürümle yeni çıkan sürüm arasında nasıl farklılıklar olduğunu araştırıyorsak, iyi bir DBA’de kendi kullandığı sistemi daha efektif kullanabilmek adına gerekli çalışmalar yapmalıdır. Yazılan sorguların, ne kadar sürede getirdiğini, kaç okuma, kaç yazma yaptığını, iyileştirme yapılabilme ihtimali olup olmadığını… inceliyor olmalıdır. Birbirinin kitleyen sorgular var mı, makinanın CPU’su, memory’si nasıl? Bakıyor olmalı.

5. Yüksek Erişilebilirlik(High Availability) ve Felaket Senaryosu(Disaster Recovery) Planlarını Yapar.
Bazı mağazalar elektrikler kesintisinde dahi müşteri kaybetmemek adına nasıl jenaratörü devreye sokuyorsa, işini iyi yapan bir DBA de yaşanan en ufak bir aksaklık ya da kesintide, verilerinin ulaşılabilir olmasını sağlamalı(High Availability). Karşılaşabileceği felaketlere karşı kendisini önceden hazırlayarak, gerekli önlemleri alabilmeli. Çalıştığı binada yangın çıkabilir, bulunduğu bölgeyi sel basabilir veya deprem olabilir. Bu tarz durumlarda, verisine ulaşabileceği, bulunduğu bölge dışında, başka bir güvenli alanı önceden düşünerek, hazırlığını yapmalıdır (Disaster Recovery).

6. Kapasiteyi Planlar.
Çiçeklerle ilgilendiniz mi bilmiyorum. Ama mutlaka ilgilenen bir iki kişiye rastlamışsınızdır. Gün be gün çiçeğin büyümesini, suyunun yeterli olup olmadığını, saksına sığıp sığamayacağını inceler, zamanla saksısına sığmazsa değiştirir, yeni çözüm yollarıyla çiçeklerini büyütmeye devam eder. Aslında bir DBA için elindeki veriler de birer çiçeğidir. Verilerinin boyutlarını düzenli takip etmeli, büyümesini izlemelidir. Çiçeğin saksıya sığıp sığamayacağını inceleyen kişi gibi, DBA da verilerini tuttuğu veri tabanlarının büyüyebileceği yeterli disk alanı olup olmadığını kontrol etmelidir. Çiçekler çok büyüdüğünde arşivlenmez ama DBA, gerek gördüğü yerlerde verilerini arşivlemelidir.

7. Bakım Yapar(Maintenance).
Arabanın yağına, suyuna bakar gibi, DBA de belli başlı bakımlarını yapmalıdır. “Verileri tutarlı mı?”, “Kullanabileceği fazla alan var mı?”, “Verilerini düzgün sıralayabiliyor mu?”, “İstatistikleri güncel mi?” tarzında sorularının cevaplarını arıyor ve bunlarla ilgili çalışmalar yapıyor olmalı. SQL’in tuttuğu kayıtları(log), hata kayıtlarını(error log) incelemeli. Kurduğu düzenli çalışan işlerin(job), gerçekten de düzenli çalışıp çalışmadığını, çalışmadıysa nasıl bir hata yüzünden çalışmadığını analiz etmeli.

8. İş Zekası ve Veri Madenciliği konuları hakkında bilgi sahibidir.
DBA, bu konularla doğrudan ilgilenmese de, genel anlamda bilgi sahibi olmalıdır.

9. Toplantılara katılır.
Arkadaşlarımızla düzenleyeceğimiz bir etkinlikte bile, birbirimize sorar, en uygun günü, yeri, saati belirleriz. Bir DBA de yapacağı işlerde, sistemle, networkle, yazılımcısıyla ortak hareket ediyor olmalıdır. Toplantılara katılarak, kendi sisteminin ne kadar etkileneceğini, neye müsaade edip neye edemeyeceğini paylaşmalı, insanlarla iletişim kurmalıdır.

10. Dökümantasyon yapar.
Dökümantasyon, angarya bir iş gibi dursa da, en iyi DBA yaptıklarını yazan DBA’dir. En basitinden, karşısına çıkan bir sorunu, o an bulduğu bir yöntemle çözmüş olsa da, iki gün sonra bu yöntemi hatırlamayabilir. Soruna karşı uyguladığı çözümü not etmiş olsa, iki kere araştırma yükünden kurtulmuş, zamandan tasarruf etmiş olacaktır. Kendisi için ileride oldukça işine yaracak dökümanları yazmaktan kaçmamalıdır. Kaldı ki, kendisi kullanmayacak olsa dahi, bir sonraki junior DBA için yararlı olabilecek tecrübelerini aktarmış olacaktır. Ben ilk kez SQL ile tanıştığımda “Bilgi, seninle ölmesin” demişti işini çok iyi yapan bir DBA’imiz. O kişinin kim olduğunu, nasıl biri olduğunu zamanla siz de öğreneceksiniz

11. Yatar.
İşte en sevdiğim bölüm. Tek geçerim. İster inanın ister inanmayın bir DBA, işini iyi yapan bir DBA yatar. Temeli sağlam atılan, düzgün inşaa edilen bir bina nasıl çok büyük bir sorun çıkarmazsa, mimarisini sağlam kurmuş, adımlarını bir bir yerine getirmiş bir DBA de yatar. Tabi, yazılım da dahil olmak üzere diğer çalışma arkadaşları da aynı özen ve hassasiyeti gösterirse

Toparlayacak olursak, DBA’lik annelik gibidir. Gerektiğinde yemeğini yarıda bırakıp çalışırsın, uykunun en tatlı yerinde kalkıp bakarsın, bilgilerini korursun kollarsın, bir çocuk büyütür gibi gerekli özen ve hassasiyetle seversin SQL’ini. Çocuk büyüdüğünde bir anne nasıl gururla bakarsa evladına, bir DBA de gururla bakar sistemine.

Ne diyelim, kolay gelsin. Emeklerinizin karşılığını almanız dileğiyle…

DBA mi? O ne olaki :) (Bölüm 1)

3 bilinmeyenli bir denklem gibidir DBA olmak. Elinde yeterli bilgi yoksa, nasıl bir yöntemle çözeceğini bilmiyorsan çıkamazsın işin içinden. DBA demişken, siz hiç bir büyüğünüze anlatmaya çalıştınız mı DBA’in ne demek olduğunu?

“Şey Amcacım. DBA… Imm… Database Administrator oluyor.”

Amcanın boş bakan ifadeleri karşısında yardımcı olabilmek adına: “Yani Veri tabanı Yöneticisi.”

Mükemmel açıklamamızla amca mavi ekrana düştü. Veri tabanı, SQL, DBA… gibi kavramlar işin içinde olmayan insanlar için açıklanması zor kavramlar olsa da, esaslı bir DBA ilk olarak kendisini iyi ifade edebiliyor, ne iş yaptığını düzgünce anlatıyor olmalı. Bu sebeple, biri size “DBA mi? O nasıl bir şey öyle evladım?” diye sorduğunda vereceğimiz cevaplar karşımızdakinin anlayabileceği bir düzeyde olmalı. Veri tabanı kavramını bilmeyen birine Veri tabanı yöneticisiyim derseniz bu hiçbir şey ifade etmez.

Peki size sorsak ne cevap verirdiniz? Google’a bakmadan veya herhangi bir yardım almadan “Bir DBA kimdir?” , “Ne iş yapar?” sorusuna cevap verebilir misiniz?

10 kişiye sorduk 3 popüler cevap arıyoruz. DBA kimdir? İtiraf etmeliyim ki araştırma süreci bir hayli eğlenceli geçti.

DBA için Database Application diyen de oldu, veri tabanı işte diyerek geçiştiren de. Tabi bu soruları sorduğum kişilerin BT içinde çalıştıklarını göz önünde bulundurmanızı rica ediyorum.

Genel anlamda hepsiyle de tanımın en basit ve anlaşılır olarak şu olacağına kadar verdik:

DBA(Database Administrator) yani namı diğer Veri tabanı Yöneticisi, verilerin tutulduğu şeylerden(burada tablo denmek istiyor aslında) sorumlu kişi. Herkesin bildiği bir nesne üzerinden ilerlemek istersek, Google’a aklımıza takılan en ufak şeyi dahi yazdığımızda karşımızda bir sonuç bulabilmemizin arkasında aslında aradığımız tüm bilgilerin tutulduğu bir sistem olması ve bu sistemden biz çağırdığımızda getirmesidir. İşte Veri tabanı yöneticisi bu bilgilerin güvenliğinden, bakımından, performanslı işleyişinden… Kısacası her şeyinden sorumlu kişidir.

Her şeyde biraz Matematik vardır derler ya, herkeste de biraz DBA’lik vardır aslında. Bir öğretmen, öğrencilerinin bilgilerini, sınav sonuçlarını muhafaza eder. Bir ev hanımı eşsiz yemek tariflerini, bir müzisyen bestelerini, öğrenci notlarını defterinde saklar. Evlerde, telefonların altında bile telefon rehberlerimiz vardır. Bakkal, dükkanındaki ürünlerin sayısını, çeşidinin kaydını tutar. Bir anneye düğünde kim ne taktı diye sorsanız inanıyoruz ki hiçbir veri kaybı yaşamadan, deadlock a :) :) düşmeden ve sınırsız join le size select sorgusunu dönecektir. Aslında farkında olmadan herkes biraz DBA lik yapar.

Yazımızın devamında detaylara gireceğiz bununla birlikte DBA’nin neler yaptığını ana başlıklarda toparlayalım isterseniz.
   

Sevgili DBA’imiz,
1. İnşaa eder, kurar.(Installing/Upgrading)
2. Bilgilerinin güvenliğini sağlar. (Security)
3. Yedeklenmesini\ Yedekten dönülebilmesini garanti eder. (Backup/Recovery)
4. Performansı iyileştirmeye çalışır.
5. Yüksek Erişilebilirlik(High Availability) ve Felaket Senaryosu(Disaster Recovery) Planlarını Yapar.
6. Kapasiteyi Planlar.
7. Bakım Yapar(Maintenance).
8. İş Zekası ve Veri Madenciliği konuları hakkında bilgi sahibidir.
9. Toplantılara katılır.
10. Dökümantasyon yapar.
11. Yatar. :)

Detaylar bir sonraki makaleye :)

Hoş Geldiniz, diğer bir değişle Hello World :):)

MastersOfSQL ekibi olarak sadece hard Coded SQL konularını paylaşmayacağımızı elimizden geldiğince neşelendirmeye, hayatla iç içe olmaya ve her yerde bulabileceğiniz yazıları birde bizim dilimizle anlatmaya çalışacağız.

Hep bugün yarın bir blog açıp bunları koyalım diye ötelediğimiz ve devamlı kullandığımız yazıları, scriptler ve kodları da burada bulacaksınız. Bazen şunu söylediğinizi duyar gibi olacağız “Yaa arkadaş bu yazıda paylaşılır mı?” :):) evet paylaşılır; çünkü burası Sizin olduğu kadar Bizim de yararlanacağımız bir alan ve aynı konuları bir daha bir daha aramaktan sıkıldık. :)

Güzel günler geçirmeniz dileğiyle, geri kalan herşey için MastersOfSQL yeter :):)