Belirtiler
Microsoft SQL Server 2016 ve 2017 başlatma sırasında, kullanıcı başlatılmadan önce bir veritabanına bağlanmayı denerse, kullanıcı oturumu veritabanının otomatik olarak başlatılmasına neden olabilir. Bu durumda, veritabanı bir FileTable içeriyorsa ve FILESTREAM non_transacted_access etkinleştirilmişse, veritabanı başlatıldıktan sonra veritabanı düzeyindeki FileTable dizinine erişilemez. Klasöre Dosya Gezgini aracılığıyla erişmeye çalışırsanız, bu durum klasörün kullanılamadığını gösterebilir. Komut isteminden bir "dir" komutu çalıştırdığınızda, "Sistem belirtilen dosyayı bulamıyor" döndürür.
Ayrıca, hata günlüğünde, bir kullanıcı oturumunun veritabanının otomatik olarak başlatılmasını tetiklediğini gösteren aşağıdaki hataları görebilirsiniz:
Tarih Saat Oturum açma hatası: 18456, önem derecesi: 14, durum: 38.
Tarih Saat ' UserName' kullanıcısı için Oturum Açma başarısız oldu. Neden: Açıkça belirtilen 'DatabaseName' veritabanı açılamadı. [İSTEMCİ: IPNumber]
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Çözüm
Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:
SQL Server toplu güncelleştirmeleri hakkında:
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
- En son toplu güncelleştirme SQL ServerSQL Server 2017
- SQL Server 2016 için en son toplu güncelleştirme
Geçici çözüm
Bu sorunun geçici çözümü, veritabanının FILESTREAM non_transacted_access devre dışı bırakıp yeniden etkinleştirmektir.
ALTER DATABASE [VeritabanıAdı] HEMEN ROLLBACK İLE SINGLE_USER AYARLA
ALTER DATABASE [VeritabanıAdı] SET FILESTREAM ( NON_TRANSACTED_ACCESS = KAPALI )
ALTER DATABASE [VeritabanıAdı] SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL )
ALTER DATABASE [DatabaseName] SET MULTI_USER WITH ROLLBACK IMMEDIATE
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.