SQL Server hata günlüğü dosyasında aşağıdaki satırları buldum:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
Bu zamandan önce veritabanı XYZ durumunu kontrol edersem ONLINE
, aşağıdaki ifadeyi kullanıyor:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... ama bir C # uygulaması kullanarak bu veritabanına bağlanmaya çalıştığımda, veritabanına bağlanamıyor.
Hata:
'Asd' kullanıcısı için oturum açılamadı.
Sebep: Açıkça belirtilen veritabanı açılamadı.
Üç farklı kullanıcı denedim (uygulama için tanımlanan Windows kullanıcısı, sa, SQL Server kullanıcısı). Uygulamayı işletim sisteminin başlangıcında çalıştırdığımda sorun oluşuyor, ancak başlattıktan sonra manuel olarak başlatırsam hata oluşmaz, bu yüzden tüm SQL Server ayarları ve güvenlik duvarı ayarlarının doğru olduğunu düşünüyorum.
Ayrıca bundan önce servis durumunun çalışıp çalışmadığını kontrol ettim.
Veritabanının gerçekten çevrimiçi ve sorgulara hazır olduğundan emin olmak için başka ne kontrol etmeliyim?
Bana bir süre (hatta açık bir neden dayalı değil) gecikme yerine, veritabanını sorgulamak için ok olduğunu söyleyen bir anahtar arıyorum.
Ben "XYZ 'veritabanı başlatılıyor" metni için hata günlüğü tarama düşündüm, ama bu SQL Server hata günlüğü yolu için uygulama için bir ayar eklemek zorunda anlamına gelir. Bu ifadeyi bulana kadar dosyayı defalarca okumak anlamına da gelir.