SQL Server Sistem Veri Tabanları
Merhaba, bu yazımda sizlere SQL Server Sistem Veritabanları’ndan bahsedeceğim. SQL Server kurulumuyla beraber hazır olarak gelen master, model, msdb ve tempdb olmak üzere 4 adet sistem veritabanı karşımıza çıkmaktadır. Bu veri tabanları SQL Server’ın çalışabilmesi için gereklidir.
master: Master veritabanı SQL server için sistem düzeyinde tüm bilgilerin saklandığı veri tabanıdır. Master veritabanı olmadan SQL Server servisleri başlatılamaz Bunun nedeni master veritabanında servislerin başlayabilmesi için gerekli bilgiler tutulur. Bu veritabanından bir veri silmek veya update etmek database, procedure, table, view bilgilerinde bozulmalar meydana getirecektir. Dolayısıyla çalışılan server eskisi gibi çalışmayacaktır. Eğer master veritabanı ulaşılmaz durumdaysa SQL Server da çalışamaz durumda olacaktır. Bu sebeple master veritabanının sıklıkla backup’lanması gerekir. Master veritabanının full backup’ı alınabilir ancak differential ya da log backup’ı alınamaz. Master veri tabanının ID’si 1’dir.
SELECT * FROM master.sys.database_files
sorgusunu çalıştırarak bu veri tabanının konumuna erişebilirsiniz.
Master veri tabanını kullanarak yukarıdaki SELECT * FROM sys.sysconfigures
sorgusunu çalıştırarak sunucu yapılandırması hakkında bilgi edinebilirsiniz.
Master veri tabanıyla diğer tüm veri tabanları hakkında bilgileri SELECT * FROM sys.sysdatabases
sorgusuyla görüntüleyebilirsiniz.
Master veri tabanında kayıtlı olan SQL Server kullanıcı bilgilerine ulaşmak için SELECT * FROM sys.sysusers
sorgusunu çalıştırabilirsiniz.
model: Model veri tabanı kullanıcılar tarafından oluşturulacak veri tabanları için şablon olarak görev yapar. Sql Server’da oluşturulan her yeni veri tabanı, model veri tabanındaki kayıtlı standart default değerleri kullanır. Model veri tabanında yapılacak tüm değişiklikler diğer yeni oluşturulacak veri tabanlarını da etkiler. Sql Server her başladığında tempdb veri tabanını model veri tabanını şablon alarak oluşturduğundan model veri tabanı sistemde kesinlikle olmalıdır, kesinlikle silinmemelidir. Model veri tabanı da periyodik olarak yedeklenmelidir. Model veri tabanı recovery (kurtarma) türü FULL’dür. Model veri tabanının ID’si (veritabanı kimliği) 3’tür.
SELECT * FROM model.sys.database_files
sorgusunu çalıştırarak model veritabanının konumuna erişebilirsiniz.
msdb: Zamanlanmış görevleri ve bu görevlerin zamanında çalışmasıyla ilgili bilgilerin tutulduğu veri tabanıdır. Server Agent tarafından SQL Server Management Studio, log shipping, Sql Mail, Backup history, Replication Process, ve diğer zamanlanmış işleri gerçekleştirmek için kullanılan veri tabanıdır. MSDB’nin recovery (kurtarma) modeli simple recovery’dir. Msdb veri tabanının ID’si (veritabanı kimliği) 4’tür.
SELECT * FROM msdb.sys.database_files
sorgusunu çalıştırarak MSDB’nin konumuna erişebilirsiniz.
tempdb: Üzerinde çalışılan veri tabanları hakkındaki bilgileri geçici olarak tutan veri tabanıdır. Sql Server her kapanıp açıldığında tekrar kurulur ve yeniden oluşturulur. Genel olarak geçici tablolar (Temp Table), temp procedure, cursor’lar ve tablo değişkenlerinin tutulduğu veri tabanıdır. TempDB veritabanının recovery (kurtarma) modeli Simple recovery’dir. TempDB veri tabanının backup’ı alınamaz. İşlemler sırasında çok fazla geçici nesne oluşturulursa server performansını olumsuz etkiler. Sorguların uzun sürmesinin bir nedeni de tempdb veri tabanının sorgu süresine etki etmesidir. TempDB veri tabanının ID’si (veritabanı kimliği) 2’dir.
SELECT * FROM tempdb.sys.database_files
sorgusunu çalıştırarak TempDB’nin konumuna erişebilirsiniz.
Bunlara ek olarak resource isminde bir veri tabanı daha vardır;
Resource: Bu veri tabanının en temel amacı bir üst SQL Server versiyonuna geçebilmek için upgrade işlemini sağlamaktır. Server içerisinde bulunan bütün sistem objeleri bu veri tabanında bulunur. Sistem objeleri fiziksel olarak resource veri tabanında tutulurken mantıksal olarak da her veri tabanının içerisinde gösterilir. Resource veri tabanının ID’si (veritabanı kimliği) 32767‘dir.
SELECT * FROM sys.sysaltfiles WHERE dbid=32767
sorgusunu çalıştırarak ederek dizin bilgisine erişebilirsiniz.
Yeni yazımda görüşmek üzere 🙂