DBCC CHECKDB her 20 - 60 saniyede bir ateşleme


13

Hızla devreye alma üretimine yaklaşan ve günlüklerde kabaca her 20 saniyede bir ileti gördüğümü fark eden dev bir ortam var:

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

Bunu fark ettim, çünkü bunu test eden son kullanıcılar Windows Olay Günlüğünde (Uygulama Günlüğü) fark ettiğim bir hataya izole ettiğim bir sorun vardı:

The log for database 'dbname' is not available. Check event log for related messages.

Bu arada, ilgili mesaj bulamadım, ancak çevrimdışı / çevrimiçi döngü ile çözüldüm.

Düşünebildiğim tek şey, bu uygulamanın her 1ms'de veri toplaması, ancak tüm bu verilerin veritabanına eklenmemesi. Bir dev sunucusu olarak, günlükler ve veriler aynı sürücüde olacak şekilde yapılandırıldı. Bu iki bilgiyi göz önünde bulundurarak, bunun bir IO sorunu olduğunu ve sunucunun depolama alanına (SAN) bağlantı kaybından kurtulmaya çalıştığını düşünüyorum. Yine de bu benim için bir anlam ifade etmiyor çünkü tüm dbs'leri kaybetmiyor, sadece bu. Buna başka ne neden olabilir?

Platform: Windows Server 2008 R2'de (Std.) SQL Server 2008 R2 (Giriş)

Yanıtlar:


22

Bunu görmenizin nedeni:

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

Bunun nedeni, veritabanı seçeneğinizin ayarlanmış olmasıdır AutoClose.

Otomatik Kapatma özelliğini kapatmak için şunu yapın:

alter database YourDatabase
set auto_close off
go

Ne AutoCloseyapar son kullanıcı işlemi keser sonra veritabanı kapatılır. Ve sonra bir sonraki kullanıcı bağlantısı bağlanmaya çalıştığında veritabanı otomatik olarak " yeniden açılır ".

Genellikle AutoCloseveritabanını tekrar döndürmek için belirgin gecikme nedeniyle KAPALI tutmak en iyi uygulamadır . Sorunuzdan bunun bir geliştirme ortamı olduğunu anlıyorum, ama orada da buna ihtiyacınız olmamalı (ve üretim ortamınızda kesinlikle bunu istemezsiniz).

Ayrıca DBCC CHECKDBaslında soru başlığı başına "her 20 - 60 saniyede bir ateşleme" değil, sadece bu şekilde görünüyor!

SQL Server 2005'ten bu yana , veritabanı her başlatıldığında dbi_dbccLastKnownGood değeri (varsa) hata günlüğünde bildirilir. Yani aynı tarihi bilgileri tekrar tekrar görüyorsunuz.

Bu konu SQL Server neden Server Startup veritabanlarımda DBCC CHECKDB çalıştırıyor makalesinde ele alınmıştı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.