SQL Server, kurtarma işleminde veritabanı gösterir


23

Bugün, bir elektrik kesintisinden sonra, bir veritabanında (Kurtarma: dolu), SSMS'de "Kurtarma'da" gösterilir. Yani:

myDatabase (Kurtarmada) (veritabanı durumu: kurtarma, Kapat)

Bitirdikten sonra, "kurtarma işlemi" veritabanında, "(kurtarmada)" olmadan myDatabase adı gösterilir. Sorunun çözüldüğünü sanıyordum ama olmadı.

Bu veritabanını kullanan uygulamayı başlattığımda, veritabanımın adının yanında "(Kurtarmada)" fazladan metin tekrar beliriyor.

"Kurtarma işlemi" bitinceye kadar bekledim ve ardından veritabanını çevrimdışı duruma getirip yeniden çevrimiçi duruma getirdim.

Sunucuyu yeniden başlattım, bilgisayarı yeniden başlattım ve uygulamam çalışırken, ekstra metin tekrar beliriyor. SQL Server'da "Veritabanını başlatmak 'myDatabase'" mesajı birkaç kez görünüyor. Veritabanını çalıştırabildiğim için veritabanı çalışıyor gibi görünüyor, ancak durum bir şeyin olduğunu gösteriyor.

Sunucu günlüğü ilginç bir şey göstermiyor. Tek anormal şey, "Giriş veritabanını başlatmak" veritabanımı '"30 girdi var.

Sunucu başlatıldığında, kullanıma hazır olmadan önce her veritabanının kurtarılmaya başladığını biliyorum. Ancak benim durumumda, veritabanı çevrimiçi hale gelir ve ardından "myDatabase (In recovery)" mesajını gösterir. Uygulamayı kapatırsam, veritabanı Durum: Normal'e gider. Bu beni deli ediyor.

Hatta yeni bir SQL Server örneği kurdum ve eski veritabanını "myDatabase" üzerine yerleştirdim. Sorun hala devam ediyor.

Bu sorguyu çalıştırdığımda:

SELECT databasepropertyex('nyDatabase', 'STATUS')

İyileşme, çevrimiçi, şüpheli ve tekrar çevrimiçi ve daha sonra iyileşme vb.

Yanıtlar:


2

Topluluk wiki yanıtı, asıl sorusu yazarı tarafından soruna düzenleme yapıldı.

Sorun, veritabanı özelliğinin AutoCloseayarlanmış olmasıydı.

Çözüm, AutoCloseyanlış olarak ayarlandı .


16

Sorunun çözülmesine yardım edip edemeyeceğinden emin değilim, ama bir şans verebilirsiniz.

Koşmak:

RESTORE DATABASE YourDatabase WITH RECOVERY

Yukarıdakilerin veritabanını kurtarma modundan çıkardığını görün. Olmazsa sorun başka bir şey olabilir.

Aşağıdaki komutu deneyebilir ve veritabanının bozuk olup olmadığını görebilir misiniz?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

Yolsuzluğu tespit ederse, veritabanını kullanarak veritabanını onarmak isteyebilirsiniz. DBCC CHECKDB


6

Çevrimiçi bir veritabanı getirdiğinizde, kurtarma işleminden geçer. Yine de, sorunun çözülmesinden biraz kafam karıştı. Veritabanının çevrimdışına alınmasından başka bir zamanda herhangi bir zamanda kurtarılmaya başladığını mı görüyorsunuz (orijinal elektrik kesintinizden veya onu çevrimdışı duruma getirdikten sonra tekrar çevrimiçi duruma getirdiniz)? Eğer öyleyse, veritabanı başka bir sebepten dolayı çevrimdışı hale geliyor. Ne olduğunu görmek için SQL sunucu günlüklerini kontrol etmek için en iyisi.

Ayrıca Windows olay günlüğüne bir disk arızası gibi bir şey olup olmadığını da kontrol etmelisiniz. Normal işlemler sırasında veri tabanı başlatılmamalı ve kurtarılmamalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.