Anasayfa > SQL Genel Bilgiler ve Eğitim bilgileri > SQL Server System Databases (Sistem Veritabanları)

SQL Server System Databases (Sistem Veritabanları)

SQL Server da bulunan Sistem Database leri ve kısa açıklamaları aşağıdaki gibidir.

Sistem Database Açıklama
master SQL Server ile alakalı server – level bilgileri tutar.
msdb SQL Server Agent tarafından kullanılan bu db; alert ve job lar ile alakalı bilgileri tutar
model Model DB si SQL Server da yeni oluşturulacak DB lerin template idir. Msdb üzerinde database size,collation,recovery model gibi bilgiler değiştirilerek yeni oluşturulan her DB nin bu bilgilerle oluşturulması sağlanabilir.
resource SQL Server sistem obje leri tutan Resource DB si bir read-only DB dir. Sistem obje leri fiziksel olarak resource db de tutulurken mantıksal olarak her DB nin içerisinde gösterilir.
tempdb TempDB temporary obje leri tutar. Her SQL Service in restart ında tekrar create edilir.

Sistem DB lerine Management Studio üzerinden aşağıdaki şekilde erişebilirsiniz.



Gördüğünüz gibi bu listede resource db bulunmamakta. Daha öncede bahsettiğimiz gibi obje ler fiziksel olarak resource db de tutulmaktadır. Bu objeler mantıksal olarak her db nin içerisinde gösterilmektedir.

Sistem DB lerine script ile ulaşmak için aşağıdaki kodu kullanabilirsiniz.

select * from sys.databases where database_id<=4

Sistem database leri SQL Server kurulumu ile beraber gelmektedir. Ve her SQL server instance ında sistem database leri query sonucunda görülen database_id leri almaktadır.

Sistem DB lerine daha detaylı incelemeye devam ediyoruz.

master Database

master Database SQL Server ile alakalı server-level bilgileri tutar. Örneğin loginler, backup device lar, linked server lar ve Endpoint gibi bilgiler master DB de tutulmaktadır. Ayrıca sistem de bulunan user database bilgileri ve bu database lerin file bilgileride master DB de tutulmaktadır. Dolayısıyla eğer master DB erişilemez durumdaysa SQL Server açılamaz durumda olur. Bundan dolayı master DB nin sıklıkla backuplanması önerilmektedir. Bu arada ufak bir bilgi vermek istiyorum. Master DB nin sadece fullbackup ı alınabilir, diff yada tlog backup ı alınamaz.

Master db ile alakalı MSDN de bulunan öneriler aşağıdaki gibidir.

  • Master DB periyodik olarak backup lanmalıdır.
  • Aşağıdaki işlemlerden herhangi biri yapıldığında en kısa sürede master db nin back up ı alınmalıdır.
    • Her hangi bir DB oluşturulduğunda, değiştirildiğinde yada silindiğinde.
    • Server yada DB configuration ları değiştirildiğinde.
    • Logon account larında değişiklik yapıldığında yada yeni bir login eklendiğinde.
  • Master DB içerisinde user object create edilmesi önerilmez.
  • Master DB nin TRUSTWORTHY özelliğinin ON yapılması önerilmez.

msdb Database

SQL Server agent tarafından kullanılan bu db; alert ve job lar ile alakalı bilgileri tutar.

Örneğin job history için aşağıdaki query i msdb db sinde çalıştırabilirsiniz.

select job_name, run_datetime, run_duration

from

(

select job_name, run_datetime,

SUBSTRING(run_duration, 1, 2) + ‘:’ + SUBSTRING(run_duration, 3, 2) + ‘:’ +

SUBSTRING(run_duration, 5, 2) AS run_duration

from

(

select DISTINCT

j.name as job_name,

run_datetime = CONVERT(DATETIME, RTRIM(run_date)) +

(run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4,

run_duration = RIGHT(‘000000’ + CONVERT(varchar(6), run_duration), 6)

from msdb..sysjobhistory h

inner join msdb..sysjobs j

on h.job_id = j.job_id

) t

) t

order by job_name, run_datetime

model Database

Model DB si SQL Server da yeni oluşturulacak DB lerin template idir. Msdb üzerinde database size,collation,recovery model gibi bilgiler değiştirilerek yeni oluşturulan her DB nin bu bilgilerle oluşturulması sağlanabilir. TempDB her SQL Server restart ında create edildiği için, model DB SQL Server instance ında her zaman vardır.

tempDB Database

tempDB, local temporary tables, temporary stored procedures, table variables ve cursor gibi temp objeleri tutan database dir. Ayrıca result set te yapılan sorting(sıralama) işlemi tempDB de yapılmaktadır.

tempDB, SQL Server ın performans lı çalışması için en önemli etkenlerden biridir. En base olarak tempDB nin data ve log file larının diğer database lerden ayrı bir diskte, hatta mümkünse data ve log file larının farklı disklerde tutulması best practise dir. Ayrıca tempDB data file ının core işlemli sayısı kadar file dan oluşması ve her birinin eşit boyutta verilmesi diğer bir best practise adımıdır.

tempDB data file larının küçük değerlerde olmasının şöyle bir dezavantajı vardır. Örneğin çok kayıtlı bir result set execute edilidğinde tempDB data file ı bu sonucu allocate edecek boyutta değil ise auto growth olması gerekmektedir. Bu da performans a negatif etki yapmaktadır.

TempDB Data ve Log file larının taşınması ile ilgili yazıma aşağıdaki url den erişebilirsiniz.
http://www.turgaysahtiyan.com/post/TempDB-Database-File-larc4b1nc4b1-Tasc4b1mak.aspx
Makaleme burada nokta koyarken sistem DB leri hakkında yeteri kadar bilgiye ulaştığınızı umuyorum.

Bir sonraki makalemizde görüşmek üzere.

İyi çalışmalar,

Turgay Sahtiyan

Not: Bu değerli bilgileri bizimle paylaştığı için Turgay Sahtiyan arkadaşımıza teşekkür ederiz.

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: