SQL Agent işinin ayrıntılı çıktısını alın


16

Sunucudaki tüm veritabanını yeniden dizine eklemek için bir bakım planı çalıştıran bir SQL Server Agent işimiz var. Son zamanlarda bu başarısız oldu, ancak iş geçmişi sorunu teşhis etmek için yeterli bilgi sağlamıyor.

İş geçmişinde İş başarısız oldu. İş kullanıcı foo \ bar tarafından çağrıldı. Çalıştırılacak son adım adım 1 (Dizini Yeniden Oluştur) idi.

Ayrıntılar penceresinde aşağıdaki biçimde birden çok mesaj vardır:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

Çalışmakta olan SQL deyimi kesildi ve ifadenin çıktısının da kesildiğini varsayarak hangi ifadenin başarısız olduğunu ve nedenini belirleyebiliyorum. Bu mesajların tam metnini almanın bir yolu var mı?


1
Bence @kin ilk sorunuzu cevaplamak için iyi bir iş çıkarıyor, ancak bence bu daha çok bir hata ayıklama sorunu. Başarısız olduğu dizini biliyorsanız, o zaman belirli bir dizin neden başarısız olduğunu belirlemeye çalışacağım. Kullanılan sql kodunu görebiliyor musunuz? Depolanmış bir işlemde mi? Onu daraltmak için birkaç şey yapabilirsiniz. Yalnızca bu dizine sahip bir iş oluşturun. Bu iş çalışırken sql izini çalıştırın. Kullanılan sql yakalamak sonra sorunu yeniden oluşturmaya çalışın.
Sir Swears-a-lot

Yanıtlar:


18

Bu mesajların tam metnini almanın bir yolu var mı?

Bunu 2 şekilde başarabilirsiniz - İş adımına gidin ve Gelişmiş sekmesini seçin:

a. Bir dosyaya çıktı al (<== Tercih ettiğim yöntem)

resim açıklamasını buraya girin

b. "Tabloya giriş" ve "Adım çıktısını tarihe dahil et" (<== msdb..sysjobhistoryMesajlar nvarchar(max)yerine depolandığından uzun vadede kırpmanız gerekir nvarchar(1024))

resim açıklamasını buraya girin

Günlüğe kaydedilen ek bilgileri görmek için bu saklı yordamı sp_help_jobsteplog kullanmanız gerekir veya msdb.dbo.sysjobstepslogstabloyu doğrudan sorgulayabilirsiniz .

Daha fazla bilgi burada


Şerefe, bunu bir deneyeceğim. sadece bu tablonun doğru adı msdb.dbo.sysjobstepslogs'dur ('log' yerine 'log'). Cevabı düzenlemeye çalıştım ancak tek karakterli düzenlemelere izin verilmiyor.
toryan

1
@toryan np. Cevabımı düzenledim. Sorunuzu cevapladığımı düşünüyorsanız, lütfen oy verin / cevap olarak işaretleyin.
Kin Shah

1
İşi yeniden çalıştırdım ve bu kez tabloda açıklandığı gibi kaydettiği sadece bir hata üretti. Ne yazık ki, sorgunun metni hala kesildi - daha fazla bilgi almanın herhangi bir yolu var mı?
toryan

Şüpheliyim. Cevabımda açıklandığı gibi u çıktı dosyası yöntemi 1 ile deneyebilirsiniz.
Kin Shah

1
@toryan Ben de aynı sorun vardı - bir tablo (yukarıdaki yöntem (b)) çıktısı ve okuma bile kayıt hala kesildi sysjobstepslogs. Bu, bu sorunun çevrimiçi tartışmalarının çoğunun önerisiydi. Ama yöntem (a) bir dosyaya çıktı, did DEĞİL bu sorun var: metin dosyaları bana bütün iş adımı günlüğü gösteriyoruz, nihayet kesilmeden! (Benim durumumda, iş DTEXECadımım SSIS paketlerini çalıştıran komutlardır.) Sadece dezavantaj: dosyaya eklenmedikçe sadece son çalıştırma görülür. Eklemek yerine, daha önceki koşularda kısaltma ile yaşamayı seçiyorum.
Doug_Ivison

2

Tam metni alabilirsiniz:

  1. İşe git
  2. Sağ tık select properties
  3. İş adımına gidin
  4. Seç stepve editdüğmesine tıkla
  5. Seçin advanced. Burada günlük yolunu görebilirsiniz.

Şimdi basit yolu takip edin.

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.