Power button and server with a settings window, representing SQL Server startup parameters

SQL Server Startup Parametreleri: -d, -l, -e, -T, Tek Kullanıcı Modu ve Minimum Yapılandırma

SQL Server startup parametrelerinin ne yaptığı, nasıl görüntülenip değiştirildiği ve trace flag’leri kalıcı yapmak, kaybedilen sysadmin erişimini geri almak ve hatalı yapılandırılmış bir instance’ı açmak için kullanımı.

Eylül 29, 2021

SQL Server başlarken, master veritabanının nerede olduğunu, error log’un nereye yazılacağını ve hangi trace flag’lerle açılacağını startup parametrelerinden öğrenir. Bu parametreler kurulumda varsayılan değerlerle yazılır ve çoğu zaman kimse onlara bakmaz; ta ki master veritabanını taşımak, tüm sysadmin hesaplarına erişimi kaybetmiş bir sunucuya girmek ya da yanlış bir yapılandırma yüzünden açılmayan bir instance’ı ayağa kaldırmak gerekene kadar.

Bu rehberde startup parametrelerinin ne olduğunu, nasıl görüntülenip değiştirildiğini ve kritik durumlarda nasıl kullanıldığını anlatıyoruz.

SQL Server Acil Destek

SQL Server açılmıyor mu?

Aryasoft'un acil destek ekibi açılmayan instance'ları, erişimi kaybedilmiş sunucuları ve başlangıç hatalarını güvenle çözer.

Acil Destek Alın

Varsayılan Parametreler

Her instance üç zorunlu parametreyle başlar:

Parametre Anlamı
-d master veritabanının veri dosyasının (master.mdf) tam yolu
-l master veritabanının log dosyasının (mastlog.ldf) tam yolu
-e Error log dosyasının tam yolu

Bunların yanında sık kullanılan isteğe bağlı parametreler şunlardır:

Parametre Anlamı
-T#### Instance’ı belirtilen trace flag açık olarak başlatır (örneğin -T3226)
-m Tek kullanıcı modu; -m”SQLCMD” yalnızca belirtilen uygulamanın bağlanmasına izin verir
-f Minimum yapılandırmayla başlatır (tek kullanıcı modunu da içerir)
-c Servis yerine komut satırından başlatıldığında daha hızlı açılış
-x Bazı izleme özelliklerini (CPU zamanı ve cache istatistikleri) kapatır

Görüntülemek ve Değiştirmek

Mevcut parametreleri T-SQL ile görebilirsiniz:

SELECT value_name, value_data
FROM sys.dm_server_registry
WHERE value_name LIKE N'SQLArg%';

Değiştirmek için SQL Server Configuration Manager’da SQL Server Services altında ilgili SQL Server servisine sağ tıklayıp Properties‘i açın:

SQL Server Configuration Manager'da SQL Server servisinin Properties menüsü

Startup Parameters sekmesinde yeni parametreyi yazıp Add ile ekleyin ya da mevcut bir parametreyi seçip kaldırın:

SQL Server servis özelliklerinde Startup Parameters sekmesi

Değişiklik, servis yeniden başlatıldığında geçerli olur. Failover cluster ya da Always On ortamında parametreyi her düğümde ayrı ayrı ayarlayın.

Uyarı

-d, -l ve -e parametrelerindeki bir yazım hatası, SQL Server’ın hiç açılmamasına yol açar. Değişiklikten önce mevcut değerleri bir yere kaydedin ve yolları kopyalayıp yapıştırarak yazın. Servis açılmazsa Windows Application log’u ve belirtilen error log dosyası nedenini gösterir.

Kullanım Senaryoları

Trace flag’leri kalıcı yapmak

DBCC TRACEON (3226, -1) ile açılan bir trace flag, servis yeniden başladığında kaybolur. Kalıcı olması gereken flag’ler -T ile startup parametresi olarak eklenir. Hangi trace flag’lerin gerçekten gerektiğini trace flag rehberimizde anlatıyoruz.

Tüm sysadmin erişimi kaybedildiğinde

Sysadmin olan tüm hesaplar silinmiş, kilitlenmiş ya da parolaları unutulmuşsa, sunucunun yerel Windows yöneticisi tek kullanıcı modunda bağlanıp kendine yeniden yetki verebilir:

# Servisi durdurup yalnızca sqlcmd'nin bağlanabileceği tek kullanıcı modunda başlatın
net stop MSSQLSERVER
net start MSSQLSERVER /m"SQLCMD"

# Yerel yönetici olarak bağlanıp bir AD grubunu sysadmin yapın
sqlcmd -S . -E -Q "CREATE LOGIN [ALANADI\DBA-Ekibi] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [ALANADI\DBA-Ekibi];"

# Normal modda yeniden başlatın
net stop MSSQLSERVER
net start MSSQLSERVER

Not

Tek kullanıcı modunda yalnızca bir bağlantı kabul edilir. Parametresiz -m kullanırsanız, uygulamalar, SQL Server Agent ya da SSMS’in Object Explorer’ı bu tek bağlantıyı sizden önce alabilir. -m”SQLCMD” ile yalnızca sqlcmd’nin bağlanmasına izin vermek bu yarışı önler. Adlandırılmış instance’larda servis adı MSSQL$InstanceAdi biçimindedir.

Yanlış yapılandırma yüzünden açılmayan instance

Örneğin max server memory çok düşük bir değere ayarlandıysa ve instance bu yüzden düzgün çalışmıyorsa, -f ile minimum yapılandırmada başlatıp ayarı düzeltebilirsiniz. -f da tek kullanıcı modunu içerir; düzeltmeden sonra parametreyi kaldırıp normal başlatın.

master veritabanını taşımak

master dosyalarını başka bir diske taşımak için servis durdurulur, dosyalar kopyalanır, -d ve -l parametreleri yeni yollara göre güncellenir ve servis başlatılır. Diğer sistem veritabanları (model, msdb, tempdb) ise ALTER DATABASE ... MODIFY FILE ile taşınır. Sistem veritabanlarının rolleri için sistem veritabanları rehberimize bakın.

Kontrol Listesi

  • Mevcut startup parametreleri belgelenmiş.
  • Kalıcı trace flag’ler -T ile tanımlı ve nedenleri belgelenmiş.
  • Cluster ve Always On düğümlerinde parametreler tutarlı.
  • Tek kullanıcı modunda bağlanma prosedürü runbook’ta hazır.
  • Sysadmin erişimi kişilere değil, bir AD grubuna verilmiş.
SQL Server Configuration Manager’da SQL Server servisinin Properties penceresindeki Startup Parameters sekmesinde. Değişiklik servis yeniden başlatıldığında geçerli olur.
-m startup parametresiyle; net start MSSQLSERVER /m”SQLCMD” komutu yalnızca sqlcmd’nin bağlanmasına izin vererek tek bağlantının başka bir uygulama tarafından alınmasını önler.
Sunucunun yerel Windows yöneticisi, SQL Server’ı tek kullanıcı modunda başlatıp bağlanarak bir hesaba ya da gruba yeniden sysadmin yetkisi verebilir.
-T startup parametresiyle. DBCC TRACEON ile açılan flag’ler servis yeniden başladığında kaybolur.

SQL Server Acil Destek

Açılmayan bir sunucu karşısında yalnız kalmayın

Aryasoft’un kıdemli DBA ekibi başlangıç hatalarını, kaybedilmiş erişimi ve bozuk yapılandırmaları kontrollü adımlarla çözer; sunucuyu veri kaybı riski olmadan yeniden ayağa kaldırır.

4.7/5