Dapatkan output terperinci dari pekerjaan SQL Agent


15

Kami memiliki pekerjaan SQL Server Agent yang menjalankan rencana pemeliharaan untuk mengindeks ulang semua database di server. Baru-baru ini gagal tetapi riwayat pekerjaan tidak memberikan informasi yang cukup untuk mendiagnosis masalah.

Dalam riwayat pekerjaan itu menyatakan Pekerjaan gagal. Pekerjaan itu dipanggil oleh pengguna foo \ bar. Langkah terakhir yang harus dijalankan adalah langkah 1 (Rebuild Index).

Di jendela rincian ada beberapa pesan dalam formulir berikut:

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

Pernyataan SQL yang sedang berjalan terpotong, dan saya akan berasumsi bahwa output dari pernyataan juga terpotong, mencegah saya bisa mengidentifikasi pernyataan tertentu yang gagal dan mengapa. Apakah ada cara untuk mengekstrak teks lengkap dari pesan-pesan ini?


1
Saya pikir @kin melakukan pekerjaan yang baik untuk menjawab pertanyaan awal Anda, tetapi menurut saya ini lebih merupakan masalah debugging. Jika Anda tahu indeks gagal, maka saya akan mencoba mengidentifikasi mengapa indeks tertentu gagal. Bisakah Anda melihat kode sql yang digunakan? Apakah itu dalam proc yang disimpan? Anda dapat melakukan beberapa hal untuk mempersempitnya. Buat pekerjaan hanya dengan indeks itu. Jalankan pelacakan sql saat pekerjaan itu sedang berjalan. Abadikan sql yang digunakan lalu coba untuk mereproduksi masalah.
Sir Swears-a-lot

Jawaban:


18

Apakah ada cara untuk mengekstrak teks lengkap dari pesan-pesan ini?

Anda dapat mencapainya dengan 2 cara - Masuk ke langkah pekerjaan dan pilih tab Tingkat Lanjut:

Sebuah. Output ke file (<== Metode pilihan saya)

masukkan deskripsi gambar di sini

b. "Masuk ke tabel" dan "Sertakan langkah keluaran dalam riwayat" (<== Anda harus memotong msdb..sysjobhistoryjangka panjang karena pesan disimpan sebagai nvarchar(max)gantinya nvarchar(1024))

masukkan deskripsi gambar di sini

Untuk melihat informasi tambahan yang dicatat, Anda perlu menggunakan prosedur tersimpan ini sp_help_jobsteplog atau Anda bisa msdb.dbo.sysjobstepslogslangsung meminta tabel.

Info lebih lanjut di sini


Cheers, aku akan mencobanya. hanya untuk memberi tahu Anda, nama yang benar dari tabel itu adalah msdb.dbo.sysjobstepslogs ('log' bukan 'log'). Saya mencoba mengedit jawabannya tetapi pengeditan satu karakter tidak diizinkan.
toryan

1
@toryan np. Saya telah mengedit jawaban saya. Jika Anda merasa bahwa saya telah menjawab pertanyaan Anda, silakan pilih / tandai sebagai jawaban.
Kin Shah

1
Saya menjalankan kembali pekerjaan dan hanya menghasilkan satu kesalahan saat ini, yang dicatat dalam tabel seperti yang dijelaskan. Sayangnya teks kueri masih terpotong - apakah ada cara untuk mendapatkan informasi lebih lanjut?
toryan

Aku meragukan itu. Bisakah Anda mencoba dengan metode file output 1 seperti yang dijelaskan dalam jawaban saya.
Kin Shah

1
@toryan Saya punya masalah yang sama - logging masih terpotong, bahkan dengan output ke tabel (metode (b) di atas) dan membaca sysjobstepslogs. Ini adalah rekomendasi dari sebagian besar diskusi online tentang masalah ini. Tapi metode (a), keluaran ke file, TIDAK punya masalah ini: file teks menunjukkan kepada saya semua langkah pekerjaan logging, akhirnya tanpa pemotongan! (Dalam kasus saya, langkah-langkah pekerjaan saya adalah DTEXECperintah, menjalankan paket SSIS.) Hanya kekurangannya: hanya proses terakhir yang terlihat, kecuali menambahkan file. Daripada menambahkan, saya memilih untuk hidup dengan pemotongan pada lari sebelumnya.
Doug_Ivison

2

Anda bisa mendapatkan teks lengkap:

  1. Pergi ke pekerjaan
  2. Klik kanan select properties
  3. Ikuti langkah pekerjaan
  4. Pilih stepdan klik edittombol
  5. Pilih advanced. Di sini Anda dapat melihat jalur log.

Sekarang sederhana saja ikuti jalan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.