Neden DBCC SHRINKFILE bir veritabanı işinde tutarsız çalışıyor?

oy
1

DBCC SHRINKFILE Ben şu mesajı alıyorum bile, bir günlük dosyası üzerinde elle çalıştırdığınızda her zaman işe yarar:

'Cannot shrink log file 2 (Claim_Log) because all logical log files are in use.'

Bir işten çalıştırdığınızda, ancak yalnızca zamanın yaklaşık üçte biri günlüğü küçülür. diğer zamanlarda, sadece (150GB hakkında) büyük kalır. Yukarıda listelenen dışında başka bir hata asla. Bu benim kullandığım ifadedir:

DBCC SHRINKFILE (N'Claim_log' , 0, TRUNCATEONLY)

Ben iş adımında etkinleştirilmiş tarihte adım çıkışını dahil et var. Neden bu çalışmıyor hakkında daha fazla bilgi almak için yapabileceğim başka bir şey var mı?

Düzenleme: İşte günlüğünden tam mesajdır:

'Executed as user: *. Cannot shrink log file 2 (Claim_Log) because all logical
log files are in use. [SQLSTATE 01000] (Message 9008)  DBCC execution completed. 
If DBCC printed error messages, contact your system administrator. [SQLSTATE 01000]
(Message 2528).  The step succeeded.'

Zaten db dışına kullanıcıları tekme ve tek kullanıcı moduna ayarlama çalıştılar.

Oluştur 09/12/2008 saat 17:27
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
2

Geçenlerde sys.databases içinde, log_reuse_wait_desc 'çoğaltma' eşit olduğu bulundu, benzer bir sorunu çözdü. Anlaşılan bu da günlük alanı yeniden kullanabilirsiniz önce bitirmek için bir çoğaltma görevi için bekleyen SQL Server etkisiyle bir anlamı var.

Ancak çoğaltma bizim DB üzerinde ne de sunucuda hiç bir zaman kullanılmamıştır. Sen 'sp_removedbreplication' çalıştırarak durumunu silmesini gerekir; Ancak bana 'sp_removedbreplication' için sorunu çözemedi. Bunun yerine, SQL sadece Veritabanı bir replikasyon parçası değildi diyerek döndü ...

Burada cevabımı buldum:

Temelde bir çoğaltma oluşturmak Sıfır çoğaltma işaretçiler tüm sıfırlamak zorunda; o zaman sadece yapmıştı çoğaltma silin. yani

Execute SP_ReplicationDbOption {DBName},Publish,true,1
GO
Execute sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
GO
DBCC ShrinkFile({LogFileName},0)
GO
Execute SP_ReplicationDbOption {DBName},Publish,false,1
GO
Cevap 06/07/2011 saat 05:10
kaynak kullanıcı

oy
2

veren deneyin CHECKPOINT sonra günlükleri küçülen, ilk komutu

BOL alınan ( http://msdn.microsoft.com/en-us/library/aa226036(SQL.80).aspx )

Geçerli veritabanı için Kuvvetler tüm kirli sayfaları diske yazılacak. Kirli sayfaları tampon önbelleğine girdikten sonra değiştirilmiş veri veya günlük sayfaları, ancak modifikasyonlar henüz diske yazılan edilmemiştir. Günlük kesilme hakkında daha fazla bilgi için İşlem Günlüğü kesiliyor bkz.

Cevap 09/12/2008 saat 18:01
kaynak kullanıcı

oy
0

Şu anda Giriş dosyası Kullanımda ve araçlar kontrol noktası olacak işlem günlük dosyası (Kirli sayfalarından) den veri dosyası yazılmadı datfile yazar mesele kontrol noktası. Kontrol, herhangi bir geçerli Etkinliği açık veya değil orada olacak olan

sys.dm_tran_session_transactions GELEN 2005 SEÇ * Aktif İşlem için kullanarak kontrol edin

2000 DBCC LOGINFO

İyi Plan yapmak => log (Yapımı Planı) yedekleme için 1.Create Tamiratlarda planı.

Cevap 29/08/2009 saat 06:18
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more