SQL Server Sistem Veritabanları
Sistem Veritabanlarını Neden Bilmeliyiz ve Faydaları Nelerdir?
SQL Server sistem DB’yi anlamak, veritabanı yöneticileri ve geliştiricileri için sistemin istikrarını, güvenliğini ve verimliliğini sağlamak açısından önemlidir . Bu veritabanları, kullanıcı kimlik doğrulaması, iş planlaması, geçici veri depolama ve sistem meta verileri gibi kritik işlemleri yönetir . Yöneticiler, amaçlarını ve sınırlamalarını bilerek yanlış yapılandırmaları önleyebilir , performansı optimize edebilir ve olası sistem arızalarından kaçınabilir . Sistem veritabanları hakkında uygun bilgi olmadan, sorun giderme, yedeklemeleri yönetme ve veri bütünlüğünü sağlama önemli ölçüde daha zor hale gelir.
Master
Master Database sistem düzeyindeki bilgileri depolar. Bu bilgilerin bazıları kullanıcı hesaplarını, bağlantılı sunucuları, yapılandırma ayarlarını ve sistem içinde oluşturulan veritabanlarını içerir.
Master Database dosya özellikleri aşağıdaki gibidir:
Primary Data:
Logical Name: master
Physical Name: master.mdf
Auto Growth: Disk boyutuna kadar %10 oranında genişler
Log:
Logical Name: Masterlog
Physical Name: Masterlog.ldf
Auto Growth: 2 TB’a kadar %10 oranında genişler
Master Database Kısıtlamaları
Aşağıdaki işlemler sistem tarafından master database kısıtlanmıştır:
- Bir dosya veya dosya grubu ekleme
- Sıralama ayarını değiştirme
- Veritabanı sahibinin değiştirilmesi (Master database sahibi sa kullanıcısıdır)
- Tam metin kataloğu veya tam metin dizini oluşturma
- Sistem tablolarında tetikleyici oluşturma
- Veritabanını bırakıyorum
- Misafir kullanıcıyı veritabanından silme
- Değişiklik verilerinin yakalanmasını etkinleştirme
- Birincil dosyayı, dosya grubunu veya günlük dosyasını silme
- Veritabanını veya birincil dosya grubunu yeniden adlandırma
- Veritabanını OFFLINE moduna ayarlama
- Veritabanını veya birincil dosya grubunu READ_ONLY moduna ayarlama
Master database SQL Server’ın çalışması için kritik öneme sahip olduğundan yalnızca tam yedek alınabilir.
Öneriler
- Master database’in sürekli bir yedeği tutulmalıdır.
- Master database yedeklenmesi her zaman şu durumlarda yapılmalıdır:
- Bir veritabanı oluşturulur, silinir veya değiştirilir
- Veritabanı veya sunucu ayarları değiştirildi
- Bir kullanıcı hesabı oluşturuldu, silindi veya güncellendi
- User-defined objects Master database de saklanmamalıdır.
- TRUSTWORTHY ayarı etkinleştirilmemelidir.
Master Database Kullanılamıyorsa Ne Yapılmalıdır?
- SQL Server hizmeti çalışıyorsa , Master database i tam yedekten geri yükleyin.
- SQL Server servisi çalışmıyorsa , Master database in diğer sistem veritabanlarıyla birlikte yeniden oluşturulması gerekir.
Model Database
Model database, diğer veritabanlarını oluşturmak için bir şablon görevi görür . Yeni bir veritabanı oluşturulduğunda, esasen model veritabanının bir kopyasıdır.
Ek olarak, başka bir sistem veritabanı, tempdb , SQL Server her başlatıldığında sıfırdan yeniden oluşturulur. tempdb model veritabanına dayandığından, model veritabanının sistemde her zaman mevcut olması gerekir.
Model Database Dosya Özellikleri
Primary Data:
- Logical Name: model
- Physical Name: model.mdf
- Auto Growth: Disk boyutuna kadar 64 MB’a kadar genişler
Log:
- Logical Name: modellog
- Physical Name: modellog.ldf
- Auto Growth: 64 MB’tan 2 TB’a kadar genişler
Model Database Kısıtlamaları
Model database’de aşağıdaki işlemler kısıtlanmıştır:
- Bir dosya veya dosya grubu ekleme
- Sıralama ayarını değiştirme
- Veritabanı sahibini değiştirme ( veritabanı sahibi sa kullanıcısıdır )
- Veritabanını bırakıyorum
- Misafir hesabını silme
- Değişiklik verilerinin yakalanmasını etkinleştirme
- Birincil dosyayı, dosya grubunu veya günlük dosyasını silme
- Veritabanını veya birincil dosya grubunu yeniden adlandırma
- Veritabanını OFFLINE moduna ayarlama
- Veritabanını veya birincil dosya grubunu READ_ONLY moduna ayarlama
Msdb Database
Msdb database’de, SQL Server Agent hizmeti tarafından işlenen otomatik uyarılar, zamanlanmış işler ve e-posta isteği yönetimiyle ilgili sistem bilgilerini depolar .
Örneğin, otomatik yedekleme alındığında, msdb database’de yedeklemenin ne zaman alındığı, nereye kaydedildiği ve yedeklemeyi hangi uygulamanın gerçekleştirdiği hakkında bilgileri depolar .
SQL Server Management Studio’yu (SSMS) kullanarak bir yedeklemeyi geri yüklerken, SSMS kullanılabilir yedeklemeleri belirlemek için msdb database’e sorgu gönderir .
Msdb Database Dosyası Özellikleri
Primary Data:
- Logical Name: msdb
- Physical Name: msdb.mdf
- Auto Growth: Disk boyutuna kadar %10 oranında genişler
Log:
- Logical Name: msdblog
- Physical Name: msdblog.ldf
- Auto Growth: %10’a kadar 2 TB’a kadar genişler
Msdb Database Kısıtlamaları
Aşağıdaki işlemler msdb database’de kısıtlanmıştır:
- Sıralama ayarını değiştirme
- Veritabanını bırakıyorum
- Misafir hesabını silme
- Değişiklik verilerinin yakalanmasını etkinleştirme
- Birincil dosyayı, dosya grubunu veya günlük dosyasını silme
- Veritabanını veya birincil dosya grubunu yeniden adlandırma
- Veritabanını OFFLINE moduna ayarlama
- Veritabanını veya birincil dosya grubunu READ_ONLY moduna ayarlama
Resource Database
Resource Database , tüm sistem nesnelerini içeren salt okunur bir sistem veritabanıdır . Sistem nesnelerinin fiziksel depolaması Kaynak veritabanında olsa da, her veritabanının sys şeması altında mantıksal olarak erişilebilirler .
Kaynak Veritabanının Temel Özellikleri:
- Kullanıcı tanımlı veri içermez .
- SQL Server 2016’da tanıtıldı .
- Yükseltme süreci daha hızlı ve kolaydır çünkü önceki sürümlerde sistem nesneleri yükseltme sırasında tamamen yeniden yaratılıyordu . Kaynak veritabanıyla, mevcut sistem nesneleri bunun yerine yeni sürüme kopyalanır ve bu da süreci daha verimli hale getirir.
Kaynak veritabanı dosyaları şurada bulunur:
<disk>:\Program Files\Microsoft SQL Server\<SQL Server instance>\MSSQL\Binn
Kaynak Veritabanı Dosya Konumu
Bu dosyaların fiziksel konumu değiştirilmemelidir .
Kaynak Veritabanının Yedeklenmesi
SQL Server, kaynak veritabanının doğrudan yedeklenmesine izin vermez . Ancak, Kaynak veritabanının bir yedeği gerekliyse, diğer dosyalar gibi manuel olarak farklı bir konuma kopyalanabilir. SQL Server bu yedeği doğrudan geri yükleyemez .
Resource Database i geri yüklemek için kopyalanan dosyaların orijinal konumlarına geri yerleştirilmesi gerekir . Ancak, bu geri yükleme işlemi sırasında yanlış bir dosyanın kullanılması önemli sistem sorunlarına neden olabilir.
Resource Database’e Erişim
Resource Database sistem nesnelerini depoladığından, yalnızca ileri düzey kullanıcılar bunu değiştirmelidir. Değişiklikler gerekliyse, temel bilgileri kontrol etmek için aşağıdaki sorgular kullanılabilir:
- Resource Database sürümünü kontrol edin:
SELECT SERVERPROPERTY('ResourceVersion');
- Resource Database son güncelleme saatini kontrol edin:
SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');
- Sistem nesnelerini inceleyin:
SELECT OBJECT_DEFINITION(OBJECT_ID('sys.objects'));
Tempdb Database
Tempdb veritabanı sistem genelindeki tüm kullanıcılar tarafından erişilebilir durumdadır ve SQL Server her yeniden başlatıldığında yeniden oluşturulur .
temporary tables, stored procedures ve indexes gibi kullanıcı nesneleri tempdb içinde çalışır. Ayrıca, tempdb aşağıdakiler de dahil olmak üzere sistem düzeyindeki işlemler için kullanılır:
- İmleç işlemleri, sıralama ve büyük nesnelerin (LOB) işlenmesi için gereken geçici tablolar
- Karma işlevi yürütülürken oluşturulan geçici tablolar
- Dizin oluşturma ve yeniden oluşturma sırasında oluşturulan geçici tablolar
- GROUP BY, ORDER BY ve UNION işlemleri için gereken geçici tablolar
Oturum sona erdiğinde tüm geçici nesneler otomatik olarak silinir (bırakılır). Bu davranış nedeniyle tempdb yedekleme ve geri yükleme işlemlerini desteklemez .
Tempdb Veritabanı Kısıtlamaları
Aşağıdaki işlemler tempdb üzerinde kısıtlanmıştır :
- Dosya grupları ekleme
- Veritabanını yedekleme veya geri yükleme
- Sıralama ayarlarını değiştirme
- Veritabanı sahibini değiştirme
- Veritabanı anlık görüntüsü alma
- Veritabanını bırakıyorum
- Misafir kullanıcıyı silme
- Değişiklik verilerinin yakalanmasını etkinleştirme
- Birincil dosyayı, dosya grubunu veya günlük dosyasını silme
- Veritabanını veya birincil dosya grubunu yeniden adlandırma
- Veritabanını OFFLINE moduna ayarlama
- Veritabanını READ_ONLY moduna ayarlama
Tempdb’nin Performans Üzerindeki Etkisi
Tempdb’nin konumu ve boyutu sistem performansını önemli ölçüde etkiler .
Örneğin, tempdb çok küçükse , işlemler sırasında otomatik olarak büyümesi gerekecektir ; bu da performansı olumsuz etkiler.
Birçok ara sorgu işlemi tempdb üzerinde çalıştığından, tempdb’yi hızlı bir diske yerleştirmek sorgu performansını ve genel sistem verimliliğini artıracaktır.






